packages feed

gogol-admin-directory (empty) → 0.0.1

raw patch · 97 files changed

+18377/−0 lines, 97 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-admin-directory++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.0.1`+++## Description++A client library for the Google Admin Directory.+++## 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-admin-directory` 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/Directory.hs view
@@ -0,0 +1,1168 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.Directory+-- 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)+--+-- The Admin SDK Directory API lets you view and manage enterprise+-- resources such as users and groups, administrative notifications,+-- security features, and more.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference>+module Network.Google.Directory+    (+    -- * Service Configuration+      directoryService++    -- * API Declaration+    , DirectoryAPI++    -- * Resources++    -- ** admin.channels.stop+    , module Network.Google.Resource.Admin.Channels.Stop++    -- ** directory.asps.delete+    , module Network.Google.Resource.Directory.Asps.Delete++    -- ** directory.asps.get+    , module Network.Google.Resource.Directory.Asps.Get++    -- ** directory.asps.list+    , module Network.Google.Resource.Directory.Asps.List++    -- ** directory.chromeosdevices.get+    , module Network.Google.Resource.Directory.ChromeosDevices.Get++    -- ** directory.chromeosdevices.list+    , module Network.Google.Resource.Directory.ChromeosDevices.List++    -- ** directory.chromeosdevices.patch+    , module Network.Google.Resource.Directory.ChromeosDevices.Patch++    -- ** directory.chromeosdevices.update+    , module Network.Google.Resource.Directory.ChromeosDevices.Update++    -- ** directory.customers.get+    , module Network.Google.Resource.Directory.Customers.Get++    -- ** directory.customers.patch+    , module Network.Google.Resource.Directory.Customers.Patch++    -- ** directory.customers.update+    , module Network.Google.Resource.Directory.Customers.Update++    -- ** directory.domainAliases.delete+    , module Network.Google.Resource.Directory.DomainAliases.Delete++    -- ** directory.domainAliases.get+    , module Network.Google.Resource.Directory.DomainAliases.Get++    -- ** directory.domainAliases.insert+    , module Network.Google.Resource.Directory.DomainAliases.Insert++    -- ** directory.domainAliases.list+    , module Network.Google.Resource.Directory.DomainAliases.List++    -- ** directory.domains.delete+    , module Network.Google.Resource.Directory.Domains.Delete++    -- ** directory.domains.get+    , module Network.Google.Resource.Directory.Domains.Get++    -- ** directory.domains.insert+    , module Network.Google.Resource.Directory.Domains.Insert++    -- ** directory.domains.list+    , module Network.Google.Resource.Directory.Domains.List++    -- ** directory.groups.aliases.delete+    , module Network.Google.Resource.Directory.Groups.Aliases.Delete++    -- ** directory.groups.aliases.insert+    , module Network.Google.Resource.Directory.Groups.Aliases.Insert++    -- ** directory.groups.aliases.list+    , module Network.Google.Resource.Directory.Groups.Aliases.List++    -- ** directory.groups.delete+    , module Network.Google.Resource.Directory.Groups.Delete++    -- ** directory.groups.get+    , module Network.Google.Resource.Directory.Groups.Get++    -- ** directory.groups.insert+    , module Network.Google.Resource.Directory.Groups.Insert++    -- ** directory.groups.list+    , module Network.Google.Resource.Directory.Groups.List++    -- ** directory.groups.patch+    , module Network.Google.Resource.Directory.Groups.Patch++    -- ** directory.groups.update+    , module Network.Google.Resource.Directory.Groups.Update++    -- ** directory.members.delete+    , module Network.Google.Resource.Directory.Members.Delete++    -- ** directory.members.get+    , module Network.Google.Resource.Directory.Members.Get++    -- ** directory.members.insert+    , module Network.Google.Resource.Directory.Members.Insert++    -- ** directory.members.list+    , module Network.Google.Resource.Directory.Members.List++    -- ** directory.members.patch+    , module Network.Google.Resource.Directory.Members.Patch++    -- ** directory.members.update+    , module Network.Google.Resource.Directory.Members.Update++    -- ** directory.mobiledevices.action+    , module Network.Google.Resource.Directory.MobileDevices.Action++    -- ** directory.mobiledevices.delete+    , module Network.Google.Resource.Directory.MobileDevices.Delete++    -- ** directory.mobiledevices.get+    , module Network.Google.Resource.Directory.MobileDevices.Get++    -- ** directory.mobiledevices.list+    , module Network.Google.Resource.Directory.MobileDevices.List++    -- ** directory.notifications.delete+    , module Network.Google.Resource.Directory.Notifications.Delete++    -- ** directory.notifications.get+    , module Network.Google.Resource.Directory.Notifications.Get++    -- ** directory.notifications.list+    , module Network.Google.Resource.Directory.Notifications.List++    -- ** directory.notifications.patch+    , module Network.Google.Resource.Directory.Notifications.Patch++    -- ** directory.notifications.update+    , module Network.Google.Resource.Directory.Notifications.Update++    -- ** directory.orgunits.delete+    , module Network.Google.Resource.Directory.OrgUnits.Delete++    -- ** directory.orgunits.get+    , module Network.Google.Resource.Directory.OrgUnits.Get++    -- ** directory.orgunits.insert+    , module Network.Google.Resource.Directory.OrgUnits.Insert++    -- ** directory.orgunits.list+    , module Network.Google.Resource.Directory.OrgUnits.List++    -- ** directory.orgunits.patch+    , module Network.Google.Resource.Directory.OrgUnits.Patch++    -- ** directory.orgunits.update+    , module Network.Google.Resource.Directory.OrgUnits.Update++    -- ** directory.privileges.list+    , module Network.Google.Resource.Directory.Privileges.List++    -- ** directory.roleAssignments.delete+    , module Network.Google.Resource.Directory.RoleAssignments.Delete++    -- ** directory.roleAssignments.get+    , module Network.Google.Resource.Directory.RoleAssignments.Get++    -- ** directory.roleAssignments.insert+    , module Network.Google.Resource.Directory.RoleAssignments.Insert++    -- ** directory.roleAssignments.list+    , module Network.Google.Resource.Directory.RoleAssignments.List++    -- ** directory.roles.delete+    , module Network.Google.Resource.Directory.Roles.Delete++    -- ** directory.roles.get+    , module Network.Google.Resource.Directory.Roles.Get++    -- ** directory.roles.insert+    , module Network.Google.Resource.Directory.Roles.Insert++    -- ** directory.roles.list+    , module Network.Google.Resource.Directory.Roles.List++    -- ** directory.roles.patch+    , module Network.Google.Resource.Directory.Roles.Patch++    -- ** directory.roles.update+    , module Network.Google.Resource.Directory.Roles.Update++    -- ** directory.schemas.delete+    , module Network.Google.Resource.Directory.Schemas.Delete++    -- ** directory.schemas.get+    , module Network.Google.Resource.Directory.Schemas.Get++    -- ** directory.schemas.insert+    , module Network.Google.Resource.Directory.Schemas.Insert++    -- ** directory.schemas.list+    , module Network.Google.Resource.Directory.Schemas.List++    -- ** directory.schemas.patch+    , module Network.Google.Resource.Directory.Schemas.Patch++    -- ** directory.schemas.update+    , module Network.Google.Resource.Directory.Schemas.Update++    -- ** directory.tokens.delete+    , module Network.Google.Resource.Directory.Tokens.Delete++    -- ** directory.tokens.get+    , module Network.Google.Resource.Directory.Tokens.Get++    -- ** directory.tokens.list+    , module Network.Google.Resource.Directory.Tokens.List++    -- ** directory.users.aliases.delete+    , module Network.Google.Resource.Directory.Users.Aliases.Delete++    -- ** directory.users.aliases.insert+    , module Network.Google.Resource.Directory.Users.Aliases.Insert++    -- ** directory.users.aliases.list+    , module Network.Google.Resource.Directory.Users.Aliases.List++    -- ** directory.users.aliases.watch+    , module Network.Google.Resource.Directory.Users.Aliases.Watch++    -- ** directory.users.delete+    , module Network.Google.Resource.Directory.Users.Delete++    -- ** directory.users.get+    , module Network.Google.Resource.Directory.Users.Get++    -- ** directory.users.insert+    , module Network.Google.Resource.Directory.Users.Insert++    -- ** directory.users.list+    , module Network.Google.Resource.Directory.Users.List++    -- ** directory.users.makeAdmin+    , module Network.Google.Resource.Directory.Users.MakeAdmin++    -- ** directory.users.patch+    , module Network.Google.Resource.Directory.Users.Patch++    -- ** directory.users.photos.delete+    , module Network.Google.Resource.Directory.Users.Photos.Delete++    -- ** directory.users.photos.get+    , module Network.Google.Resource.Directory.Users.Photos.Get++    -- ** directory.users.photos.patch+    , module Network.Google.Resource.Directory.Users.Photos.Patch++    -- ** directory.users.photos.update+    , module Network.Google.Resource.Directory.Users.Photos.Update++    -- ** directory.users.undelete+    , module Network.Google.Resource.Directory.Users.Undelete++    -- ** directory.users.update+    , module Network.Google.Resource.Directory.Users.Update++    -- ** directory.users.watch+    , module Network.Google.Resource.Directory.Users.Watch++    -- ** directory.verificationCodes.generate+    , module Network.Google.Resource.Directory.VerificationCodes.Generate++    -- ** directory.verificationCodes.invalidate+    , module Network.Google.Resource.Directory.VerificationCodes.Invalidate++    -- ** directory.verificationCodes.list+    , module Network.Google.Resource.Directory.VerificationCodes.List++    -- * Types++    -- ** VerificationCode+    , VerificationCode+    , verificationCode+    , vcVerificationCode+    , vcEtag+    , vcKind+    , vcUserId++    -- ** OrgUnit+    , OrgUnit+    , orgUnit+    , ouEtag+    , ouParentOrgUnitPath+    , ouKind+    , ouOrgUnitPath+    , ouName+    , ouBlockInheritance+    , ouParentOrgUnitId+    , ouDescription+    , ouOrgUnitId++    -- ** UserMakeAdmin+    , UserMakeAdmin+    , userMakeAdmin+    , umaStatus++    -- ** UserAbout+    , UserAbout+    , userAbout+    , uaValue+    , uaContentType++    -- ** UsersListEvent+    , UsersListEvent (..)++    -- ** Privileges+    , Privileges+    , privileges+    , pEtag+    , pKind+    , pItems++    -- ** Groups+    , Groups+    , groups+    , gGroups+    , gEtag+    , gNextPageToken+    , gKind++    -- ** UsersAliasesListEvent+    , UsersAliasesListEvent (..)++    -- ** RoleAssignments+    , RoleAssignments+    , roleAssignments+    , raEtag+    , raNextPageToken+    , raKind+    , raItems++    -- ** Privilege+    , Privilege+    , privilege+    , priEtag+    , priIsOuScopable+    , priKind+    , priServiceName+    , priServiceId+    , priPrivilegeName+    , priChildPrivileges++    -- ** UsersAliasesWatchEvent+    , UsersAliasesWatchEvent (..)++    -- ** Roles+    , Roles+    , roles+    , rEtag+    , rNextPageToken+    , rKind+    , rItems++    -- ** UsersWatchEvent+    , UsersWatchEvent (..)++    -- ** UserAddress+    , UserAddress+    , userAddress+    , uaStreetAddress+    , uaPoBox+    , uaCountry+    , uaPostalCode+    , uaFormatted+    , uaExtendedAddress+    , uaLocality+    , uaPrimary+    , uaCountryCode+    , uaRegion+    , uaType+    , uaCustomType+    , uaSourceIsStructured++    -- ** CustomerPostalAddress+    , CustomerPostalAddress+    , customerPostalAddress+    , cpaOrganizationName+    , cpaPostalCode+    , cpaAddressLine1+    , cpaLocality+    , cpaContactName+    , cpaAddressLine2+    , cpaCountryCode+    , cpaRegion+    , cpaAddressLine3++    -- ** RoleAssignment+    , RoleAssignment+    , roleAssignment+    , rolEtag+    , rolScopeType+    , rolKind+    , rolAssignedTo+    , rolRoleId+    , rolRoleAssignmentId+    , rolOrgUnitId++    -- ** Group+    , Group+    , group'+    , groEmail+    , groEtag+    , groDirectMembersCount+    , groKind+    , groAliases+    , groNonEditableAliases+    , groName+    , groAdminCreated+    , groId+    , groDescription++    -- ** ChromeOSDevice+    , ChromeOSDevice+    , chromeOSDevice+    , codStatus+    , codEtag+    , codAnnotatedUser+    , codPlatformVersion+    , codLastSync+    , codActiveTimeRanges+    , codKind+    , codEthernetMACAddress+    , codLastEnrollmentTime+    , codAnnotatedLocation+    , codMACAddress+    , codOrgUnitPath+    , codRecentUsers+    , codSupportEndDate+    , codModel+    , codWillAutoRenew+    , codMeid+    , codDeviceId+    , codBootMode+    , codOrderNumber+    , codAnnotatedAssetId+    , codNotes+    , codSerialNumber+    , codFirmwareVersion+    , codOSVersion++    -- ** ChromeosDevicesPatchProjection+    , ChromeosDevicesPatchProjection (..)++    -- ** ChromeosDevicesGetProjection+    , ChromeosDevicesGetProjection (..)++    -- ** Users+    , Users+    , users+    , uEtag+    , uNextPageToken+    , uUsers+    , uKind+    , uTriggerEvent++    -- ** Asp+    , Asp+    , asp+    , aCreationTime+    , aEtag+    , aCodeId+    , aKind+    , aName+    , aLastTimeUsed+    , aUserKey++    -- ** Schemas+    , Schemas+    , schemas+    , sEtag+    , sSchemas+    , sKind++    -- ** UsersListViewType+    , UsersListViewType (..)++    -- ** OrgUnitsListType+    , OrgUnitsListType (..)++    -- ** Notification+    , Notification+    , notification+    , nSubject+    , nEtag+    , nKind+    , nBody+    , nFromAddress+    , nIsUnread+    , nNotificationId+    , nSendTime++    -- ** MobileDevicesListSortOrder+    , MobileDevicesListSortOrder (..)++    -- ** UserIm+    , UserIm+    , userIm+    , uiIm+    , uiProtocol+    , uiPrimary+    , uiCustomProtocol+    , uiType+    , uiCustomType++    -- ** UsersListOrderBy+    , UsersListOrderBy (..)++    -- ** Tokens+    , Tokens+    , tokens+    , tEtag+    , tKind+    , tItems++    -- ** UserCustomSchemas+    , UserCustomSchemas+    , userCustomSchemas+    , ucsAddtional++    -- ** DomainAliases+    , DomainAliases+    , domainAliases+    , daEtag+    , daKind+    , daDomainAliases++    -- ** Aliases+    , Aliases+    , aliases+    , aliEtag+    , aliKind+    , aliAliases++    -- ** UserUndelete+    , UserUndelete+    , userUndelete+    , uuOrgUnitPath++    -- ** Members+    , Members+    , members+    , mEtag+    , mNextPageToken+    , mKind+    , mMembers++    -- ** Channel+    , Channel+    , channel+    , cResourceURI+    , cResourceId+    , cKind+    , cExpiration+    , cToken+    , cAddress+    , cPayload+    , cParams+    , cId+    , cType++    -- ** MobileDevices+    , MobileDevices+    , mobileDevices+    , mdEtag+    , mdNextPageToken+    , mdKind+    , mdMobileDevices++    -- ** Token+    , Token+    , token+    , tokClientId+    , tokEtag+    , tokDisplayText+    , tokKind+    , tokScopes+    , tokNATiveApp+    , tokAnonymous+    , tokUserKey++    -- ** UserName+    , UserName+    , userName+    , unGivenName+    , unFullName+    , unFamilyName++    -- ** UsersWatchViewType+    , UsersWatchViewType (..)++    -- ** ChromeOSDeviceRecentUsersItem+    , ChromeOSDeviceRecentUsersItem+    , chromeOSDeviceRecentUsersItem+    , codruiEmail+    , codruiType++    -- ** DomainAlias+    , DomainAlias+    , domainAlias+    , dCreationTime+    , dEtag+    , dKind+    , dVerified+    , dDomainAliasName+    , dParentDomainName++    -- ** Alias+    , Alias+    , alias+    , aaEtag+    , aaKind+    , aaAlias+    , aaId+    , aaPrimaryEmail++    -- ** UsersGetProjection+    , UsersGetProjection (..)++    -- ** Schema+    , Schema+    , schema+    , schEtag+    , schKind+    , schSchemaName+    , schSchemaId+    , schFields++    -- ** User+    , User+    , user+    , useCreationTime+    , useLastLoginTime+    , useThumbnailPhotoEtag+    , useEtag+    , useIPWhiteListed+    , useRelations+    , useHashFunction+    , useKind+    , useChangePasswordAtNextLogin+    , useWebsites+    , useAddresses+    , useAliases+    , useThumbnailPhotoURL+    , useExternalIds+    , useSuspended+    , useAgreedToTerms+    , useDeletionTime+    , useNonEditableAliases+    , useOrgUnitPath+    , useCustomerId+    , useIncludeInGlobalAddressList+    , usePhones+    , useName+    , usePassword+    , useEmails+    , useIms+    , useIsAdmin+    , useId+    , useOrganizations+    , usePrimaryEmail+    , useNotes+    , useIsDelegatedAdmin+    , useIsMailboxSetup+    , useCustomSchemas+    , useSuspensionReason++    -- ** MobileDevicesListProjection+    , MobileDevicesListProjection (..)++    -- ** Role+    , Role+    , role+    , rrEtag+    , rrKind+    , rrRoleName+    , rrIsSystemRole+    , rrRoleId+    , rrRoleDescription+    , rrIsSuperAdminRole+    , rrRolePrivileges++    -- ** Customer+    , Customer+    , customer+    , cusEtag+    , cusKind+    , cusAlternateEmail+    , cusCustomerDomain+    , cusPhoneNumber+    , cusLanguage+    , cusId+    , cusCustomerCreationTime+    , cusPostalAddress++    -- ** MobileDeviceApplicationsItem+    , MobileDeviceApplicationsItem+    , mobileDeviceApplicationsItem+    , mdaiVersionCode+    , mdaiVersionName+    , mdaiPackageName+    , mdaiDisplayName+    , mdaiPermission++    -- ** MobileDevicesListOrderBy+    , MobileDevicesListOrderBy (..)++    -- ** UsersListSortOrder+    , UsersListSortOrder (..)++    -- ** OrgUnits+    , OrgUnits+    , orgUnits+    , oEtag+    , oKind+    , oOrganizationUnits++    -- ** VerificationCodes+    , VerificationCodes+    , verificationCodes+    , vEtag+    , vKind+    , vItems++    -- ** ChromeosDevicesListSortOrder+    , ChromeosDevicesListSortOrder (..)++    -- ** UserRelation+    , UserRelation+    , userRelation+    , urValue+    , urType+    , urCustomType++    -- ** UsersWatchSortOrder+    , UsersWatchSortOrder (..)++    -- ** ChannelParams+    , ChannelParams+    , channelParams+    , cpAddtional++    -- ** UserOrganization+    , UserOrganization+    , userOrganization+    , uoDePartment+    , uoLocation+    , uoCostCenter+    , uoDomain+    , uoSymbol+    , uoPrimary+    , uoName+    , uoTitle+    , uoType+    , uoCustomType+    , uoDescription++    -- ** UserWebsite+    , UserWebsite+    , userWebsite+    , uwValue+    , uwPrimary+    , uwType+    , uwCustomType++    -- ** ChromeOSDeviceActiveTimeRangesItem+    , ChromeOSDeviceActiveTimeRangesItem+    , chromeOSDeviceActiveTimeRangesItem+    , codatriDate+    , codatriActiveTime++    -- ** UserEmail+    , UserEmail+    , userEmail+    , ueAddress+    , uePrimary+    , ueType+    , ueCustomType++    -- ** UserPhone+    , UserPhone+    , userPhone+    , upValue+    , upPrimary+    , upType+    , upCustomType++    -- ** UserPhoto+    , UserPhoto+    , userPhoto+    , upPhotoData+    , upEtag+    , upHeight+    , upKind+    , upWidth+    , upMimeType+    , upId+    , upPrimaryEmail++    -- ** UsersListProjection+    , UsersListProjection (..)++    -- ** ChromeosDevicesUpdateProjection+    , ChromeosDevicesUpdateProjection (..)++    -- ** MobileDevicesGetProjection+    , MobileDevicesGetProjection (..)++    -- ** MobileDevice+    , MobileDevice+    , mobileDevice+    , mobEmail+    , mobStatus+    , mobEtag+    , mobResourceId+    , mobBuildNumber+    , mobManagedAccountIsOnOwnerProFile+    , mobLastSync+    , mobOtherAccountsInfo+    , mobKind+    , mobAdbStatus+    , mobNetworkOperator+    , mobKernelVersion+    , mobOS+    , mobName+    , mobModel+    , mobDeveloperOptionsStatus+    , mobUnknownSourcesStatus+    , mobMeid+    , mobDeviceId+    , mobFirstSync+    , mobUserAgent+    , mobImei+    , mobType+    , mobWifiMACAddress+    , mobSerialNumber+    , mobHardwareId+    , mobBasebandVersion+    , mobSupportsWorkProFile+    , mobDeviceCompromisedStatus+    , mobApplications+    , mobDefaultLanguage++    -- ** Member+    , Member+    , member+    , memEmail+    , memEtag+    , memKind+    , memRole+    , memId+    , memType++    -- ** UserCustomProperties+    , UserCustomProperties+    , userCustomProperties+    , ucpAddtional++    -- ** Domains+    , Domains+    , domains+    , domCreationTime+    , domEtag+    , domKind+    , domDomainAliases+    , domVerified+    , domDomainName+    , domIsPrimary++    -- ** ChromeosDevicesListOrderBy+    , ChromeosDevicesListOrderBy (..)++    -- ** UsersWatchProjection+    , UsersWatchProjection (..)++    -- ** UsersWatchOrderBy+    , UsersWatchOrderBy (..)++    -- ** Notifications+    , Notifications+    , notifications+    , notEtag+    , notNextPageToken+    , notKind+    , notItems+    , notUnreadNotificationsCount++    -- ** ChromeosDevicesListProjection+    , ChromeosDevicesListProjection (..)++    -- ** SchemaFieldSpecNumericIndexingSpec+    , SchemaFieldSpecNumericIndexingSpec+    , schemaFieldSpecNumericIndexingSpec+    , sfsnisMaxValue+    , sfsnisMinValue++    -- ** MobileDeviceAction+    , MobileDeviceAction+    , mobileDeviceAction+    , mdaAction++    -- ** SchemaFieldSpec+    , SchemaFieldSpec+    , schemaFieldSpec+    , sfsEtag+    , sfsKind+    , sfsNumericIndexingSpec+    , sfsReadAccessType+    , sfsFieldId+    , sfsIndexed+    , sfsFieldType+    , sfsFieldName+    , sfsMultiValued++    -- ** ChromeOSDevices+    , ChromeOSDevices+    , chromeOSDevices+    , cosdEtag+    , cosdNextPageToken+    , cosdKind+    , cosdChromeosDevices++    -- ** UserExternalId+    , UserExternalId+    , userExternalId+    , ueiValue+    , ueiType+    , ueiCustomType++    -- ** Asps+    , Asps+    , asps+    , aspEtag+    , aspKind+    , aspItems++    -- ** UsersGetViewType+    , UsersGetViewType (..)++    -- ** RoleRolePrivilegesItem+    , RoleRolePrivilegesItem+    , roleRolePrivilegesItem+    , rrpiServiceId+    , rrpiPrivilegeName++    -- ** Domains2+    , Domains2+    , domains2+    , ddEtag+    , ddKind+    , ddDomains+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude+import           Network.Google.Resource.Admin.Channels.Stop+import           Network.Google.Resource.Directory.Asps.Delete+import           Network.Google.Resource.Directory.Asps.Get+import           Network.Google.Resource.Directory.Asps.List+import           Network.Google.Resource.Directory.ChromeosDevices.Get+import           Network.Google.Resource.Directory.ChromeosDevices.List+import           Network.Google.Resource.Directory.ChromeosDevices.Patch+import           Network.Google.Resource.Directory.ChromeosDevices.Update+import           Network.Google.Resource.Directory.Customers.Get+import           Network.Google.Resource.Directory.Customers.Patch+import           Network.Google.Resource.Directory.Customers.Update+import           Network.Google.Resource.Directory.DomainAliases.Delete+import           Network.Google.Resource.Directory.DomainAliases.Get+import           Network.Google.Resource.Directory.DomainAliases.Insert+import           Network.Google.Resource.Directory.DomainAliases.List+import           Network.Google.Resource.Directory.Domains.Delete+import           Network.Google.Resource.Directory.Domains.Get+import           Network.Google.Resource.Directory.Domains.Insert+import           Network.Google.Resource.Directory.Domains.List+import           Network.Google.Resource.Directory.Groups.Aliases.Delete+import           Network.Google.Resource.Directory.Groups.Aliases.Insert+import           Network.Google.Resource.Directory.Groups.Aliases.List+import           Network.Google.Resource.Directory.Groups.Delete+import           Network.Google.Resource.Directory.Groups.Get+import           Network.Google.Resource.Directory.Groups.Insert+import           Network.Google.Resource.Directory.Groups.List+import           Network.Google.Resource.Directory.Groups.Patch+import           Network.Google.Resource.Directory.Groups.Update+import           Network.Google.Resource.Directory.Members.Delete+import           Network.Google.Resource.Directory.Members.Get+import           Network.Google.Resource.Directory.Members.Insert+import           Network.Google.Resource.Directory.Members.List+import           Network.Google.Resource.Directory.Members.Patch+import           Network.Google.Resource.Directory.Members.Update+import           Network.Google.Resource.Directory.MobileDevices.Action+import           Network.Google.Resource.Directory.MobileDevices.Delete+import           Network.Google.Resource.Directory.MobileDevices.Get+import           Network.Google.Resource.Directory.MobileDevices.List+import           Network.Google.Resource.Directory.Notifications.Delete+import           Network.Google.Resource.Directory.Notifications.Get+import           Network.Google.Resource.Directory.Notifications.List+import           Network.Google.Resource.Directory.Notifications.Patch+import           Network.Google.Resource.Directory.Notifications.Update+import           Network.Google.Resource.Directory.OrgUnits.Delete+import           Network.Google.Resource.Directory.OrgUnits.Get+import           Network.Google.Resource.Directory.OrgUnits.Insert+import           Network.Google.Resource.Directory.OrgUnits.List+import           Network.Google.Resource.Directory.OrgUnits.Patch+import           Network.Google.Resource.Directory.OrgUnits.Update+import           Network.Google.Resource.Directory.Privileges.List+import           Network.Google.Resource.Directory.RoleAssignments.Delete+import           Network.Google.Resource.Directory.RoleAssignments.Get+import           Network.Google.Resource.Directory.RoleAssignments.Insert+import           Network.Google.Resource.Directory.RoleAssignments.List+import           Network.Google.Resource.Directory.Roles.Delete+import           Network.Google.Resource.Directory.Roles.Get+import           Network.Google.Resource.Directory.Roles.Insert+import           Network.Google.Resource.Directory.Roles.List+import           Network.Google.Resource.Directory.Roles.Patch+import           Network.Google.Resource.Directory.Roles.Update+import           Network.Google.Resource.Directory.Schemas.Delete+import           Network.Google.Resource.Directory.Schemas.Get+import           Network.Google.Resource.Directory.Schemas.Insert+import           Network.Google.Resource.Directory.Schemas.List+import           Network.Google.Resource.Directory.Schemas.Patch+import           Network.Google.Resource.Directory.Schemas.Update+import           Network.Google.Resource.Directory.Tokens.Delete+import           Network.Google.Resource.Directory.Tokens.Get+import           Network.Google.Resource.Directory.Tokens.List+import           Network.Google.Resource.Directory.Users.Aliases.Delete+import           Network.Google.Resource.Directory.Users.Aliases.Insert+import           Network.Google.Resource.Directory.Users.Aliases.List+import           Network.Google.Resource.Directory.Users.Aliases.Watch+import           Network.Google.Resource.Directory.Users.Delete+import           Network.Google.Resource.Directory.Users.Get+import           Network.Google.Resource.Directory.Users.Insert+import           Network.Google.Resource.Directory.Users.List+import           Network.Google.Resource.Directory.Users.MakeAdmin+import           Network.Google.Resource.Directory.Users.Patch+import           Network.Google.Resource.Directory.Users.Photos.Delete+import           Network.Google.Resource.Directory.Users.Photos.Get+import           Network.Google.Resource.Directory.Users.Photos.Patch+import           Network.Google.Resource.Directory.Users.Photos.Update+import           Network.Google.Resource.Directory.Users.Undelete+import           Network.Google.Resource.Directory.Users.Update+import           Network.Google.Resource.Directory.Users.Watch+import           Network.Google.Resource.Directory.VerificationCodes.Generate+import           Network.Google.Resource.Directory.VerificationCodes.Invalidate+import           Network.Google.Resource.Directory.VerificationCodes.List++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Admin Directory API service.+type DirectoryAPI =+     PrivilegesListResource :<|>+       GroupsAliasesInsertResource+       :<|> GroupsAliasesListResource+       :<|> GroupsAliasesDeleteResource+       :<|> GroupsInsertResource+       :<|> GroupsListResource+       :<|> GroupsPatchResource+       :<|> GroupsGetResource+       :<|> GroupsDeleteResource+       :<|> GroupsUpdateResource+       :<|> RoleAssignmentsInsertResource+       :<|> RoleAssignmentsListResource+       :<|> RoleAssignmentsGetResource+       :<|> RoleAssignmentsDeleteResource+       :<|> RolesInsertResource+       :<|> RolesListResource+       :<|> RolesPatchResource+       :<|> RolesGetResource+       :<|> RolesDeleteResource+       :<|> RolesUpdateResource+       :<|> CustomersPatchResource+       :<|> CustomersGetResource+       :<|> CustomersUpdateResource+       :<|> UsersAliasesInsertResource+       :<|> UsersAliasesListResource+       :<|> UsersAliasesDeleteResource+       :<|> UsersAliasesWatchResource+       :<|> UsersPhotosPatchResource+       :<|> UsersPhotosGetResource+       :<|> UsersPhotosDeleteResource+       :<|> UsersPhotosUpdateResource+       :<|> UsersInsertResource+       :<|> UsersListResource+       :<|> UsersUndeleteResource+       :<|> UsersPatchResource+       :<|> UsersGetResource+       :<|> UsersMakeAdminResource+       :<|> UsersDeleteResource+       :<|> UsersUpdateResource+       :<|> UsersWatchResource+       :<|> SchemasInsertResource+       :<|> SchemasListResource+       :<|> SchemasPatchResource+       :<|> SchemasGetResource+       :<|> SchemasDeleteResource+       :<|> SchemasUpdateResource+       :<|> TokensListResource+       :<|> TokensGetResource+       :<|> TokensDeleteResource+       :<|> DomainAliasesInsertResource+       :<|> DomainAliasesListResource+       :<|> DomainAliasesGetResource+       :<|> DomainAliasesDeleteResource+       :<|> ChannelsStopResource+       :<|> MembersInsertResource+       :<|> MembersListResource+       :<|> MembersPatchResource+       :<|> MembersGetResource+       :<|> MembersDeleteResource+       :<|> MembersUpdateResource+       :<|> MobileDevicesListResource+       :<|> MobileDevicesGetResource+       :<|> MobileDevicesActionResource+       :<|> MobileDevicesDeleteResource+       :<|> OrgUnitsInsertResource+       :<|> OrgUnitsListResource+       :<|> OrgUnitsPatchResource+       :<|> OrgUnitsGetResource+       :<|> OrgUnitsDeleteResource+       :<|> OrgUnitsUpdateResource+       :<|> VerificationCodesListResource+       :<|> VerificationCodesGenerateResource+       :<|> VerificationCodesInvalidateResource+       :<|> DomainsInsertResource+       :<|> DomainsListResource+       :<|> DomainsGetResource+       :<|> DomainsDeleteResource+       :<|> NotificationsListResource+       :<|> NotificationsPatchResource+       :<|> NotificationsGetResource+       :<|> NotificationsDeleteResource+       :<|> NotificationsUpdateResource+       :<|> ChromeosDevicesListResource+       :<|> ChromeosDevicesPatchResource+       :<|> ChromeosDevicesGetResource+       :<|> ChromeosDevicesUpdateResource+       :<|> AspsListResource+       :<|> AspsGetResource+       :<|> AspsDeleteResource
+ gen/Network/Google/Directory/Types.hs view
@@ -0,0 +1,838 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Directory.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.Directory.Types+    (+    -- * Service Configuration+      directoryService++    -- * OAuth Scopes+    , adminDirectoryRolemanagementReadonlyScope+    , adminDirectoryGroupReadonlyScope+    , adminDirectoryDeviceChromeosReadonlyScope+    , adminDirectoryDeviceChromeosScope+    , adminDirectoryUserScope+    , adminDirectoryGroupMemberReadonlyScope+    , adminDirectoryUserAliasScope+    , adminDirectoryDeviceMobileActionScope+    , adminDirectoryDomainReadonlyScope+    , adminDirectoryUserschemaScope+    , adminDirectoryUserschemaReadonlyScope+    , adminDirectoryDomainScope+    , adminDirectoryRolemanagementScope+    , adminDirectoryGroupScope+    , adminDirectoryOrgunitReadonlyScope+    , adminDirectoryCustomerScope+    , adminDirectoryCustomerReadonlyScope+    , adminDirectoryOrgunitScope+    , adminDirectoryUserReadonlyScope+    , adminDirectoryUserAliasReadonlyScope+    , adminDirectoryUserSecurityScope+    , adminDirectoryGroupMemberScope+    , adminDirectoryNotificationsScope+    , adminDirectoryDeviceMobileScope+    , adminDirectoryDeviceMobileReadonlyScope++    -- * VerificationCode+    , VerificationCode+    , verificationCode+    , vcVerificationCode+    , vcEtag+    , vcKind+    , vcUserId++    -- * OrgUnit+    , OrgUnit+    , orgUnit+    , ouEtag+    , ouParentOrgUnitPath+    , ouKind+    , ouOrgUnitPath+    , ouName+    , ouBlockInheritance+    , ouParentOrgUnitId+    , ouDescription+    , ouOrgUnitId++    -- * UserMakeAdmin+    , UserMakeAdmin+    , userMakeAdmin+    , umaStatus++    -- * UserAbout+    , UserAbout+    , userAbout+    , uaValue+    , uaContentType++    -- * UsersListEvent+    , UsersListEvent (..)++    -- * Privileges+    , Privileges+    , privileges+    , pEtag+    , pKind+    , pItems++    -- * Groups+    , Groups+    , groups+    , gGroups+    , gEtag+    , gNextPageToken+    , gKind++    -- * UsersAliasesListEvent+    , UsersAliasesListEvent (..)++    -- * RoleAssignments+    , RoleAssignments+    , roleAssignments+    , raEtag+    , raNextPageToken+    , raKind+    , raItems++    -- * Privilege+    , Privilege+    , privilege+    , priEtag+    , priIsOuScopable+    , priKind+    , priServiceName+    , priServiceId+    , priPrivilegeName+    , priChildPrivileges++    -- * UsersAliasesWatchEvent+    , UsersAliasesWatchEvent (..)++    -- * Roles+    , Roles+    , roles+    , rEtag+    , rNextPageToken+    , rKind+    , rItems++    -- * UsersWatchEvent+    , UsersWatchEvent (..)++    -- * UserAddress+    , UserAddress+    , userAddress+    , uaStreetAddress+    , uaPoBox+    , uaCountry+    , uaPostalCode+    , uaFormatted+    , uaExtendedAddress+    , uaLocality+    , uaPrimary+    , uaCountryCode+    , uaRegion+    , uaType+    , uaCustomType+    , uaSourceIsStructured++    -- * CustomerPostalAddress+    , CustomerPostalAddress+    , customerPostalAddress+    , cpaOrganizationName+    , cpaPostalCode+    , cpaAddressLine1+    , cpaLocality+    , cpaContactName+    , cpaAddressLine2+    , cpaCountryCode+    , cpaRegion+    , cpaAddressLine3++    -- * RoleAssignment+    , RoleAssignment+    , roleAssignment+    , rolEtag+    , rolScopeType+    , rolKind+    , rolAssignedTo+    , rolRoleId+    , rolRoleAssignmentId+    , rolOrgUnitId++    -- * Group+    , Group+    , group'+    , groEmail+    , groEtag+    , groDirectMembersCount+    , groKind+    , groAliases+    , groNonEditableAliases+    , groName+    , groAdminCreated+    , groId+    , groDescription++    -- * ChromeOSDevice+    , ChromeOSDevice+    , chromeOSDevice+    , codStatus+    , codEtag+    , codAnnotatedUser+    , codPlatformVersion+    , codLastSync+    , codActiveTimeRanges+    , codKind+    , codEthernetMACAddress+    , codLastEnrollmentTime+    , codAnnotatedLocation+    , codMACAddress+    , codOrgUnitPath+    , codRecentUsers+    , codSupportEndDate+    , codModel+    , codWillAutoRenew+    , codMeid+    , codDeviceId+    , codBootMode+    , codOrderNumber+    , codAnnotatedAssetId+    , codNotes+    , codSerialNumber+    , codFirmwareVersion+    , codOSVersion++    -- * ChromeosDevicesPatchProjection+    , ChromeosDevicesPatchProjection (..)++    -- * ChromeosDevicesGetProjection+    , ChromeosDevicesGetProjection (..)++    -- * Users+    , Users+    , users+    , uEtag+    , uNextPageToken+    , uUsers+    , uKind+    , uTriggerEvent++    -- * Asp+    , Asp+    , asp+    , aCreationTime+    , aEtag+    , aCodeId+    , aKind+    , aName+    , aLastTimeUsed+    , aUserKey++    -- * Schemas+    , Schemas+    , schemas+    , sEtag+    , sSchemas+    , sKind++    -- * UsersListViewType+    , UsersListViewType (..)++    -- * OrgUnitsListType+    , OrgUnitsListType (..)++    -- * Notification+    , Notification+    , notification+    , nSubject+    , nEtag+    , nKind+    , nBody+    , nFromAddress+    , nIsUnread+    , nNotificationId+    , nSendTime++    -- * MobileDevicesListSortOrder+    , MobileDevicesListSortOrder (..)++    -- * UserIm+    , UserIm+    , userIm+    , uiIm+    , uiProtocol+    , uiPrimary+    , uiCustomProtocol+    , uiType+    , uiCustomType++    -- * UsersListOrderBy+    , UsersListOrderBy (..)++    -- * Tokens+    , Tokens+    , tokens+    , tEtag+    , tKind+    , tItems++    -- * UserCustomSchemas+    , UserCustomSchemas+    , userCustomSchemas+    , ucsAddtional++    -- * DomainAliases+    , DomainAliases+    , domainAliases+    , daEtag+    , daKind+    , daDomainAliases++    -- * Aliases+    , Aliases+    , aliases+    , aliEtag+    , aliKind+    , aliAliases++    -- * UserUndelete+    , UserUndelete+    , userUndelete+    , uuOrgUnitPath++    -- * Members+    , Members+    , members+    , mEtag+    , mNextPageToken+    , mKind+    , mMembers++    -- * Channel+    , Channel+    , channel+    , cResourceURI+    , cResourceId+    , cKind+    , cExpiration+    , cToken+    , cAddress+    , cPayload+    , cParams+    , cId+    , cType++    -- * MobileDevices+    , MobileDevices+    , mobileDevices+    , mdEtag+    , mdNextPageToken+    , mdKind+    , mdMobileDevices++    -- * Token+    , Token+    , token+    , tokClientId+    , tokEtag+    , tokDisplayText+    , tokKind+    , tokScopes+    , tokNATiveApp+    , tokAnonymous+    , tokUserKey++    -- * UserName+    , UserName+    , userName+    , unGivenName+    , unFullName+    , unFamilyName++    -- * UsersWatchViewType+    , UsersWatchViewType (..)++    -- * ChromeOSDeviceRecentUsersItem+    , ChromeOSDeviceRecentUsersItem+    , chromeOSDeviceRecentUsersItem+    , codruiEmail+    , codruiType++    -- * DomainAlias+    , DomainAlias+    , domainAlias+    , dCreationTime+    , dEtag+    , dKind+    , dVerified+    , dDomainAliasName+    , dParentDomainName++    -- * Alias+    , Alias+    , alias+    , aaEtag+    , aaKind+    , aaAlias+    , aaId+    , aaPrimaryEmail++    -- * UsersGetProjection+    , UsersGetProjection (..)++    -- * Schema+    , Schema+    , schema+    , schEtag+    , schKind+    , schSchemaName+    , schSchemaId+    , schFields++    -- * User+    , User+    , user+    , useCreationTime+    , useLastLoginTime+    , useThumbnailPhotoEtag+    , useEtag+    , useIPWhiteListed+    , useRelations+    , useHashFunction+    , useKind+    , useChangePasswordAtNextLogin+    , useWebsites+    , useAddresses+    , useAliases+    , useThumbnailPhotoURL+    , useExternalIds+    , useSuspended+    , useAgreedToTerms+    , useDeletionTime+    , useNonEditableAliases+    , useOrgUnitPath+    , useCustomerId+    , useIncludeInGlobalAddressList+    , usePhones+    , useName+    , usePassword+    , useEmails+    , useIms+    , useIsAdmin+    , useId+    , useOrganizations+    , usePrimaryEmail+    , useNotes+    , useIsDelegatedAdmin+    , useIsMailboxSetup+    , useCustomSchemas+    , useSuspensionReason++    -- * MobileDevicesListProjection+    , MobileDevicesListProjection (..)++    -- * Role+    , Role+    , role+    , rrEtag+    , rrKind+    , rrRoleName+    , rrIsSystemRole+    , rrRoleId+    , rrRoleDescription+    , rrIsSuperAdminRole+    , rrRolePrivileges++    -- * Customer+    , Customer+    , customer+    , cusEtag+    , cusKind+    , cusAlternateEmail+    , cusCustomerDomain+    , cusPhoneNumber+    , cusLanguage+    , cusId+    , cusCustomerCreationTime+    , cusPostalAddress++    -- * MobileDeviceApplicationsItem+    , MobileDeviceApplicationsItem+    , mobileDeviceApplicationsItem+    , mdaiVersionCode+    , mdaiVersionName+    , mdaiPackageName+    , mdaiDisplayName+    , mdaiPermission++    -- * MobileDevicesListOrderBy+    , MobileDevicesListOrderBy (..)++    -- * UsersListSortOrder+    , UsersListSortOrder (..)++    -- * OrgUnits+    , OrgUnits+    , orgUnits+    , oEtag+    , oKind+    , oOrganizationUnits++    -- * VerificationCodes+    , VerificationCodes+    , verificationCodes+    , vEtag+    , vKind+    , vItems++    -- * ChromeosDevicesListSortOrder+    , ChromeosDevicesListSortOrder (..)++    -- * UserRelation+    , UserRelation+    , userRelation+    , urValue+    , urType+    , urCustomType++    -- * UsersWatchSortOrder+    , UsersWatchSortOrder (..)++    -- * ChannelParams+    , ChannelParams+    , channelParams+    , cpAddtional++    -- * UserOrganization+    , UserOrganization+    , userOrganization+    , uoDePartment+    , uoLocation+    , uoCostCenter+    , uoDomain+    , uoSymbol+    , uoPrimary+    , uoName+    , uoTitle+    , uoType+    , uoCustomType+    , uoDescription++    -- * UserWebsite+    , UserWebsite+    , userWebsite+    , uwValue+    , uwPrimary+    , uwType+    , uwCustomType++    -- * ChromeOSDeviceActiveTimeRangesItem+    , ChromeOSDeviceActiveTimeRangesItem+    , chromeOSDeviceActiveTimeRangesItem+    , codatriDate+    , codatriActiveTime++    -- * UserEmail+    , UserEmail+    , userEmail+    , ueAddress+    , uePrimary+    , ueType+    , ueCustomType++    -- * UserPhone+    , UserPhone+    , userPhone+    , upValue+    , upPrimary+    , upType+    , upCustomType++    -- * UserPhoto+    , UserPhoto+    , userPhoto+    , upPhotoData+    , upEtag+    , upHeight+    , upKind+    , upWidth+    , upMimeType+    , upId+    , upPrimaryEmail++    -- * UsersListProjection+    , UsersListProjection (..)++    -- * ChromeosDevicesUpdateProjection+    , ChromeosDevicesUpdateProjection (..)++    -- * MobileDevicesGetProjection+    , MobileDevicesGetProjection (..)++    -- * MobileDevice+    , MobileDevice+    , mobileDevice+    , mobEmail+    , mobStatus+    , mobEtag+    , mobResourceId+    , mobBuildNumber+    , mobManagedAccountIsOnOwnerProFile+    , mobLastSync+    , mobOtherAccountsInfo+    , mobKind+    , mobAdbStatus+    , mobNetworkOperator+    , mobKernelVersion+    , mobOS+    , mobName+    , mobModel+    , mobDeveloperOptionsStatus+    , mobUnknownSourcesStatus+    , mobMeid+    , mobDeviceId+    , mobFirstSync+    , mobUserAgent+    , mobImei+    , mobType+    , mobWifiMACAddress+    , mobSerialNumber+    , mobHardwareId+    , mobBasebandVersion+    , mobSupportsWorkProFile+    , mobDeviceCompromisedStatus+    , mobApplications+    , mobDefaultLanguage++    -- * Member+    , Member+    , member+    , memEmail+    , memEtag+    , memKind+    , memRole+    , memId+    , memType++    -- * UserCustomProperties+    , UserCustomProperties+    , userCustomProperties+    , ucpAddtional++    -- * Domains+    , Domains+    , domains+    , domCreationTime+    , domEtag+    , domKind+    , domDomainAliases+    , domVerified+    , domDomainName+    , domIsPrimary++    -- * ChromeosDevicesListOrderBy+    , ChromeosDevicesListOrderBy (..)++    -- * UsersWatchProjection+    , UsersWatchProjection (..)++    -- * UsersWatchOrderBy+    , UsersWatchOrderBy (..)++    -- * Notifications+    , Notifications+    , notifications+    , notEtag+    , notNextPageToken+    , notKind+    , notItems+    , notUnreadNotificationsCount++    -- * ChromeosDevicesListProjection+    , ChromeosDevicesListProjection (..)++    -- * SchemaFieldSpecNumericIndexingSpec+    , SchemaFieldSpecNumericIndexingSpec+    , schemaFieldSpecNumericIndexingSpec+    , sfsnisMaxValue+    , sfsnisMinValue++    -- * MobileDeviceAction+    , MobileDeviceAction+    , mobileDeviceAction+    , mdaAction++    -- * SchemaFieldSpec+    , SchemaFieldSpec+    , schemaFieldSpec+    , sfsEtag+    , sfsKind+    , sfsNumericIndexingSpec+    , sfsReadAccessType+    , sfsFieldId+    , sfsIndexed+    , sfsFieldType+    , sfsFieldName+    , sfsMultiValued++    -- * ChromeOSDevices+    , ChromeOSDevices+    , chromeOSDevices+    , cosdEtag+    , cosdNextPageToken+    , cosdKind+    , cosdChromeosDevices++    -- * UserExternalId+    , UserExternalId+    , userExternalId+    , ueiValue+    , ueiType+    , ueiCustomType++    -- * Asps+    , Asps+    , asps+    , aspEtag+    , aspKind+    , aspItems++    -- * UsersGetViewType+    , UsersGetViewType (..)++    -- * RoleRolePrivilegesItem+    , RoleRolePrivilegesItem+    , roleRolePrivilegesItem+    , rrpiServiceId+    , rrpiPrivilegeName++    -- * Domains2+    , Domains2+    , domains2+    , ddEtag+    , ddKind+    , ddDomains+    ) where++import           Network.Google.Directory.Types.Product+import           Network.Google.Directory.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'directory_v1' of the Admin Directory API. This contains the host and root path used as a starting point for constructing service requests.+directoryService :: Service+directoryService+  = defaultService (ServiceId "admin:directory_v1")+      "www.googleapis.com"++-- | View delegated admin roles for your domain+adminDirectoryRolemanagementReadonlyScope :: OAuthScope+adminDirectoryRolemanagementReadonlyScope = "https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly";++-- | View groups on your domain+adminDirectoryGroupReadonlyScope :: OAuthScope+adminDirectoryGroupReadonlyScope = "https://www.googleapis.com/auth/admin.directory.group.readonly";++-- | View your Chrome OS devices\' metadata+adminDirectoryDeviceChromeosReadonlyScope :: OAuthScope+adminDirectoryDeviceChromeosReadonlyScope = "https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly";++-- | View and manage your Chrome OS devices\' metadata+adminDirectoryDeviceChromeosScope :: OAuthScope+adminDirectoryDeviceChromeosScope = "https://www.googleapis.com/auth/admin.directory.device.chromeos";++-- | View and manage the provisioning of users on your domain+adminDirectoryUserScope :: OAuthScope+adminDirectoryUserScope = "https://www.googleapis.com/auth/admin.directory.user";++-- | View group subscriptions on your domain+adminDirectoryGroupMemberReadonlyScope :: OAuthScope+adminDirectoryGroupMemberReadonlyScope = "https://www.googleapis.com/auth/admin.directory.group.member.readonly";++-- | View and manage user aliases on your domain+adminDirectoryUserAliasScope :: OAuthScope+adminDirectoryUserAliasScope = "https://www.googleapis.com/auth/admin.directory.user.alias";++-- | Manage your mobile devices by performing administrative tasks+adminDirectoryDeviceMobileActionScope :: OAuthScope+adminDirectoryDeviceMobileActionScope = "https://www.googleapis.com/auth/admin.directory.device.mobile.action";++-- | View domains related to your customers+adminDirectoryDomainReadonlyScope :: OAuthScope+adminDirectoryDomainReadonlyScope = "https://www.googleapis.com/auth/admin.directory.domain.readonly";++-- | View and manage the provisioning of user schemas on your domain+adminDirectoryUserschemaScope :: OAuthScope+adminDirectoryUserschemaScope = "https://www.googleapis.com/auth/admin.directory.userschema";++-- | View user schemas on your domain+adminDirectoryUserschemaReadonlyScope :: OAuthScope+adminDirectoryUserschemaReadonlyScope = "https://www.googleapis.com/auth/admin.directory.userschema.readonly";++-- | View and manage the provisioning of domains for your customers+adminDirectoryDomainScope :: OAuthScope+adminDirectoryDomainScope = "https://www.googleapis.com/auth/admin.directory.domain";++-- | Manage delegated admin roles for your domain+adminDirectoryRolemanagementScope :: OAuthScope+adminDirectoryRolemanagementScope = "https://www.googleapis.com/auth/admin.directory.rolemanagement";++-- | View and manage the provisioning of groups on your domain+adminDirectoryGroupScope :: OAuthScope+adminDirectoryGroupScope = "https://www.googleapis.com/auth/admin.directory.group";++-- | View organization units on your domain+adminDirectoryOrgunitReadonlyScope :: OAuthScope+adminDirectoryOrgunitReadonlyScope = "https://www.googleapis.com/auth/admin.directory.orgunit.readonly";++-- | View and manage customer related information+adminDirectoryCustomerScope :: OAuthScope+adminDirectoryCustomerScope = "https://www.googleapis.com/auth/admin.directory.customer";++-- | View customer related information+adminDirectoryCustomerReadonlyScope :: OAuthScope+adminDirectoryCustomerReadonlyScope = "https://www.googleapis.com/auth/admin.directory.customer.readonly";++-- | View and manage organization units on your domain+adminDirectoryOrgunitScope :: OAuthScope+adminDirectoryOrgunitScope = "https://www.googleapis.com/auth/admin.directory.orgunit";++-- | View users on your domain+adminDirectoryUserReadonlyScope :: OAuthScope+adminDirectoryUserReadonlyScope = "https://www.googleapis.com/auth/admin.directory.user.readonly";++-- | View user aliases on your domain+adminDirectoryUserAliasReadonlyScope :: OAuthScope+adminDirectoryUserAliasReadonlyScope = "https://www.googleapis.com/auth/admin.directory.user.alias.readonly";++-- | Manage data access permissions for users on your domain+adminDirectoryUserSecurityScope :: OAuthScope+adminDirectoryUserSecurityScope = "https://www.googleapis.com/auth/admin.directory.user.security";++-- | View and manage group subscriptions on your domain+adminDirectoryGroupMemberScope :: OAuthScope+adminDirectoryGroupMemberScope = "https://www.googleapis.com/auth/admin.directory.group.member";++-- | View and manage notifications received on your domain+adminDirectoryNotificationsScope :: OAuthScope+adminDirectoryNotificationsScope = "https://www.googleapis.com/auth/admin.directory.notifications";++-- | View and manage your mobile devices\' metadata+adminDirectoryDeviceMobileScope :: OAuthScope+adminDirectoryDeviceMobileScope = "https://www.googleapis.com/auth/admin.directory.device.mobile";++-- | View your mobile devices\' metadata+adminDirectoryDeviceMobileReadonlyScope :: OAuthScope+adminDirectoryDeviceMobileReadonlyScope = "https://www.googleapis.com/auth/admin.directory.device.mobile.readonly";
+ gen/Network/Google/Directory/Types/Product.hs view
@@ -0,0 +1,5677 @@+{-# 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.Directory.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.Directory.Types.Product where++import           Network.Google.Directory.Types.Sum+import           Network.Google.Prelude++-- | JSON template for verification codes in Directory API.+--+-- /See:/ 'verificationCode' smart constructor.+data VerificationCode = VerificationCode+    { _vcVerificationCode :: !(Maybe Text)+    , _vcEtag             :: !(Maybe Text)+    , _vcKind             :: !Text+    , _vcUserId           :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VerificationCode' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vcVerificationCode'+--+-- * 'vcEtag'+--+-- * 'vcKind'+--+-- * 'vcUserId'+verificationCode+    :: VerificationCode+verificationCode =+    VerificationCode+    { _vcVerificationCode = Nothing+    , _vcEtag = Nothing+    , _vcKind = "admin#directory#verificationCode"+    , _vcUserId = Nothing+    }++-- | A current verification code for the user. Invalidated or used+-- verification codes are not returned as part of the result.+vcVerificationCode :: Lens' VerificationCode (Maybe Text)+vcVerificationCode+  = lens _vcVerificationCode+      (\ s a -> s{_vcVerificationCode = a})++-- | ETag of the resource.+vcEtag :: Lens' VerificationCode (Maybe Text)+vcEtag = lens _vcEtag (\ s a -> s{_vcEtag = a})++-- | The type of the resource. This is always+-- admin#directory#verificationCode.+vcKind :: Lens' VerificationCode Text+vcKind = lens _vcKind (\ s a -> s{_vcKind = a})++-- | The obfuscated unique ID of the user.+vcUserId :: Lens' VerificationCode (Maybe Text)+vcUserId = lens _vcUserId (\ s a -> s{_vcUserId = a})++instance FromJSON VerificationCode where+        parseJSON+          = withObject "VerificationCode"+              (\ o ->+                 VerificationCode <$>+                   (o .:? "verificationCode") <*> (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#verificationCode")+                     <*> (o .:? "userId"))++instance ToJSON VerificationCode where+        toJSON VerificationCode{..}+          = object+              (catMaybes+                 [("verificationCode" .=) <$> _vcVerificationCode,+                  ("etag" .=) <$> _vcEtag, Just ("kind" .= _vcKind),+                  ("userId" .=) <$> _vcUserId])++-- | JSON template for Org Unit resource in Directory API.+--+-- /See:/ 'orgUnit' smart constructor.+data OrgUnit = OrgUnit+    { _ouEtag              :: !(Maybe Text)+    , _ouParentOrgUnitPath :: !(Maybe Text)+    , _ouKind              :: !Text+    , _ouOrgUnitPath       :: !(Maybe Text)+    , _ouName              :: !(Maybe Text)+    , _ouBlockInheritance  :: !(Maybe Bool)+    , _ouParentOrgUnitId   :: !(Maybe Text)+    , _ouDescription       :: !(Maybe Text)+    , _ouOrgUnitId         :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OrgUnit' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ouEtag'+--+-- * 'ouParentOrgUnitPath'+--+-- * 'ouKind'+--+-- * 'ouOrgUnitPath'+--+-- * 'ouName'+--+-- * 'ouBlockInheritance'+--+-- * 'ouParentOrgUnitId'+--+-- * 'ouDescription'+--+-- * 'ouOrgUnitId'+orgUnit+    :: OrgUnit+orgUnit =+    OrgUnit+    { _ouEtag = Nothing+    , _ouParentOrgUnitPath = Nothing+    , _ouKind = "admin#directory#orgUnit"+    , _ouOrgUnitPath = Nothing+    , _ouName = Nothing+    , _ouBlockInheritance = Nothing+    , _ouParentOrgUnitId = Nothing+    , _ouDescription = Nothing+    , _ouOrgUnitId = Nothing+    }++-- | ETag of the resource.+ouEtag :: Lens' OrgUnit (Maybe Text)+ouEtag = lens _ouEtag (\ s a -> s{_ouEtag = a})++-- | Path of parent OrgUnit+ouParentOrgUnitPath :: Lens' OrgUnit (Maybe Text)+ouParentOrgUnitPath+  = lens _ouParentOrgUnitPath+      (\ s a -> s{_ouParentOrgUnitPath = a})++-- | Kind of resource this is.+ouKind :: Lens' OrgUnit Text+ouKind = lens _ouKind (\ s a -> s{_ouKind = a})++-- | Path of OrgUnit+ouOrgUnitPath :: Lens' OrgUnit (Maybe Text)+ouOrgUnitPath+  = lens _ouOrgUnitPath+      (\ s a -> s{_ouOrgUnitPath = a})++-- | Name of OrgUnit+ouName :: Lens' OrgUnit (Maybe Text)+ouName = lens _ouName (\ s a -> s{_ouName = a})++-- | Should block inheritance+ouBlockInheritance :: Lens' OrgUnit (Maybe Bool)+ouBlockInheritance+  = lens _ouBlockInheritance+      (\ s a -> s{_ouBlockInheritance = a})++-- | Id of parent OrgUnit+ouParentOrgUnitId :: Lens' OrgUnit (Maybe Text)+ouParentOrgUnitId+  = lens _ouParentOrgUnitId+      (\ s a -> s{_ouParentOrgUnitId = a})++-- | Description of OrgUnit+ouDescription :: Lens' OrgUnit (Maybe Text)+ouDescription+  = lens _ouDescription+      (\ s a -> s{_ouDescription = a})++-- | Id of OrgUnit+ouOrgUnitId :: Lens' OrgUnit (Maybe Text)+ouOrgUnitId+  = lens _ouOrgUnitId (\ s a -> s{_ouOrgUnitId = a})++instance FromJSON OrgUnit where+        parseJSON+          = withObject "OrgUnit"+              (\ o ->+                 OrgUnit <$>+                   (o .:? "etag") <*> (o .:? "parentOrgUnitPath") <*>+                     (o .:? "kind" .!= "admin#directory#orgUnit")+                     <*> (o .:? "orgUnitPath")+                     <*> (o .:? "name")+                     <*> (o .:? "blockInheritance")+                     <*> (o .:? "parentOrgUnitId")+                     <*> (o .:? "description")+                     <*> (o .:? "orgUnitId"))++instance ToJSON OrgUnit where+        toJSON OrgUnit{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _ouEtag,+                  ("parentOrgUnitPath" .=) <$> _ouParentOrgUnitPath,+                  Just ("kind" .= _ouKind),+                  ("orgUnitPath" .=) <$> _ouOrgUnitPath,+                  ("name" .=) <$> _ouName,+                  ("blockInheritance" .=) <$> _ouBlockInheritance,+                  ("parentOrgUnitId" .=) <$> _ouParentOrgUnitId,+                  ("description" .=) <$> _ouDescription,+                  ("orgUnitId" .=) <$> _ouOrgUnitId])++-- | JSON request template for setting\/revoking admin status of a user in+-- Directory API.+--+-- /See:/ 'userMakeAdmin' smart constructor.+newtype UserMakeAdmin = UserMakeAdmin+    { _umaStatus :: Maybe Bool+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserMakeAdmin' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umaStatus'+userMakeAdmin+    :: UserMakeAdmin+userMakeAdmin =+    UserMakeAdmin+    { _umaStatus = Nothing+    }++-- | Boolean indicating new admin status of the user+umaStatus :: Lens' UserMakeAdmin (Maybe Bool)+umaStatus+  = lens _umaStatus (\ s a -> s{_umaStatus = a})++instance FromJSON UserMakeAdmin where+        parseJSON+          = withObject "UserMakeAdmin"+              (\ o -> UserMakeAdmin <$> (o .:? "status"))++instance ToJSON UserMakeAdmin where+        toJSON UserMakeAdmin{..}+          = object (catMaybes [("status" .=) <$> _umaStatus])++-- | JSON template for About (notes) of a user in Directory API.+--+-- /See:/ 'userAbout' smart constructor.+data UserAbout = UserAbout+    { _uaValue       :: !(Maybe Text)+    , _uaContentType :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserAbout' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uaValue'+--+-- * 'uaContentType'+userAbout+    :: UserAbout+userAbout =+    UserAbout+    { _uaValue = Nothing+    , _uaContentType = Nothing+    }++-- | Actual value of notes.+uaValue :: Lens' UserAbout (Maybe Text)+uaValue = lens _uaValue (\ s a -> s{_uaValue = a})++-- | About entry can have a type which indicates the content type. It can+-- either be plain or html. By default, notes contents are assumed to+-- contain plain text.+uaContentType :: Lens' UserAbout (Maybe Text)+uaContentType+  = lens _uaContentType+      (\ s a -> s{_uaContentType = a})++instance FromJSON UserAbout where+        parseJSON+          = withObject "UserAbout"+              (\ o ->+                 UserAbout <$>+                   (o .:? "value") <*> (o .:? "contentType"))++instance ToJSON UserAbout where+        toJSON UserAbout{..}+          = object+              (catMaybes+                 [("value" .=) <$> _uaValue,+                  ("contentType" .=) <$> _uaContentType])++-- | JSON response template for List privileges operation in Directory API.+--+-- /See:/ 'privileges' smart constructor.+data Privileges = Privileges+    { _pEtag  :: !(Maybe Text)+    , _pKind  :: !Text+    , _pItems :: !(Maybe [Privilege])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Privileges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pEtag'+--+-- * 'pKind'+--+-- * 'pItems'+privileges+    :: Privileges+privileges =+    Privileges+    { _pEtag = Nothing+    , _pKind = "admin#directory#privileges"+    , _pItems = Nothing+    }++-- | ETag of the resource.+pEtag :: Lens' Privileges (Maybe Text)+pEtag = lens _pEtag (\ s a -> s{_pEtag = a})++-- | The type of the API resource. This is always admin#directory#privileges.+pKind :: Lens' Privileges Text+pKind = lens _pKind (\ s a -> s{_pKind = a})++-- | A list of Privilege resources.+pItems :: Lens' Privileges [Privilege]+pItems+  = lens _pItems (\ s a -> s{_pItems = a}) . _Default .+      _Coerce++instance FromJSON Privileges where+        parseJSON+          = withObject "Privileges"+              (\ o ->+                 Privileges <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#privileges")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Privileges where+        toJSON Privileges{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _pEtag, Just ("kind" .= _pKind),+                  ("items" .=) <$> _pItems])++-- | JSON response template for List Groups operation in Directory API.+--+-- /See:/ 'groups' smart constructor.+data Groups = Groups+    { _gGroups        :: !(Maybe [Group])+    , _gEtag          :: !(Maybe Text)+    , _gNextPageToken :: !(Maybe Text)+    , _gKind          :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Groups' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gGroups'+--+-- * 'gEtag'+--+-- * 'gNextPageToken'+--+-- * 'gKind'+groups+    :: Groups+groups =+    Groups+    { _gGroups = Nothing+    , _gEtag = Nothing+    , _gNextPageToken = Nothing+    , _gKind = "admin#directory#groups"+    }++-- | List of group objects.+gGroups :: Lens' Groups [Group]+gGroups+  = lens _gGroups (\ s a -> s{_gGroups = a}) . _Default+      . _Coerce++-- | ETag of the resource.+gEtag :: Lens' Groups (Maybe Text)+gEtag = lens _gEtag (\ s a -> s{_gEtag = a})++-- | Token used to access next page of this result.+gNextPageToken :: Lens' Groups (Maybe Text)+gNextPageToken+  = lens _gNextPageToken+      (\ s a -> s{_gNextPageToken = a})++-- | Kind of resource this is.+gKind :: Lens' Groups Text+gKind = lens _gKind (\ s a -> s{_gKind = a})++instance FromJSON Groups where+        parseJSON+          = withObject "Groups"+              (\ o ->+                 Groups <$>+                   (o .:? "groups" .!= mempty) <*> (o .:? "etag") <*>+                     (o .:? "nextPageToken")+                     <*> (o .:? "kind" .!= "admin#directory#groups"))++instance ToJSON Groups where+        toJSON Groups{..}+          = object+              (catMaybes+                 [("groups" .=) <$> _gGroups, ("etag" .=) <$> _gEtag,+                  ("nextPageToken" .=) <$> _gNextPageToken,+                  Just ("kind" .= _gKind)])++-- | JSON response template for List roleAssignments operation in Directory+-- API.+--+-- /See:/ 'roleAssignments' smart constructor.+data RoleAssignments = RoleAssignments+    { _raEtag          :: !(Maybe Text)+    , _raNextPageToken :: !(Maybe Text)+    , _raKind          :: !Text+    , _raItems         :: !(Maybe [RoleAssignment])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RoleAssignments' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'raEtag'+--+-- * 'raNextPageToken'+--+-- * 'raKind'+--+-- * 'raItems'+roleAssignments+    :: RoleAssignments+roleAssignments =+    RoleAssignments+    { _raEtag = Nothing+    , _raNextPageToken = Nothing+    , _raKind = "admin#directory#roleAssignments"+    , _raItems = Nothing+    }++-- | ETag of the resource.+raEtag :: Lens' RoleAssignments (Maybe Text)+raEtag = lens _raEtag (\ s a -> s{_raEtag = a})++raNextPageToken :: Lens' RoleAssignments (Maybe Text)+raNextPageToken+  = lens _raNextPageToken+      (\ s a -> s{_raNextPageToken = a})++-- | The type of the API resource. This is always+-- admin#directory#roleAssignments.+raKind :: Lens' RoleAssignments Text+raKind = lens _raKind (\ s a -> s{_raKind = a})++-- | A list of RoleAssignment resources.+raItems :: Lens' RoleAssignments [RoleAssignment]+raItems+  = lens _raItems (\ s a -> s{_raItems = a}) . _Default+      . _Coerce++instance FromJSON RoleAssignments where+        parseJSON+          = withObject "RoleAssignments"+              (\ o ->+                 RoleAssignments <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "admin#directory#roleAssignments")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON RoleAssignments where+        toJSON RoleAssignments{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _raEtag,+                  ("nextPageToken" .=) <$> _raNextPageToken,+                  Just ("kind" .= _raKind), ("items" .=) <$> _raItems])++-- | JSON template for privilege resource in Directory API.+--+-- /See:/ 'privilege' smart constructor.+data Privilege = Privilege+    { _priEtag            :: !(Maybe Text)+    , _priIsOuScopable    :: !(Maybe Bool)+    , _priKind            :: !Text+    , _priServiceName     :: !(Maybe Text)+    , _priServiceId       :: !(Maybe Text)+    , _priPrivilegeName   :: !(Maybe Text)+    , _priChildPrivileges :: !(Maybe [Privilege])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Privilege' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'priEtag'+--+-- * 'priIsOuScopable'+--+-- * 'priKind'+--+-- * 'priServiceName'+--+-- * 'priServiceId'+--+-- * 'priPrivilegeName'+--+-- * 'priChildPrivileges'+privilege+    :: Privilege+privilege =+    Privilege+    { _priEtag = Nothing+    , _priIsOuScopable = Nothing+    , _priKind = "admin#directory#privilege"+    , _priServiceName = Nothing+    , _priServiceId = Nothing+    , _priPrivilegeName = Nothing+    , _priChildPrivileges = Nothing+    }++-- | ETag of the resource.+priEtag :: Lens' Privilege (Maybe Text)+priEtag = lens _priEtag (\ s a -> s{_priEtag = a})++-- | If the privilege can be restricted to an organization unit.+priIsOuScopable :: Lens' Privilege (Maybe Bool)+priIsOuScopable+  = lens _priIsOuScopable+      (\ s a -> s{_priIsOuScopable = a})++-- | The type of the API resource. This is always admin#directory#privilege.+priKind :: Lens' Privilege Text+priKind = lens _priKind (\ s a -> s{_priKind = a})++-- | The name of the service this privilege is for.+priServiceName :: Lens' Privilege (Maybe Text)+priServiceName+  = lens _priServiceName+      (\ s a -> s{_priServiceName = a})++-- | The obfuscated ID of the service this privilege is for.+priServiceId :: Lens' Privilege (Maybe Text)+priServiceId+  = lens _priServiceId (\ s a -> s{_priServiceId = a})++-- | The name of the privilege.+priPrivilegeName :: Lens' Privilege (Maybe Text)+priPrivilegeName+  = lens _priPrivilegeName+      (\ s a -> s{_priPrivilegeName = a})++-- | A list of child privileges. Privileges for a service form a tree. Each+-- privilege can have a list of child privileges; this list is empty for a+-- leaf privilege.+priChildPrivileges :: Lens' Privilege [Privilege]+priChildPrivileges+  = lens _priChildPrivileges+      (\ s a -> s{_priChildPrivileges = a})+      . _Default+      . _Coerce++instance FromJSON Privilege where+        parseJSON+          = withObject "Privilege"+              (\ o ->+                 Privilege <$>+                   (o .:? "etag") <*> (o .:? "isOuScopable") <*>+                     (o .:? "kind" .!= "admin#directory#privilege")+                     <*> (o .:? "serviceName")+                     <*> (o .:? "serviceId")+                     <*> (o .:? "privilegeName")+                     <*> (o .:? "childPrivileges" .!= mempty))++instance ToJSON Privilege where+        toJSON Privilege{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _priEtag,+                  ("isOuScopable" .=) <$> _priIsOuScopable,+                  Just ("kind" .= _priKind),+                  ("serviceName" .=) <$> _priServiceName,+                  ("serviceId" .=) <$> _priServiceId,+                  ("privilegeName" .=) <$> _priPrivilegeName,+                  ("childPrivileges" .=) <$> _priChildPrivileges])++-- | JSON response template for List roles operation in Directory API.+--+-- /See:/ 'roles' smart constructor.+data Roles = Roles+    { _rEtag          :: !(Maybe Text)+    , _rNextPageToken :: !(Maybe Text)+    , _rKind          :: !Text+    , _rItems         :: !(Maybe [Role])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Roles' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rEtag'+--+-- * 'rNextPageToken'+--+-- * 'rKind'+--+-- * 'rItems'+roles+    :: Roles+roles =+    Roles+    { _rEtag = Nothing+    , _rNextPageToken = Nothing+    , _rKind = "admin#directory#roles"+    , _rItems = Nothing+    }++-- | ETag of the resource.+rEtag :: Lens' Roles (Maybe Text)+rEtag = lens _rEtag (\ s a -> s{_rEtag = a})++rNextPageToken :: Lens' Roles (Maybe Text)+rNextPageToken+  = lens _rNextPageToken+      (\ s a -> s{_rNextPageToken = a})++-- | The type of the API resource. This is always admin#directory#roles.+rKind :: Lens' Roles Text+rKind = lens _rKind (\ s a -> s{_rKind = a})++-- | A list of Role resources.+rItems :: Lens' Roles [Role]+rItems+  = lens _rItems (\ s a -> s{_rItems = a}) . _Default .+      _Coerce++instance FromJSON Roles where+        parseJSON+          = withObject "Roles"+              (\ o ->+                 Roles <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "admin#directory#roles")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Roles where+        toJSON Roles{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _rEtag,+                  ("nextPageToken" .=) <$> _rNextPageToken,+                  Just ("kind" .= _rKind), ("items" .=) <$> _rItems])++-- | JSON template for address.+--+-- /See:/ 'userAddress' smart constructor.+data UserAddress = UserAddress+    { _uaStreetAddress      :: !(Maybe Text)+    , _uaPoBox              :: !(Maybe Text)+    , _uaCountry            :: !(Maybe Text)+    , _uaPostalCode         :: !(Maybe Text)+    , _uaFormatted          :: !(Maybe Text)+    , _uaExtendedAddress    :: !(Maybe Text)+    , _uaLocality           :: !(Maybe Text)+    , _uaPrimary            :: !(Maybe Bool)+    , _uaCountryCode        :: !(Maybe Text)+    , _uaRegion             :: !(Maybe Text)+    , _uaType               :: !(Maybe Text)+    , _uaCustomType         :: !(Maybe Text)+    , _uaSourceIsStructured :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserAddress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uaStreetAddress'+--+-- * 'uaPoBox'+--+-- * 'uaCountry'+--+-- * 'uaPostalCode'+--+-- * 'uaFormatted'+--+-- * 'uaExtendedAddress'+--+-- * 'uaLocality'+--+-- * 'uaPrimary'+--+-- * 'uaCountryCode'+--+-- * 'uaRegion'+--+-- * 'uaType'+--+-- * 'uaCustomType'+--+-- * 'uaSourceIsStructured'+userAddress+    :: UserAddress+userAddress =+    UserAddress+    { _uaStreetAddress = Nothing+    , _uaPoBox = Nothing+    , _uaCountry = Nothing+    , _uaPostalCode = Nothing+    , _uaFormatted = Nothing+    , _uaExtendedAddress = Nothing+    , _uaLocality = Nothing+    , _uaPrimary = Nothing+    , _uaCountryCode = Nothing+    , _uaRegion = Nothing+    , _uaType = Nothing+    , _uaCustomType = Nothing+    , _uaSourceIsStructured = Nothing+    }++-- | Street.+uaStreetAddress :: Lens' UserAddress (Maybe Text)+uaStreetAddress+  = lens _uaStreetAddress+      (\ s a -> s{_uaStreetAddress = a})++-- | Other parts of address.+uaPoBox :: Lens' UserAddress (Maybe Text)+uaPoBox = lens _uaPoBox (\ s a -> s{_uaPoBox = a})++-- | Country.+uaCountry :: Lens' UserAddress (Maybe Text)+uaCountry+  = lens _uaCountry (\ s a -> s{_uaCountry = a})++-- | Postal code.+uaPostalCode :: Lens' UserAddress (Maybe Text)+uaPostalCode+  = lens _uaPostalCode (\ s a -> s{_uaPostalCode = a})++-- | Formatted address.+uaFormatted :: Lens' UserAddress (Maybe Text)+uaFormatted+  = lens _uaFormatted (\ s a -> s{_uaFormatted = a})++-- | Extended Address.+uaExtendedAddress :: Lens' UserAddress (Maybe Text)+uaExtendedAddress+  = lens _uaExtendedAddress+      (\ s a -> s{_uaExtendedAddress = a})++-- | Locality.+uaLocality :: Lens' UserAddress (Maybe Text)+uaLocality+  = lens _uaLocality (\ s a -> s{_uaLocality = a})++-- | If this is user\'s primary address. Only one entry could be marked as+-- primary.+uaPrimary :: Lens' UserAddress (Maybe Bool)+uaPrimary+  = lens _uaPrimary (\ s a -> s{_uaPrimary = a})++-- | Country code.+uaCountryCode :: Lens' UserAddress (Maybe Text)+uaCountryCode+  = lens _uaCountryCode+      (\ s a -> s{_uaCountryCode = a})++-- | Region.+uaRegion :: Lens' UserAddress (Maybe Text)+uaRegion = lens _uaRegion (\ s a -> s{_uaRegion = a})++-- | Each entry can have a type which indicates standard values of that+-- entry. For example address could be of home, work etc. In addition to+-- the standard type, an entry can have a custom type and can take any+-- value. Such type should have the CUSTOM value as type and also have a+-- customType value.+uaType :: Lens' UserAddress (Maybe Text)+uaType = lens _uaType (\ s a -> s{_uaType = a})++-- | Custom type.+uaCustomType :: Lens' UserAddress (Maybe Text)+uaCustomType+  = lens _uaCustomType (\ s a -> s{_uaCustomType = a})++-- | User supplied address was structured. Structured addresses are NOT+-- supported at this time. You might be able to write structured addresses,+-- but any values will eventually be clobbered.+uaSourceIsStructured :: Lens' UserAddress (Maybe Bool)+uaSourceIsStructured+  = lens _uaSourceIsStructured+      (\ s a -> s{_uaSourceIsStructured = a})++instance FromJSON UserAddress where+        parseJSON+          = withObject "UserAddress"+              (\ o ->+                 UserAddress <$>+                   (o .:? "streetAddress") <*> (o .:? "poBox") <*>+                     (o .:? "country")+                     <*> (o .:? "postalCode")+                     <*> (o .:? "formatted")+                     <*> (o .:? "extendedAddress")+                     <*> (o .:? "locality")+                     <*> (o .:? "primary")+                     <*> (o .:? "countryCode")+                     <*> (o .:? "region")+                     <*> (o .:? "type")+                     <*> (o .:? "customType")+                     <*> (o .:? "sourceIsStructured"))++instance ToJSON UserAddress where+        toJSON UserAddress{..}+          = object+              (catMaybes+                 [("streetAddress" .=) <$> _uaStreetAddress,+                  ("poBox" .=) <$> _uaPoBox,+                  ("country" .=) <$> _uaCountry,+                  ("postalCode" .=) <$> _uaPostalCode,+                  ("formatted" .=) <$> _uaFormatted,+                  ("extendedAddress" .=) <$> _uaExtendedAddress,+                  ("locality" .=) <$> _uaLocality,+                  ("primary" .=) <$> _uaPrimary,+                  ("countryCode" .=) <$> _uaCountryCode,+                  ("region" .=) <$> _uaRegion, ("type" .=) <$> _uaType,+                  ("customType" .=) <$> _uaCustomType,+                  ("sourceIsStructured" .=) <$> _uaSourceIsStructured])++-- | JSON template for postal address of a customer.+--+-- /See:/ 'customerPostalAddress' smart constructor.+data CustomerPostalAddress = CustomerPostalAddress+    { _cpaOrganizationName :: !(Maybe Text)+    , _cpaPostalCode       :: !(Maybe Text)+    , _cpaAddressLine1     :: !(Maybe Text)+    , _cpaLocality         :: !(Maybe Text)+    , _cpaContactName      :: !(Maybe Text)+    , _cpaAddressLine2     :: !(Maybe Text)+    , _cpaCountryCode      :: !(Maybe Text)+    , _cpaRegion           :: !(Maybe Text)+    , _cpaAddressLine3     :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CustomerPostalAddress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpaOrganizationName'+--+-- * 'cpaPostalCode'+--+-- * 'cpaAddressLine1'+--+-- * 'cpaLocality'+--+-- * 'cpaContactName'+--+-- * 'cpaAddressLine2'+--+-- * 'cpaCountryCode'+--+-- * 'cpaRegion'+--+-- * 'cpaAddressLine3'+customerPostalAddress+    :: CustomerPostalAddress+customerPostalAddress =+    CustomerPostalAddress+    { _cpaOrganizationName = Nothing+    , _cpaPostalCode = Nothing+    , _cpaAddressLine1 = Nothing+    , _cpaLocality = Nothing+    , _cpaContactName = Nothing+    , _cpaAddressLine2 = Nothing+    , _cpaCountryCode = Nothing+    , _cpaRegion = Nothing+    , _cpaAddressLine3 = Nothing+    }++-- | The company or company division name.+cpaOrganizationName :: Lens' CustomerPostalAddress (Maybe Text)+cpaOrganizationName+  = lens _cpaOrganizationName+      (\ s a -> s{_cpaOrganizationName = a})++-- | The postal code. A postalCode example is a postal zip code such as+-- 10009. This is in accordance with -+-- http:\/\/portablecontacts.net\/draft-spec.html#address_element.+cpaPostalCode :: Lens' CustomerPostalAddress (Maybe Text)+cpaPostalCode+  = lens _cpaPostalCode+      (\ s a -> s{_cpaPostalCode = a})++-- | A customer\'s physical address. The address can be composed of one to+-- three lines.+cpaAddressLine1 :: Lens' CustomerPostalAddress (Maybe Text)+cpaAddressLine1+  = lens _cpaAddressLine1+      (\ s a -> s{_cpaAddressLine1 = a})++-- | Name of the locality. An example of a locality value is the city of San+-- Francisco.+cpaLocality :: Lens' CustomerPostalAddress (Maybe Text)+cpaLocality+  = lens _cpaLocality (\ s a -> s{_cpaLocality = a})++-- | The customer contact\'s name.+cpaContactName :: Lens' CustomerPostalAddress (Maybe Text)+cpaContactName+  = lens _cpaContactName+      (\ s a -> s{_cpaContactName = a})++-- | Address line 2 of the address.+cpaAddressLine2 :: Lens' CustomerPostalAddress (Maybe Text)+cpaAddressLine2+  = lens _cpaAddressLine2+      (\ s a -> s{_cpaAddressLine2 = a})++-- | This is a required property. For countryCode information see the ISO+-- 3166 country code elements.+cpaCountryCode :: Lens' CustomerPostalAddress (Maybe Text)+cpaCountryCode+  = lens _cpaCountryCode+      (\ s a -> s{_cpaCountryCode = a})++-- | Name of the region. An example of a region value is NY for the state of+-- New York.+cpaRegion :: Lens' CustomerPostalAddress (Maybe Text)+cpaRegion+  = lens _cpaRegion (\ s a -> s{_cpaRegion = a})++-- | Address line 3 of the address.+cpaAddressLine3 :: Lens' CustomerPostalAddress (Maybe Text)+cpaAddressLine3+  = lens _cpaAddressLine3+      (\ s a -> s{_cpaAddressLine3 = a})++instance FromJSON CustomerPostalAddress where+        parseJSON+          = withObject "CustomerPostalAddress"+              (\ o ->+                 CustomerPostalAddress <$>+                   (o .:? "organizationName") <*> (o .:? "postalCode")+                     <*> (o .:? "addressLine1")+                     <*> (o .:? "locality")+                     <*> (o .:? "contactName")+                     <*> (o .:? "addressLine2")+                     <*> (o .:? "countryCode")+                     <*> (o .:? "region")+                     <*> (o .:? "addressLine3"))++instance ToJSON CustomerPostalAddress where+        toJSON CustomerPostalAddress{..}+          = object+              (catMaybes+                 [("organizationName" .=) <$> _cpaOrganizationName,+                  ("postalCode" .=) <$> _cpaPostalCode,+                  ("addressLine1" .=) <$> _cpaAddressLine1,+                  ("locality" .=) <$> _cpaLocality,+                  ("contactName" .=) <$> _cpaContactName,+                  ("addressLine2" .=) <$> _cpaAddressLine2,+                  ("countryCode" .=) <$> _cpaCountryCode,+                  ("region" .=) <$> _cpaRegion,+                  ("addressLine3" .=) <$> _cpaAddressLine3])++-- | JSON template for roleAssignment resource in Directory API.+--+-- /See:/ 'roleAssignment' smart constructor.+data RoleAssignment = RoleAssignment+    { _rolEtag             :: !(Maybe Text)+    , _rolScopeType        :: !(Maybe Text)+    , _rolKind             :: !Text+    , _rolAssignedTo       :: !(Maybe Text)+    , _rolRoleId           :: !(Maybe (Textual Int64))+    , _rolRoleAssignmentId :: !(Maybe (Textual Int64))+    , _rolOrgUnitId        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RoleAssignment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rolEtag'+--+-- * 'rolScopeType'+--+-- * 'rolKind'+--+-- * 'rolAssignedTo'+--+-- * 'rolRoleId'+--+-- * 'rolRoleAssignmentId'+--+-- * 'rolOrgUnitId'+roleAssignment+    :: RoleAssignment+roleAssignment =+    RoleAssignment+    { _rolEtag = Nothing+    , _rolScopeType = Nothing+    , _rolKind = "admin#directory#roleAssignment"+    , _rolAssignedTo = Nothing+    , _rolRoleId = Nothing+    , _rolRoleAssignmentId = Nothing+    , _rolOrgUnitId = Nothing+    }++-- | ETag of the resource.+rolEtag :: Lens' RoleAssignment (Maybe Text)+rolEtag = lens _rolEtag (\ s a -> s{_rolEtag = a})++-- | The scope in which this role is assigned. Possible values are: -+-- CUSTOMER - ORG_UNIT+rolScopeType :: Lens' RoleAssignment (Maybe Text)+rolScopeType+  = lens _rolScopeType (\ s a -> s{_rolScopeType = a})++-- | The type of the API resource. This is always+-- admin#directory#roleAssignment.+rolKind :: Lens' RoleAssignment Text+rolKind = lens _rolKind (\ s a -> s{_rolKind = a})++-- | The unique ID of the user this role is assigned to.+rolAssignedTo :: Lens' RoleAssignment (Maybe Text)+rolAssignedTo+  = lens _rolAssignedTo+      (\ s a -> s{_rolAssignedTo = a})++-- | The ID of the role that is assigned.+rolRoleId :: Lens' RoleAssignment (Maybe Int64)+rolRoleId+  = lens _rolRoleId (\ s a -> s{_rolRoleId = a}) .+      mapping _Coerce++-- | ID of this roleAssignment.+rolRoleAssignmentId :: Lens' RoleAssignment (Maybe Int64)+rolRoleAssignmentId+  = lens _rolRoleAssignmentId+      (\ s a -> s{_rolRoleAssignmentId = a})+      . mapping _Coerce++-- | If the role is restricted to an organization unit, this contains the ID+-- for the organization unit the exercise of this role is restricted to.+rolOrgUnitId :: Lens' RoleAssignment (Maybe Text)+rolOrgUnitId+  = lens _rolOrgUnitId (\ s a -> s{_rolOrgUnitId = a})++instance FromJSON RoleAssignment where+        parseJSON+          = withObject "RoleAssignment"+              (\ o ->+                 RoleAssignment <$>+                   (o .:? "etag") <*> (o .:? "scopeType") <*>+                     (o .:? "kind" .!= "admin#directory#roleAssignment")+                     <*> (o .:? "assignedTo")+                     <*> (o .:? "roleId")+                     <*> (o .:? "roleAssignmentId")+                     <*> (o .:? "orgUnitId"))++instance ToJSON RoleAssignment where+        toJSON RoleAssignment{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _rolEtag,+                  ("scopeType" .=) <$> _rolScopeType,+                  Just ("kind" .= _rolKind),+                  ("assignedTo" .=) <$> _rolAssignedTo,+                  ("roleId" .=) <$> _rolRoleId,+                  ("roleAssignmentId" .=) <$> _rolRoleAssignmentId,+                  ("orgUnitId" .=) <$> _rolOrgUnitId])++-- | JSON template for Group resource in Directory API.+--+-- /See:/ 'group'' smart constructor.+data Group = Group+    { _groEmail              :: !(Maybe Text)+    , _groEtag               :: !(Maybe Text)+    , _groDirectMembersCount :: !(Maybe (Textual Int64))+    , _groKind               :: !Text+    , _groAliases            :: !(Maybe [Text])+    , _groNonEditableAliases :: !(Maybe [Text])+    , _groName               :: !(Maybe Text)+    , _groAdminCreated       :: !(Maybe Bool)+    , _groId                 :: !(Maybe Text)+    , _groDescription        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Group' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'groEmail'+--+-- * 'groEtag'+--+-- * 'groDirectMembersCount'+--+-- * 'groKind'+--+-- * 'groAliases'+--+-- * 'groNonEditableAliases'+--+-- * 'groName'+--+-- * 'groAdminCreated'+--+-- * 'groId'+--+-- * 'groDescription'+group'+    :: Group+group' =+    Group+    { _groEmail = Nothing+    , _groEtag = Nothing+    , _groDirectMembersCount = Nothing+    , _groKind = "admin#directory#group"+    , _groAliases = Nothing+    , _groNonEditableAliases = Nothing+    , _groName = Nothing+    , _groAdminCreated = Nothing+    , _groId = Nothing+    , _groDescription = Nothing+    }++-- | Email of Group+groEmail :: Lens' Group (Maybe Text)+groEmail = lens _groEmail (\ s a -> s{_groEmail = a})++-- | ETag of the resource.+groEtag :: Lens' Group (Maybe Text)+groEtag = lens _groEtag (\ s a -> s{_groEtag = a})++-- | Group direct members count+groDirectMembersCount :: Lens' Group (Maybe Int64)+groDirectMembersCount+  = lens _groDirectMembersCount+      (\ s a -> s{_groDirectMembersCount = a})+      . mapping _Coerce++-- | Kind of resource this is.+groKind :: Lens' Group Text+groKind = lens _groKind (\ s a -> s{_groKind = a})++-- | List of aliases (Read-only)+groAliases :: Lens' Group [Text]+groAliases+  = lens _groAliases (\ s a -> s{_groAliases = a}) .+      _Default+      . _Coerce++-- | List of non editable aliases (Read-only)+groNonEditableAliases :: Lens' Group [Text]+groNonEditableAliases+  = lens _groNonEditableAliases+      (\ s a -> s{_groNonEditableAliases = a})+      . _Default+      . _Coerce++-- | Group name+groName :: Lens' Group (Maybe Text)+groName = lens _groName (\ s a -> s{_groName = a})++-- | Is the group created by admin (Read-only) *+groAdminCreated :: Lens' Group (Maybe Bool)+groAdminCreated+  = lens _groAdminCreated+      (\ s a -> s{_groAdminCreated = a})++-- | Unique identifier of Group (Read-only)+groId :: Lens' Group (Maybe Text)+groId = lens _groId (\ s a -> s{_groId = a})++-- | Description of the group+groDescription :: Lens' Group (Maybe Text)+groDescription+  = lens _groDescription+      (\ s a -> s{_groDescription = a})++instance FromJSON Group where+        parseJSON+          = withObject "Group"+              (\ o ->+                 Group <$>+                   (o .:? "email") <*> (o .:? "etag") <*>+                     (o .:? "directMembersCount")+                     <*> (o .:? "kind" .!= "admin#directory#group")+                     <*> (o .:? "aliases" .!= mempty)+                     <*> (o .:? "nonEditableAliases" .!= mempty)+                     <*> (o .:? "name")+                     <*> (o .:? "adminCreated")+                     <*> (o .:? "id")+                     <*> (o .:? "description"))++instance ToJSON Group where+        toJSON Group{..}+          = object+              (catMaybes+                 [("email" .=) <$> _groEmail,+                  ("etag" .=) <$> _groEtag,+                  ("directMembersCount" .=) <$> _groDirectMembersCount,+                  Just ("kind" .= _groKind),+                  ("aliases" .=) <$> _groAliases,+                  ("nonEditableAliases" .=) <$> _groNonEditableAliases,+                  ("name" .=) <$> _groName,+                  ("adminCreated" .=) <$> _groAdminCreated,+                  ("id" .=) <$> _groId,+                  ("description" .=) <$> _groDescription])++-- | JSON template for Chrome Os Device resource in Directory API.+--+-- /See:/ 'chromeOSDevice' smart constructor.+data ChromeOSDevice = ChromeOSDevice+    { _codStatus             :: !(Maybe Text)+    , _codEtag               :: !(Maybe Text)+    , _codAnnotatedUser      :: !(Maybe Text)+    , _codPlatformVersion    :: !(Maybe Text)+    , _codLastSync           :: !(Maybe DateTime')+    , _codActiveTimeRanges   :: !(Maybe [ChromeOSDeviceActiveTimeRangesItem])+    , _codKind               :: !Text+    , _codEthernetMACAddress :: !(Maybe Text)+    , _codLastEnrollmentTime :: !(Maybe DateTime')+    , _codAnnotatedLocation  :: !(Maybe Text)+    , _codMACAddress         :: !(Maybe Text)+    , _codOrgUnitPath        :: !(Maybe Text)+    , _codRecentUsers        :: !(Maybe [ChromeOSDeviceRecentUsersItem])+    , _codSupportEndDate     :: !(Maybe DateTime')+    , _codModel              :: !(Maybe Text)+    , _codWillAutoRenew      :: !(Maybe Bool)+    , _codMeid               :: !(Maybe Text)+    , _codDeviceId           :: !(Maybe Text)+    , _codBootMode           :: !(Maybe Text)+    , _codOrderNumber        :: !(Maybe Text)+    , _codAnnotatedAssetId   :: !(Maybe Text)+    , _codNotes              :: !(Maybe Text)+    , _codSerialNumber       :: !(Maybe Text)+    , _codFirmwareVersion    :: !(Maybe Text)+    , _codOSVersion          :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChromeOSDevice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'codStatus'+--+-- * 'codEtag'+--+-- * 'codAnnotatedUser'+--+-- * 'codPlatformVersion'+--+-- * 'codLastSync'+--+-- * 'codActiveTimeRanges'+--+-- * 'codKind'+--+-- * 'codEthernetMACAddress'+--+-- * 'codLastEnrollmentTime'+--+-- * 'codAnnotatedLocation'+--+-- * 'codMACAddress'+--+-- * 'codOrgUnitPath'+--+-- * 'codRecentUsers'+--+-- * 'codSupportEndDate'+--+-- * 'codModel'+--+-- * 'codWillAutoRenew'+--+-- * 'codMeid'+--+-- * 'codDeviceId'+--+-- * 'codBootMode'+--+-- * 'codOrderNumber'+--+-- * 'codAnnotatedAssetId'+--+-- * 'codNotes'+--+-- * 'codSerialNumber'+--+-- * 'codFirmwareVersion'+--+-- * 'codOSVersion'+chromeOSDevice+    :: ChromeOSDevice+chromeOSDevice =+    ChromeOSDevice+    { _codStatus = Nothing+    , _codEtag = Nothing+    , _codAnnotatedUser = Nothing+    , _codPlatformVersion = Nothing+    , _codLastSync = Nothing+    , _codActiveTimeRanges = Nothing+    , _codKind = "admin#directory#chromeosdevice"+    , _codEthernetMACAddress = Nothing+    , _codLastEnrollmentTime = Nothing+    , _codAnnotatedLocation = Nothing+    , _codMACAddress = Nothing+    , _codOrgUnitPath = Nothing+    , _codRecentUsers = Nothing+    , _codSupportEndDate = Nothing+    , _codModel = Nothing+    , _codWillAutoRenew = Nothing+    , _codMeid = Nothing+    , _codDeviceId = Nothing+    , _codBootMode = Nothing+    , _codOrderNumber = Nothing+    , _codAnnotatedAssetId = Nothing+    , _codNotes = Nothing+    , _codSerialNumber = Nothing+    , _codFirmwareVersion = Nothing+    , _codOSVersion = Nothing+    }++-- | status of the device (Read-only)+codStatus :: Lens' ChromeOSDevice (Maybe Text)+codStatus+  = lens _codStatus (\ s a -> s{_codStatus = a})++-- | ETag of the resource.+codEtag :: Lens' ChromeOSDevice (Maybe Text)+codEtag = lens _codEtag (\ s a -> s{_codEtag = a})++-- | User of the device+codAnnotatedUser :: Lens' ChromeOSDevice (Maybe Text)+codAnnotatedUser+  = lens _codAnnotatedUser+      (\ s a -> s{_codAnnotatedUser = a})++-- | Chromebook platform version (Read-only)+codPlatformVersion :: Lens' ChromeOSDevice (Maybe Text)+codPlatformVersion+  = lens _codPlatformVersion+      (\ s a -> s{_codPlatformVersion = a})++-- | Date and time the device was last synchronized with the policy settings+-- in the Google Apps administrator control panel (Read-only)+codLastSync :: Lens' ChromeOSDevice (Maybe UTCTime)+codLastSync+  = lens _codLastSync (\ s a -> s{_codLastSync = a}) .+      mapping _DateTime++-- | List of active time ranges (Read-only)+codActiveTimeRanges :: Lens' ChromeOSDevice [ChromeOSDeviceActiveTimeRangesItem]+codActiveTimeRanges+  = lens _codActiveTimeRanges+      (\ s a -> s{_codActiveTimeRanges = a})+      . _Default+      . _Coerce++-- | Kind of resource this is.+codKind :: Lens' ChromeOSDevice Text+codKind = lens _codKind (\ s a -> s{_codKind = a})++-- | Chromebook Mac Address on ethernet network interface (Read-only)+codEthernetMACAddress :: Lens' ChromeOSDevice (Maybe Text)+codEthernetMACAddress+  = lens _codEthernetMACAddress+      (\ s a -> s{_codEthernetMACAddress = a})++-- | Date and time the device was last enrolled (Read-only)+codLastEnrollmentTime :: Lens' ChromeOSDevice (Maybe UTCTime)+codLastEnrollmentTime+  = lens _codLastEnrollmentTime+      (\ s a -> s{_codLastEnrollmentTime = a})+      . mapping _DateTime++-- | Address or location of the device as noted by the administrator+codAnnotatedLocation :: Lens' ChromeOSDevice (Maybe Text)+codAnnotatedLocation+  = lens _codAnnotatedLocation+      (\ s a -> s{_codAnnotatedLocation = a})++-- | Chromebook Mac Address on wifi network interface (Read-only)+codMACAddress :: Lens' ChromeOSDevice (Maybe Text)+codMACAddress+  = lens _codMACAddress+      (\ s a -> s{_codMACAddress = a})++-- | OrgUnit of the device+codOrgUnitPath :: Lens' ChromeOSDevice (Maybe Text)+codOrgUnitPath+  = lens _codOrgUnitPath+      (\ s a -> s{_codOrgUnitPath = a})++-- | List of recent device users, in descending order by last login time+-- (Read-only)+codRecentUsers :: Lens' ChromeOSDevice [ChromeOSDeviceRecentUsersItem]+codRecentUsers+  = lens _codRecentUsers+      (\ s a -> s{_codRecentUsers = a})+      . _Default+      . _Coerce++-- | Final date the device will be supported (Read-only)+codSupportEndDate :: Lens' ChromeOSDevice (Maybe UTCTime)+codSupportEndDate+  = lens _codSupportEndDate+      (\ s a -> s{_codSupportEndDate = a})+      . mapping _DateTime++-- | Chromebook Model (Read-only)+codModel :: Lens' ChromeOSDevice (Maybe Text)+codModel = lens _codModel (\ s a -> s{_codModel = a})++-- | Will Chromebook auto renew after support end date (Read-only)+codWillAutoRenew :: Lens' ChromeOSDevice (Maybe Bool)+codWillAutoRenew+  = lens _codWillAutoRenew+      (\ s a -> s{_codWillAutoRenew = a})++-- | Mobile Equipment identifier for the 3G mobile card in the Chromebook+-- (Read-only)+codMeid :: Lens' ChromeOSDevice (Maybe Text)+codMeid = lens _codMeid (\ s a -> s{_codMeid = a})++-- | Unique identifier of Chrome OS Device (Read-only)+codDeviceId :: Lens' ChromeOSDevice (Maybe Text)+codDeviceId+  = lens _codDeviceId (\ s a -> s{_codDeviceId = a})++-- | Chromebook boot mode (Read-only)+codBootMode :: Lens' ChromeOSDevice (Maybe Text)+codBootMode+  = lens _codBootMode (\ s a -> s{_codBootMode = a})++-- | Chromebook order number (Read-only)+codOrderNumber :: Lens' ChromeOSDevice (Maybe Text)+codOrderNumber+  = lens _codOrderNumber+      (\ s a -> s{_codOrderNumber = a})++-- | AssetId specified during enrollment or through later annotation+codAnnotatedAssetId :: Lens' ChromeOSDevice (Maybe Text)+codAnnotatedAssetId+  = lens _codAnnotatedAssetId+      (\ s a -> s{_codAnnotatedAssetId = a})++-- | Notes added by the administrator+codNotes :: Lens' ChromeOSDevice (Maybe Text)+codNotes = lens _codNotes (\ s a -> s{_codNotes = a})++-- | Chromebook serial number (Read-only)+codSerialNumber :: Lens' ChromeOSDevice (Maybe Text)+codSerialNumber+  = lens _codSerialNumber+      (\ s a -> s{_codSerialNumber = a})++-- | Chromebook firmware version (Read-only)+codFirmwareVersion :: Lens' ChromeOSDevice (Maybe Text)+codFirmwareVersion+  = lens _codFirmwareVersion+      (\ s a -> s{_codFirmwareVersion = a})++-- | Chromebook Os Version (Read-only)+codOSVersion :: Lens' ChromeOSDevice (Maybe Text)+codOSVersion+  = lens _codOSVersion (\ s a -> s{_codOSVersion = a})++instance FromJSON ChromeOSDevice where+        parseJSON+          = withObject "ChromeOSDevice"+              (\ o ->+                 ChromeOSDevice <$>+                   (o .:? "status") <*> (o .:? "etag") <*>+                     (o .:? "annotatedUser")+                     <*> (o .:? "platformVersion")+                     <*> (o .:? "lastSync")+                     <*> (o .:? "activeTimeRanges" .!= mempty)+                     <*>+                     (o .:? "kind" .!= "admin#directory#chromeosdevice")+                     <*> (o .:? "ethernetMacAddress")+                     <*> (o .:? "lastEnrollmentTime")+                     <*> (o .:? "annotatedLocation")+                     <*> (o .:? "macAddress")+                     <*> (o .:? "orgUnitPath")+                     <*> (o .:? "recentUsers" .!= mempty)+                     <*> (o .:? "supportEndDate")+                     <*> (o .:? "model")+                     <*> (o .:? "willAutoRenew")+                     <*> (o .:? "meid")+                     <*> (o .:? "deviceId")+                     <*> (o .:? "bootMode")+                     <*> (o .:? "orderNumber")+                     <*> (o .:? "annotatedAssetId")+                     <*> (o .:? "notes")+                     <*> (o .:? "serialNumber")+                     <*> (o .:? "firmwareVersion")+                     <*> (o .:? "osVersion"))++instance ToJSON ChromeOSDevice where+        toJSON ChromeOSDevice{..}+          = object+              (catMaybes+                 [("status" .=) <$> _codStatus,+                  ("etag" .=) <$> _codEtag,+                  ("annotatedUser" .=) <$> _codAnnotatedUser,+                  ("platformVersion" .=) <$> _codPlatformVersion,+                  ("lastSync" .=) <$> _codLastSync,+                  ("activeTimeRanges" .=) <$> _codActiveTimeRanges,+                  Just ("kind" .= _codKind),+                  ("ethernetMacAddress" .=) <$> _codEthernetMACAddress,+                  ("lastEnrollmentTime" .=) <$> _codLastEnrollmentTime,+                  ("annotatedLocation" .=) <$> _codAnnotatedLocation,+                  ("macAddress" .=) <$> _codMACAddress,+                  ("orgUnitPath" .=) <$> _codOrgUnitPath,+                  ("recentUsers" .=) <$> _codRecentUsers,+                  ("supportEndDate" .=) <$> _codSupportEndDate,+                  ("model" .=) <$> _codModel,+                  ("willAutoRenew" .=) <$> _codWillAutoRenew,+                  ("meid" .=) <$> _codMeid,+                  ("deviceId" .=) <$> _codDeviceId,+                  ("bootMode" .=) <$> _codBootMode,+                  ("orderNumber" .=) <$> _codOrderNumber,+                  ("annotatedAssetId" .=) <$> _codAnnotatedAssetId,+                  ("notes" .=) <$> _codNotes,+                  ("serialNumber" .=) <$> _codSerialNumber,+                  ("firmwareVersion" .=) <$> _codFirmwareVersion,+                  ("osVersion" .=) <$> _codOSVersion])++-- | JSON response template for List Users operation in Apps Directory API.+--+-- /See:/ 'users' smart constructor.+data Users = Users+    { _uEtag          :: !(Maybe Text)+    , _uNextPageToken :: !(Maybe Text)+    , _uUsers         :: !(Maybe [User])+    , _uKind          :: !Text+    , _uTriggerEvent  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Users' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uEtag'+--+-- * 'uNextPageToken'+--+-- * 'uUsers'+--+-- * 'uKind'+--+-- * 'uTriggerEvent'+users+    :: Users+users =+    Users+    { _uEtag = Nothing+    , _uNextPageToken = Nothing+    , _uUsers = Nothing+    , _uKind = "admin#directory#users"+    , _uTriggerEvent = Nothing+    }++-- | ETag of the resource.+uEtag :: Lens' Users (Maybe Text)+uEtag = lens _uEtag (\ s a -> s{_uEtag = a})++-- | Token used to access next page of this result.+uNextPageToken :: Lens' Users (Maybe Text)+uNextPageToken+  = lens _uNextPageToken+      (\ s a -> s{_uNextPageToken = a})++-- | List of user objects.+uUsers :: Lens' Users [User]+uUsers+  = lens _uUsers (\ s a -> s{_uUsers = a}) . _Default .+      _Coerce++-- | Kind of resource this is.+uKind :: Lens' Users Text+uKind = lens _uKind (\ s a -> s{_uKind = a})++-- | Event that triggered this response (only used in case of Push Response)+uTriggerEvent :: Lens' Users (Maybe Text)+uTriggerEvent+  = lens _uTriggerEvent+      (\ s a -> s{_uTriggerEvent = a})++instance FromJSON Users where+        parseJSON+          = withObject "Users"+              (\ o ->+                 Users <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "users" .!= mempty)+                     <*> (o .:? "kind" .!= "admin#directory#users")+                     <*> (o .:? "trigger_event"))++instance ToJSON Users where+        toJSON Users{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _uEtag,+                  ("nextPageToken" .=) <$> _uNextPageToken,+                  ("users" .=) <$> _uUsers, Just ("kind" .= _uKind),+                  ("trigger_event" .=) <$> _uTriggerEvent])++-- | The template that returns individual ASP (Access Code) data.+--+-- /See:/ 'asp' smart constructor.+data Asp = Asp+    { _aCreationTime :: !(Maybe (Textual Int64))+    , _aEtag         :: !(Maybe Text)+    , _aCodeId       :: !(Maybe (Textual Int32))+    , _aKind         :: !Text+    , _aName         :: !(Maybe Text)+    , _aLastTimeUsed :: !(Maybe (Textual Int64))+    , _aUserKey      :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Asp' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aCreationTime'+--+-- * 'aEtag'+--+-- * 'aCodeId'+--+-- * 'aKind'+--+-- * 'aName'+--+-- * 'aLastTimeUsed'+--+-- * 'aUserKey'+asp+    :: Asp+asp =+    Asp+    { _aCreationTime = Nothing+    , _aEtag = Nothing+    , _aCodeId = Nothing+    , _aKind = "admin#directory#asp"+    , _aName = Nothing+    , _aLastTimeUsed = Nothing+    , _aUserKey = Nothing+    }++-- | The time when the ASP was created. Expressed in Unix time format.+aCreationTime :: Lens' Asp (Maybe Int64)+aCreationTime+  = lens _aCreationTime+      (\ s a -> s{_aCreationTime = a})+      . mapping _Coerce++-- | ETag of the ASP.+aEtag :: Lens' Asp (Maybe Text)+aEtag = lens _aEtag (\ s a -> s{_aEtag = a})++-- | The unique ID of the ASP.+aCodeId :: Lens' Asp (Maybe Int32)+aCodeId+  = lens _aCodeId (\ s a -> s{_aCodeId = a}) .+      mapping _Coerce++-- | The type of the API resource. This is always admin#directory#asp.+aKind :: Lens' Asp Text+aKind = lens _aKind (\ s a -> s{_aKind = a})++-- | The name of the application that the user, represented by their userId,+-- entered when the ASP was created.+aName :: Lens' Asp (Maybe Text)+aName = lens _aName (\ s a -> s{_aName = a})++-- | The time when the ASP was last used. Expressed in Unix time format.+aLastTimeUsed :: Lens' Asp (Maybe Int64)+aLastTimeUsed+  = lens _aLastTimeUsed+      (\ s a -> s{_aLastTimeUsed = a})+      . mapping _Coerce++-- | The unique ID of the user who issued the ASP.+aUserKey :: Lens' Asp (Maybe Text)+aUserKey = lens _aUserKey (\ s a -> s{_aUserKey = a})++instance FromJSON Asp where+        parseJSON+          = withObject "Asp"+              (\ o ->+                 Asp <$>+                   (o .:? "creationTime") <*> (o .:? "etag") <*>+                     (o .:? "codeId")+                     <*> (o .:? "kind" .!= "admin#directory#asp")+                     <*> (o .:? "name")+                     <*> (o .:? "lastTimeUsed")+                     <*> (o .:? "userKey"))++instance ToJSON Asp where+        toJSON Asp{..}+          = object+              (catMaybes+                 [("creationTime" .=) <$> _aCreationTime,+                  ("etag" .=) <$> _aEtag, ("codeId" .=) <$> _aCodeId,+                  Just ("kind" .= _aKind), ("name" .=) <$> _aName,+                  ("lastTimeUsed" .=) <$> _aLastTimeUsed,+                  ("userKey" .=) <$> _aUserKey])++-- | JSON response template for List Schema operation in Directory API.+--+-- /See:/ 'schemas' smart constructor.+data Schemas = Schemas+    { _sEtag    :: !(Maybe Text)+    , _sSchemas :: !(Maybe [Schema])+    , _sKind    :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Schemas' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sEtag'+--+-- * 'sSchemas'+--+-- * 'sKind'+schemas+    :: Schemas+schemas =+    Schemas+    { _sEtag = Nothing+    , _sSchemas = Nothing+    , _sKind = "admin#directory#schemas"+    }++-- | ETag of the resource.+sEtag :: Lens' Schemas (Maybe Text)+sEtag = lens _sEtag (\ s a -> s{_sEtag = a})++-- | List of UserSchema objects.+sSchemas :: Lens' Schemas [Schema]+sSchemas+  = lens _sSchemas (\ s a -> s{_sSchemas = a}) .+      _Default+      . _Coerce++-- | Kind of resource this is.+sKind :: Lens' Schemas Text+sKind = lens _sKind (\ s a -> s{_sKind = a})++instance FromJSON Schemas where+        parseJSON+          = withObject "Schemas"+              (\ o ->+                 Schemas <$>+                   (o .:? "etag") <*> (o .:? "schemas" .!= mempty) <*>+                     (o .:? "kind" .!= "admin#directory#schemas"))++instance ToJSON Schemas where+        toJSON Schemas{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _sEtag,+                  ("schemas" .=) <$> _sSchemas,+                  Just ("kind" .= _sKind)])++-- | Template for a notification resource.+--+-- /See:/ 'notification' smart constructor.+data Notification = Notification+    { _nSubject        :: !(Maybe Text)+    , _nEtag           :: !(Maybe Text)+    , _nKind           :: !Text+    , _nBody           :: !(Maybe Text)+    , _nFromAddress    :: !(Maybe Text)+    , _nIsUnread       :: !(Maybe Bool)+    , _nNotificationId :: !(Maybe Text)+    , _nSendTime       :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Notification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nSubject'+--+-- * 'nEtag'+--+-- * 'nKind'+--+-- * 'nBody'+--+-- * 'nFromAddress'+--+-- * 'nIsUnread'+--+-- * 'nNotificationId'+--+-- * 'nSendTime'+notification+    :: Notification+notification =+    Notification+    { _nSubject = Nothing+    , _nEtag = Nothing+    , _nKind = "admin#directory#notification"+    , _nBody = Nothing+    , _nFromAddress = Nothing+    , _nIsUnread = Nothing+    , _nNotificationId = Nothing+    , _nSendTime = Nothing+    }++-- | Subject of the notification (Read-only)+nSubject :: Lens' Notification (Maybe Text)+nSubject = lens _nSubject (\ s a -> s{_nSubject = a})++-- | ETag of the resource.+nEtag :: Lens' Notification (Maybe Text)+nEtag = lens _nEtag (\ s a -> s{_nEtag = a})++-- | The type of the resource.+nKind :: Lens' Notification Text+nKind = lens _nKind (\ s a -> s{_nKind = a})++-- | Body of the notification (Read-only)+nBody :: Lens' Notification (Maybe Text)+nBody = lens _nBody (\ s a -> s{_nBody = a})++-- | Address from which the notification is received (Read-only)+nFromAddress :: Lens' Notification (Maybe Text)+nFromAddress+  = lens _nFromAddress (\ s a -> s{_nFromAddress = a})++-- | Boolean indicating whether the notification is unread or not.+nIsUnread :: Lens' Notification (Maybe Bool)+nIsUnread+  = lens _nIsUnread (\ s a -> s{_nIsUnread = a})++nNotificationId :: Lens' Notification (Maybe Text)+nNotificationId+  = lens _nNotificationId+      (\ s a -> s{_nNotificationId = a})++-- | Time at which notification was sent (Read-only)+nSendTime :: Lens' Notification (Maybe UTCTime)+nSendTime+  = lens _nSendTime (\ s a -> s{_nSendTime = a}) .+      mapping _DateTime++instance FromJSON Notification where+        parseJSON+          = withObject "Notification"+              (\ o ->+                 Notification <$>+                   (o .:? "subject") <*> (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#notification")+                     <*> (o .:? "body")+                     <*> (o .:? "fromAddress")+                     <*> (o .:? "isUnread")+                     <*> (o .:? "notificationId")+                     <*> (o .:? "sendTime"))++instance ToJSON Notification where+        toJSON Notification{..}+          = object+              (catMaybes+                 [("subject" .=) <$> _nSubject,+                  ("etag" .=) <$> _nEtag, Just ("kind" .= _nKind),+                  ("body" .=) <$> _nBody,+                  ("fromAddress" .=) <$> _nFromAddress,+                  ("isUnread" .=) <$> _nIsUnread,+                  ("notificationId" .=) <$> _nNotificationId,+                  ("sendTime" .=) <$> _nSendTime])++-- | JSON template for instant messenger of an user.+--+-- /See:/ 'userIm' smart constructor.+data UserIm = UserIm+    { _uiIm             :: !(Maybe Text)+    , _uiProtocol       :: !(Maybe Text)+    , _uiPrimary        :: !(Maybe Bool)+    , _uiCustomProtocol :: !(Maybe Text)+    , _uiType           :: !(Maybe Text)+    , _uiCustomType     :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserIm' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uiIm'+--+-- * 'uiProtocol'+--+-- * 'uiPrimary'+--+-- * 'uiCustomProtocol'+--+-- * 'uiType'+--+-- * 'uiCustomType'+userIm+    :: UserIm+userIm =+    UserIm+    { _uiIm = Nothing+    , _uiProtocol = Nothing+    , _uiPrimary = Nothing+    , _uiCustomProtocol = Nothing+    , _uiType = Nothing+    , _uiCustomType = Nothing+    }++-- | Instant messenger id.+uiIm :: Lens' UserIm (Maybe Text)+uiIm = lens _uiIm (\ s a -> s{_uiIm = a})++-- | Protocol used in the instant messenger. It should be one of the values+-- from ImProtocolTypes map. Similar to type, it can take a CUSTOM value+-- and specify the custom name in customProtocol field.+uiProtocol :: Lens' UserIm (Maybe Text)+uiProtocol+  = lens _uiProtocol (\ s a -> s{_uiProtocol = a})++-- | If this is user\'s primary im. Only one entry could be marked as+-- primary.+uiPrimary :: Lens' UserIm (Maybe Bool)+uiPrimary+  = lens _uiPrimary (\ s a -> s{_uiPrimary = a})++-- | Custom protocol.+uiCustomProtocol :: Lens' UserIm (Maybe Text)+uiCustomProtocol+  = lens _uiCustomProtocol+      (\ s a -> s{_uiCustomProtocol = a})++-- | Each entry can have a type which indicates standard types of that entry.+-- For example instant messengers could be of home, work etc. In addition+-- to the standard type, an entry can have a custom type and can take any+-- value. Such types should have the CUSTOM value as type and also have a+-- customType value.+uiType :: Lens' UserIm (Maybe Text)+uiType = lens _uiType (\ s a -> s{_uiType = a})++-- | Custom type.+uiCustomType :: Lens' UserIm (Maybe Text)+uiCustomType+  = lens _uiCustomType (\ s a -> s{_uiCustomType = a})++instance FromJSON UserIm where+        parseJSON+          = withObject "UserIm"+              (\ o ->+                 UserIm <$>+                   (o .:? "im") <*> (o .:? "protocol") <*>+                     (o .:? "primary")+                     <*> (o .:? "customProtocol")+                     <*> (o .:? "type")+                     <*> (o .:? "customType"))++instance ToJSON UserIm where+        toJSON UserIm{..}+          = object+              (catMaybes+                 [("im" .=) <$> _uiIm,+                  ("protocol" .=) <$> _uiProtocol,+                  ("primary" .=) <$> _uiPrimary,+                  ("customProtocol" .=) <$> _uiCustomProtocol,+                  ("type" .=) <$> _uiType,+                  ("customType" .=) <$> _uiCustomType])++-- | JSON response template for List tokens operation in Directory API.+--+-- /See:/ 'tokens' smart constructor.+data Tokens = Tokens+    { _tEtag  :: !(Maybe Text)+    , _tKind  :: !Text+    , _tItems :: !(Maybe [Token])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Tokens' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tEtag'+--+-- * 'tKind'+--+-- * 'tItems'+tokens+    :: Tokens+tokens =+    Tokens+    { _tEtag = Nothing+    , _tKind = "admin#directory#tokenList"+    , _tItems = Nothing+    }++-- | ETag of the resource.+tEtag :: Lens' Tokens (Maybe Text)+tEtag = lens _tEtag (\ s a -> s{_tEtag = a})++-- | The type of the API resource. This is always admin#directory#tokenList.+tKind :: Lens' Tokens Text+tKind = lens _tKind (\ s a -> s{_tKind = a})++-- | A list of Token resources.+tItems :: Lens' Tokens [Token]+tItems+  = lens _tItems (\ s a -> s{_tItems = a}) . _Default .+      _Coerce++instance FromJSON Tokens where+        parseJSON+          = withObject "Tokens"+              (\ o ->+                 Tokens <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#tokenList")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Tokens where+        toJSON Tokens{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _tEtag, Just ("kind" .= _tKind),+                  ("items" .=) <$> _tItems])++-- | Custom fields of the user.+--+-- /See:/ 'userCustomSchemas' smart constructor.+newtype UserCustomSchemas = UserCustomSchemas+    { _ucsAddtional :: HashMap Text UserCustomProperties+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserCustomSchemas' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ucsAddtional'+userCustomSchemas+    :: HashMap Text UserCustomProperties -- ^ 'ucsAddtional'+    -> UserCustomSchemas+userCustomSchemas pUcsAddtional_ =+    UserCustomSchemas+    { _ucsAddtional = _Coerce # pUcsAddtional_+    }++ucsAddtional :: Lens' UserCustomSchemas (HashMap Text UserCustomProperties)+ucsAddtional+  = lens _ucsAddtional (\ s a -> s{_ucsAddtional = a})+      . _Coerce++instance FromJSON UserCustomSchemas where+        parseJSON+          = withObject "UserCustomSchemas"+              (\ o -> UserCustomSchemas <$> (parseJSONObject o))++instance ToJSON UserCustomSchemas where+        toJSON = toJSON . _ucsAddtional++-- | JSON response template to list domain aliases in Directory API.+--+-- /See:/ 'domainAliases' smart constructor.+data DomainAliases = DomainAliases+    { _daEtag          :: !(Maybe Text)+    , _daKind          :: !Text+    , _daDomainAliases :: !(Maybe [DomainAlias])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DomainAliases' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'daEtag'+--+-- * 'daKind'+--+-- * 'daDomainAliases'+domainAliases+    :: DomainAliases+domainAliases =+    DomainAliases+    { _daEtag = Nothing+    , _daKind = "admin#directory#domainAliases"+    , _daDomainAliases = Nothing+    }++-- | ETag of the resource.+daEtag :: Lens' DomainAliases (Maybe Text)+daEtag = lens _daEtag (\ s a -> s{_daEtag = a})++-- | Kind of resource this is.+daKind :: Lens' DomainAliases Text+daKind = lens _daKind (\ s a -> s{_daKind = a})++-- | List of domain alias objects.+daDomainAliases :: Lens' DomainAliases [DomainAlias]+daDomainAliases+  = lens _daDomainAliases+      (\ s a -> s{_daDomainAliases = a})+      . _Default+      . _Coerce++instance FromJSON DomainAliases where+        parseJSON+          = withObject "DomainAliases"+              (\ o ->+                 DomainAliases <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#domainAliases")+                     <*> (o .:? "domainAliases" .!= mempty))++instance ToJSON DomainAliases where+        toJSON DomainAliases{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _daEtag, Just ("kind" .= _daKind),+                  ("domainAliases" .=) <$> _daDomainAliases])++-- | JSON response template to list aliases in Directory API.+--+-- /See:/ 'aliases' smart constructor.+data Aliases = Aliases+    { _aliEtag    :: !(Maybe Text)+    , _aliKind    :: !Text+    , _aliAliases :: !(Maybe [Alias])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Aliases' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aliEtag'+--+-- * 'aliKind'+--+-- * 'aliAliases'+aliases+    :: Aliases+aliases =+    Aliases+    { _aliEtag = Nothing+    , _aliKind = "admin#directory#aliases"+    , _aliAliases = Nothing+    }++-- | ETag of the resource.+aliEtag :: Lens' Aliases (Maybe Text)+aliEtag = lens _aliEtag (\ s a -> s{_aliEtag = a})++-- | Kind of resource this is.+aliKind :: Lens' Aliases Text+aliKind = lens _aliKind (\ s a -> s{_aliKind = a})++-- | List of alias objects.+aliAliases :: Lens' Aliases [Alias]+aliAliases+  = lens _aliAliases (\ s a -> s{_aliAliases = a}) .+      _Default+      . _Coerce++instance FromJSON Aliases where+        parseJSON+          = withObject "Aliases"+              (\ o ->+                 Aliases <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#aliases")+                     <*> (o .:? "aliases" .!= mempty))++instance ToJSON Aliases where+        toJSON Aliases{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _aliEtag, Just ("kind" .= _aliKind),+                  ("aliases" .=) <$> _aliAliases])++-- | JSON request template to undelete a user in Directory API.+--+-- /See:/ 'userUndelete' smart constructor.+newtype UserUndelete = UserUndelete+    { _uuOrgUnitPath :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserUndelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uuOrgUnitPath'+userUndelete+    :: UserUndelete+userUndelete =+    UserUndelete+    { _uuOrgUnitPath = Nothing+    }++-- | OrgUnit of User+uuOrgUnitPath :: Lens' UserUndelete (Maybe Text)+uuOrgUnitPath+  = lens _uuOrgUnitPath+      (\ s a -> s{_uuOrgUnitPath = a})++instance FromJSON UserUndelete where+        parseJSON+          = withObject "UserUndelete"+              (\ o -> UserUndelete <$> (o .:? "orgUnitPath"))++instance ToJSON UserUndelete where+        toJSON UserUndelete{..}+          = object+              (catMaybes [("orgUnitPath" .=) <$> _uuOrgUnitPath])++-- | JSON response template for List Members operation in Directory API.+--+-- /See:/ 'members' smart constructor.+data Members = Members+    { _mEtag          :: !(Maybe Text)+    , _mNextPageToken :: !(Maybe Text)+    , _mKind          :: !Text+    , _mMembers       :: !(Maybe [Member])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Members' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mEtag'+--+-- * 'mNextPageToken'+--+-- * 'mKind'+--+-- * 'mMembers'+members+    :: Members+members =+    Members+    { _mEtag = Nothing+    , _mNextPageToken = Nothing+    , _mKind = "admin#directory#members"+    , _mMembers = Nothing+    }++-- | ETag of the resource.+mEtag :: Lens' Members (Maybe Text)+mEtag = lens _mEtag (\ s a -> s{_mEtag = a})++-- | Token used to access next page of this result.+mNextPageToken :: Lens' Members (Maybe Text)+mNextPageToken+  = lens _mNextPageToken+      (\ s a -> s{_mNextPageToken = a})++-- | Kind of resource this is.+mKind :: Lens' Members Text+mKind = lens _mKind (\ s a -> s{_mKind = a})++-- | List of member objects.+mMembers :: Lens' Members [Member]+mMembers+  = lens _mMembers (\ s a -> s{_mMembers = a}) .+      _Default+      . _Coerce++instance FromJSON Members where+        parseJSON+          = withObject "Members"+              (\ o ->+                 Members <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "admin#directory#members")+                     <*> (o .:? "members" .!= mempty))++instance ToJSON Members where+        toJSON Members{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _mEtag,+                  ("nextPageToken" .=) <$> _mNextPageToken,+                  Just ("kind" .= _mKind),+                  ("members" .=) <$> _mMembers])++-- | An notification channel used to watch for resource changes.+--+-- /See:/ 'channel' smart constructor.+data Channel = Channel+    { _cResourceURI :: !(Maybe Text)+    , _cResourceId  :: !(Maybe Text)+    , _cKind        :: !Text+    , _cExpiration  :: !(Maybe (Textual Int64))+    , _cToken       :: !(Maybe Text)+    , _cAddress     :: !(Maybe Text)+    , _cPayload     :: !(Maybe Bool)+    , _cParams      :: !(Maybe ChannelParams)+    , _cId          :: !(Maybe Text)+    , _cType        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Channel' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cResourceURI'+--+-- * 'cResourceId'+--+-- * 'cKind'+--+-- * 'cExpiration'+--+-- * 'cToken'+--+-- * 'cAddress'+--+-- * 'cPayload'+--+-- * 'cParams'+--+-- * 'cId'+--+-- * 'cType'+channel+    :: Channel+channel =+    Channel+    { _cResourceURI = Nothing+    , _cResourceId = Nothing+    , _cKind = "api#channel"+    , _cExpiration = Nothing+    , _cToken = Nothing+    , _cAddress = Nothing+    , _cPayload = Nothing+    , _cParams = Nothing+    , _cId = Nothing+    , _cType = Nothing+    }++-- | A version-specific identifier for the watched resource.+cResourceURI :: Lens' Channel (Maybe Text)+cResourceURI+  = lens _cResourceURI (\ s a -> s{_cResourceURI = a})++-- | An opaque ID that identifies the resource being watched on this channel.+-- Stable across different API versions.+cResourceId :: Lens' Channel (Maybe Text)+cResourceId+  = lens _cResourceId (\ s a -> s{_cResourceId = a})++-- | Identifies this as a notification channel used to watch for changes to a+-- resource. Value: the fixed string \"api#channel\".+cKind :: Lens' Channel Text+cKind = lens _cKind (\ s a -> s{_cKind = a})++-- | Date and time of notification channel expiration, expressed as a Unix+-- timestamp, in milliseconds. Optional.+cExpiration :: Lens' Channel (Maybe Int64)+cExpiration+  = lens _cExpiration (\ s a -> s{_cExpiration = a}) .+      mapping _Coerce++-- | An arbitrary string delivered to the target address with each+-- notification delivered over this channel. Optional.+cToken :: Lens' Channel (Maybe Text)+cToken = lens _cToken (\ s a -> s{_cToken = a})++-- | The address where notifications are delivered for this channel.+cAddress :: Lens' Channel (Maybe Text)+cAddress = lens _cAddress (\ s a -> s{_cAddress = a})++-- | A Boolean value to indicate whether payload is wanted. Optional.+cPayload :: Lens' Channel (Maybe Bool)+cPayload = lens _cPayload (\ s a -> s{_cPayload = a})++-- | Additional parameters controlling delivery channel behavior. Optional.+cParams :: Lens' Channel (Maybe ChannelParams)+cParams = lens _cParams (\ s a -> s{_cParams = a})++-- | A UUID or similar unique string that identifies this channel.+cId :: Lens' Channel (Maybe Text)+cId = lens _cId (\ s a -> s{_cId = a})++-- | The type of delivery mechanism used for this channel.+cType :: Lens' Channel (Maybe Text)+cType = lens _cType (\ s a -> s{_cType = a})++instance FromJSON Channel where+        parseJSON+          = withObject "Channel"+              (\ o ->+                 Channel <$>+                   (o .:? "resourceUri") <*> (o .:? "resourceId") <*>+                     (o .:? "kind" .!= "api#channel")+                     <*> (o .:? "expiration")+                     <*> (o .:? "token")+                     <*> (o .:? "address")+                     <*> (o .:? "payload")+                     <*> (o .:? "params")+                     <*> (o .:? "id")+                     <*> (o .:? "type"))++instance ToJSON Channel where+        toJSON Channel{..}+          = object+              (catMaybes+                 [("resourceUri" .=) <$> _cResourceURI,+                  ("resourceId" .=) <$> _cResourceId,+                  Just ("kind" .= _cKind),+                  ("expiration" .=) <$> _cExpiration,+                  ("token" .=) <$> _cToken,+                  ("address" .=) <$> _cAddress,+                  ("payload" .=) <$> _cPayload,+                  ("params" .=) <$> _cParams, ("id" .=) <$> _cId,+                  ("type" .=) <$> _cType])++-- | JSON response template for List Mobile Devices operation in Directory+-- API.+--+-- /See:/ 'mobileDevices' smart constructor.+data MobileDevices = MobileDevices+    { _mdEtag          :: !(Maybe Text)+    , _mdNextPageToken :: !(Maybe Text)+    , _mdKind          :: !Text+    , _mdMobileDevices :: !(Maybe [MobileDevice])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MobileDevices' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdEtag'+--+-- * 'mdNextPageToken'+--+-- * 'mdKind'+--+-- * 'mdMobileDevices'+mobileDevices+    :: MobileDevices+mobileDevices =+    MobileDevices+    { _mdEtag = Nothing+    , _mdNextPageToken = Nothing+    , _mdKind = "admin#directory#mobiledevices"+    , _mdMobileDevices = Nothing+    }++-- | ETag of the resource.+mdEtag :: Lens' MobileDevices (Maybe Text)+mdEtag = lens _mdEtag (\ s a -> s{_mdEtag = a})++-- | Token used to access next page of this result.+mdNextPageToken :: Lens' MobileDevices (Maybe Text)+mdNextPageToken+  = lens _mdNextPageToken+      (\ s a -> s{_mdNextPageToken = a})++-- | Kind of resource this is.+mdKind :: Lens' MobileDevices Text+mdKind = lens _mdKind (\ s a -> s{_mdKind = a})++-- | List of Mobile Device objects.+mdMobileDevices :: Lens' MobileDevices [MobileDevice]+mdMobileDevices+  = lens _mdMobileDevices+      (\ s a -> s{_mdMobileDevices = a})+      . _Default+      . _Coerce++instance FromJSON MobileDevices where+        parseJSON+          = withObject "MobileDevices"+              (\ o ->+                 MobileDevices <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "admin#directory#mobiledevices")+                     <*> (o .:? "mobiledevices" .!= mempty))++instance ToJSON MobileDevices where+        toJSON MobileDevices{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _mdEtag,+                  ("nextPageToken" .=) <$> _mdNextPageToken,+                  Just ("kind" .= _mdKind),+                  ("mobiledevices" .=) <$> _mdMobileDevices])++-- | JSON template for token resource in Directory API.+--+-- /See:/ 'token' smart constructor.+data Token = Token+    { _tokClientId    :: !(Maybe Text)+    , _tokEtag        :: !(Maybe Text)+    , _tokDisplayText :: !(Maybe Text)+    , _tokKind        :: !Text+    , _tokScopes      :: !(Maybe [Text])+    , _tokNATiveApp   :: !(Maybe Bool)+    , _tokAnonymous   :: !(Maybe Bool)+    , _tokUserKey     :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Token' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tokClientId'+--+-- * 'tokEtag'+--+-- * 'tokDisplayText'+--+-- * 'tokKind'+--+-- * 'tokScopes'+--+-- * 'tokNATiveApp'+--+-- * 'tokAnonymous'+--+-- * 'tokUserKey'+token+    :: Token+token =+    Token+    { _tokClientId = Nothing+    , _tokEtag = Nothing+    , _tokDisplayText = Nothing+    , _tokKind = "admin#directory#token"+    , _tokScopes = Nothing+    , _tokNATiveApp = Nothing+    , _tokAnonymous = Nothing+    , _tokUserKey = Nothing+    }++-- | The Client ID of the application the token is issued to.+tokClientId :: Lens' Token (Maybe Text)+tokClientId+  = lens _tokClientId (\ s a -> s{_tokClientId = a})++-- | ETag of the resource.+tokEtag :: Lens' Token (Maybe Text)+tokEtag = lens _tokEtag (\ s a -> s{_tokEtag = a})++-- | The displayable name of the application the token is issued to.+tokDisplayText :: Lens' Token (Maybe Text)+tokDisplayText+  = lens _tokDisplayText+      (\ s a -> s{_tokDisplayText = a})++-- | The type of the API resource. This is always admin#directory#token.+tokKind :: Lens' Token Text+tokKind = lens _tokKind (\ s a -> s{_tokKind = a})++-- | A list of authorization scopes the application is granted.+tokScopes :: Lens' Token [Text]+tokScopes+  = lens _tokScopes (\ s a -> s{_tokScopes = a}) .+      _Default+      . _Coerce++-- | Whether the token is issued to an installed application. The value is+-- true if the application is installed to a desktop or mobile device.+tokNATiveApp :: Lens' Token (Maybe Bool)+tokNATiveApp+  = lens _tokNATiveApp (\ s a -> s{_tokNATiveApp = a})++-- | Whether the application is registered with Google. The value is true if+-- the application has an anonymous Client ID.+tokAnonymous :: Lens' Token (Maybe Bool)+tokAnonymous+  = lens _tokAnonymous (\ s a -> s{_tokAnonymous = a})++-- | The unique ID of the user that issued the token.+tokUserKey :: Lens' Token (Maybe Text)+tokUserKey+  = lens _tokUserKey (\ s a -> s{_tokUserKey = a})++instance FromJSON Token where+        parseJSON+          = withObject "Token"+              (\ o ->+                 Token <$>+                   (o .:? "clientId") <*> (o .:? "etag") <*>+                     (o .:? "displayText")+                     <*> (o .:? "kind" .!= "admin#directory#token")+                     <*> (o .:? "scopes" .!= mempty)+                     <*> (o .:? "nativeApp")+                     <*> (o .:? "anonymous")+                     <*> (o .:? "userKey"))++instance ToJSON Token where+        toJSON Token{..}+          = object+              (catMaybes+                 [("clientId" .=) <$> _tokClientId,+                  ("etag" .=) <$> _tokEtag,+                  ("displayText" .=) <$> _tokDisplayText,+                  Just ("kind" .= _tokKind),+                  ("scopes" .=) <$> _tokScopes,+                  ("nativeApp" .=) <$> _tokNATiveApp,+                  ("anonymous" .=) <$> _tokAnonymous,+                  ("userKey" .=) <$> _tokUserKey])++-- | JSON template for name of a user in Directory API.+--+-- /See:/ 'userName' smart constructor.+data UserName = UserName+    { _unGivenName  :: !(Maybe Text)+    , _unFullName   :: !(Maybe Text)+    , _unFamilyName :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserName' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'unGivenName'+--+-- * 'unFullName'+--+-- * 'unFamilyName'+userName+    :: UserName+userName =+    UserName+    { _unGivenName = Nothing+    , _unFullName = Nothing+    , _unFamilyName = Nothing+    }++-- | First Name+unGivenName :: Lens' UserName (Maybe Text)+unGivenName+  = lens _unGivenName (\ s a -> s{_unGivenName = a})++-- | Full Name+unFullName :: Lens' UserName (Maybe Text)+unFullName+  = lens _unFullName (\ s a -> s{_unFullName = a})++-- | Last Name+unFamilyName :: Lens' UserName (Maybe Text)+unFamilyName+  = lens _unFamilyName (\ s a -> s{_unFamilyName = a})++instance FromJSON UserName where+        parseJSON+          = withObject "UserName"+              (\ o ->+                 UserName <$>+                   (o .:? "givenName") <*> (o .:? "fullName") <*>+                     (o .:? "familyName"))++instance ToJSON UserName where+        toJSON UserName{..}+          = object+              (catMaybes+                 [("givenName" .=) <$> _unGivenName,+                  ("fullName" .=) <$> _unFullName,+                  ("familyName" .=) <$> _unFamilyName])++--+-- /See:/ 'chromeOSDeviceRecentUsersItem' smart constructor.+data ChromeOSDeviceRecentUsersItem = ChromeOSDeviceRecentUsersItem+    { _codruiEmail :: !(Maybe Text)+    , _codruiType  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChromeOSDeviceRecentUsersItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'codruiEmail'+--+-- * 'codruiType'+chromeOSDeviceRecentUsersItem+    :: ChromeOSDeviceRecentUsersItem+chromeOSDeviceRecentUsersItem =+    ChromeOSDeviceRecentUsersItem+    { _codruiEmail = Nothing+    , _codruiType = Nothing+    }++-- | Email address of the user. Present only if the user type is managed+codruiEmail :: Lens' ChromeOSDeviceRecentUsersItem (Maybe Text)+codruiEmail+  = lens _codruiEmail (\ s a -> s{_codruiEmail = a})++-- | The type of the user+codruiType :: Lens' ChromeOSDeviceRecentUsersItem (Maybe Text)+codruiType+  = lens _codruiType (\ s a -> s{_codruiType = a})++instance FromJSON ChromeOSDeviceRecentUsersItem where+        parseJSON+          = withObject "ChromeOSDeviceRecentUsersItem"+              (\ o ->+                 ChromeOSDeviceRecentUsersItem <$>+                   (o .:? "email") <*> (o .:? "type"))++instance ToJSON ChromeOSDeviceRecentUsersItem where+        toJSON ChromeOSDeviceRecentUsersItem{..}+          = object+              (catMaybes+                 [("email" .=) <$> _codruiEmail,+                  ("type" .=) <$> _codruiType])++-- | JSON template for Domain Alias object in Directory API.+--+-- /See:/ 'domainAlias' smart constructor.+data DomainAlias = DomainAlias+    { _dCreationTime     :: !(Maybe (Textual Int64))+    , _dEtag             :: !(Maybe Text)+    , _dKind             :: !Text+    , _dVerified         :: !(Maybe Bool)+    , _dDomainAliasName  :: !(Maybe Text)+    , _dParentDomainName :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DomainAlias' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dCreationTime'+--+-- * 'dEtag'+--+-- * 'dKind'+--+-- * 'dVerified'+--+-- * 'dDomainAliasName'+--+-- * 'dParentDomainName'+domainAlias+    :: DomainAlias+domainAlias =+    DomainAlias+    { _dCreationTime = Nothing+    , _dEtag = Nothing+    , _dKind = "admin#directory#domainAlias"+    , _dVerified = Nothing+    , _dDomainAliasName = Nothing+    , _dParentDomainName = Nothing+    }++-- | The creation time of the domain alias. (Read-only).+dCreationTime :: Lens' DomainAlias (Maybe Int64)+dCreationTime+  = lens _dCreationTime+      (\ s a -> s{_dCreationTime = a})+      . mapping _Coerce++-- | ETag of the resource.+dEtag :: Lens' DomainAlias (Maybe Text)+dEtag = lens _dEtag (\ s a -> s{_dEtag = a})++-- | Kind of resource this is.+dKind :: Lens' DomainAlias Text+dKind = lens _dKind (\ s a -> s{_dKind = a})++-- | Indicates the verification state of a domain alias. (Read-only)+dVerified :: Lens' DomainAlias (Maybe Bool)+dVerified+  = lens _dVerified (\ s a -> s{_dVerified = a})++-- | The domain alias name.+dDomainAliasName :: Lens' DomainAlias (Maybe Text)+dDomainAliasName+  = lens _dDomainAliasName+      (\ s a -> s{_dDomainAliasName = a})++-- | The parent domain name that the domain alias is associated with. This+-- can either be a primary or secondary domain name within a customer.+dParentDomainName :: Lens' DomainAlias (Maybe Text)+dParentDomainName+  = lens _dParentDomainName+      (\ s a -> s{_dParentDomainName = a})++instance FromJSON DomainAlias where+        parseJSON+          = withObject "DomainAlias"+              (\ o ->+                 DomainAlias <$>+                   (o .:? "creationTime") <*> (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#domainAlias")+                     <*> (o .:? "verified")+                     <*> (o .:? "domainAliasName")+                     <*> (o .:? "parentDomainName"))++instance ToJSON DomainAlias where+        toJSON DomainAlias{..}+          = object+              (catMaybes+                 [("creationTime" .=) <$> _dCreationTime,+                  ("etag" .=) <$> _dEtag, Just ("kind" .= _dKind),+                  ("verified" .=) <$> _dVerified,+                  ("domainAliasName" .=) <$> _dDomainAliasName,+                  ("parentDomainName" .=) <$> _dParentDomainName])++-- | JSON template for Alias object in Directory API.+--+-- /See:/ 'alias' smart constructor.+data Alias = Alias+    { _aaEtag         :: !(Maybe Text)+    , _aaKind         :: !Text+    , _aaAlias        :: !(Maybe Text)+    , _aaId           :: !(Maybe Text)+    , _aaPrimaryEmail :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Alias' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aaEtag'+--+-- * 'aaKind'+--+-- * 'aaAlias'+--+-- * 'aaId'+--+-- * 'aaPrimaryEmail'+alias+    :: Alias+alias =+    Alias+    { _aaEtag = Nothing+    , _aaKind = "admin#directory#alias"+    , _aaAlias = Nothing+    , _aaId = Nothing+    , _aaPrimaryEmail = Nothing+    }++-- | ETag of the resource.+aaEtag :: Lens' Alias (Maybe Text)+aaEtag = lens _aaEtag (\ s a -> s{_aaEtag = a})++-- | Kind of resource this is.+aaKind :: Lens' Alias Text+aaKind = lens _aaKind (\ s a -> s{_aaKind = a})++-- | A alias email+aaAlias :: Lens' Alias (Maybe Text)+aaAlias = lens _aaAlias (\ s a -> s{_aaAlias = a})++-- | Unique id of the group (Read-only) Unique id of the user (Read-only)+aaId :: Lens' Alias (Maybe Text)+aaId = lens _aaId (\ s a -> s{_aaId = a})++-- | Group\'s primary email (Read-only) User\'s primary email (Read-only)+aaPrimaryEmail :: Lens' Alias (Maybe Text)+aaPrimaryEmail+  = lens _aaPrimaryEmail+      (\ s a -> s{_aaPrimaryEmail = a})++instance FromJSON Alias where+        parseJSON+          = withObject "Alias"+              (\ o ->+                 Alias <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#alias")+                     <*> (o .:? "alias")+                     <*> (o .:? "id")+                     <*> (o .:? "primaryEmail"))++instance ToJSON Alias where+        toJSON Alias{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _aaEtag, Just ("kind" .= _aaKind),+                  ("alias" .=) <$> _aaAlias, ("id" .=) <$> _aaId,+                  ("primaryEmail" .=) <$> _aaPrimaryEmail])++-- | JSON template for Schema resource in Directory API.+--+-- /See:/ 'schema' smart constructor.+data Schema = Schema+    { _schEtag       :: !(Maybe Text)+    , _schKind       :: !Text+    , _schSchemaName :: !(Maybe Text)+    , _schSchemaId   :: !(Maybe Text)+    , _schFields     :: !(Maybe [SchemaFieldSpec])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Schema' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'schEtag'+--+-- * 'schKind'+--+-- * 'schSchemaName'+--+-- * 'schSchemaId'+--+-- * 'schFields'+schema+    :: Schema+schema =+    Schema+    { _schEtag = Nothing+    , _schKind = "admin#directory#schema"+    , _schSchemaName = Nothing+    , _schSchemaId = Nothing+    , _schFields = Nothing+    }++-- | ETag of the resource.+schEtag :: Lens' Schema (Maybe Text)+schEtag = lens _schEtag (\ s a -> s{_schEtag = a})++-- | Kind of resource this is.+schKind :: Lens' Schema Text+schKind = lens _schKind (\ s a -> s{_schKind = a})++-- | Schema name+schSchemaName :: Lens' Schema (Maybe Text)+schSchemaName+  = lens _schSchemaName+      (\ s a -> s{_schSchemaName = a})++-- | Unique identifier of Schema (Read-only)+schSchemaId :: Lens' Schema (Maybe Text)+schSchemaId+  = lens _schSchemaId (\ s a -> s{_schSchemaId = a})++-- | Fields of Schema+schFields :: Lens' Schema [SchemaFieldSpec]+schFields+  = lens _schFields (\ s a -> s{_schFields = a}) .+      _Default+      . _Coerce++instance FromJSON Schema where+        parseJSON+          = withObject "Schema"+              (\ o ->+                 Schema <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#schema")+                     <*> (o .:? "schemaName")+                     <*> (o .:? "schemaId")+                     <*> (o .:? "fields" .!= mempty))++instance ToJSON Schema where+        toJSON Schema{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _schEtag, Just ("kind" .= _schKind),+                  ("schemaName" .=) <$> _schSchemaName,+                  ("schemaId" .=) <$> _schSchemaId,+                  ("fields" .=) <$> _schFields])++-- | JSON template for User object in Directory API.+--+-- /See:/ 'user' smart constructor.+data User = User+    { _useCreationTime               :: !(Maybe DateTime')+    , _useLastLoginTime              :: !(Maybe DateTime')+    , _useThumbnailPhotoEtag         :: !(Maybe Text)+    , _useEtag                       :: !(Maybe Text)+    , _useIPWhiteListed              :: !(Maybe Bool)+    , _useRelations                  :: !(Maybe JSONValue)+    , _useHashFunction               :: !(Maybe Text)+    , _useKind                       :: !Text+    , _useChangePasswordAtNextLogin  :: !(Maybe Bool)+    , _useWebsites                   :: !(Maybe JSONValue)+    , _useAddresses                  :: !(Maybe JSONValue)+    , _useAliases                    :: !(Maybe [Text])+    , _useThumbnailPhotoURL          :: !(Maybe Text)+    , _useExternalIds                :: !(Maybe JSONValue)+    , _useSuspended                  :: !(Maybe Bool)+    , _useAgreedToTerms              :: !(Maybe Bool)+    , _useDeletionTime               :: !(Maybe DateTime')+    , _useNonEditableAliases         :: !(Maybe [Text])+    , _useOrgUnitPath                :: !(Maybe Text)+    , _useCustomerId                 :: !(Maybe Text)+    , _useIncludeInGlobalAddressList :: !(Maybe Bool)+    , _usePhones                     :: !(Maybe JSONValue)+    , _useName                       :: !(Maybe UserName)+    , _usePassword                   :: !(Maybe Text)+    , _useEmails                     :: !(Maybe JSONValue)+    , _useIms                        :: !(Maybe JSONValue)+    , _useIsAdmin                    :: !(Maybe Bool)+    , _useId                         :: !(Maybe Text)+    , _useOrganizations              :: !(Maybe JSONValue)+    , _usePrimaryEmail               :: !(Maybe Text)+    , _useNotes                      :: !(Maybe JSONValue)+    , _useIsDelegatedAdmin           :: !(Maybe Bool)+    , _useIsMailboxSetup             :: !(Maybe Bool)+    , _useCustomSchemas              :: !(Maybe UserCustomSchemas)+    , _useSuspensionReason           :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'User' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'useCreationTime'+--+-- * 'useLastLoginTime'+--+-- * 'useThumbnailPhotoEtag'+--+-- * 'useEtag'+--+-- * 'useIPWhiteListed'+--+-- * 'useRelations'+--+-- * 'useHashFunction'+--+-- * 'useKind'+--+-- * 'useChangePasswordAtNextLogin'+--+-- * 'useWebsites'+--+-- * 'useAddresses'+--+-- * 'useAliases'+--+-- * 'useThumbnailPhotoURL'+--+-- * 'useExternalIds'+--+-- * 'useSuspended'+--+-- * 'useAgreedToTerms'+--+-- * 'useDeletionTime'+--+-- * 'useNonEditableAliases'+--+-- * 'useOrgUnitPath'+--+-- * 'useCustomerId'+--+-- * 'useIncludeInGlobalAddressList'+--+-- * 'usePhones'+--+-- * 'useName'+--+-- * 'usePassword'+--+-- * 'useEmails'+--+-- * 'useIms'+--+-- * 'useIsAdmin'+--+-- * 'useId'+--+-- * 'useOrganizations'+--+-- * 'usePrimaryEmail'+--+-- * 'useNotes'+--+-- * 'useIsDelegatedAdmin'+--+-- * 'useIsMailboxSetup'+--+-- * 'useCustomSchemas'+--+-- * 'useSuspensionReason'+user+    :: User+user =+    User+    { _useCreationTime = Nothing+    , _useLastLoginTime = Nothing+    , _useThumbnailPhotoEtag = Nothing+    , _useEtag = Nothing+    , _useIPWhiteListed = Nothing+    , _useRelations = Nothing+    , _useHashFunction = Nothing+    , _useKind = "admin#directory#user"+    , _useChangePasswordAtNextLogin = Nothing+    , _useWebsites = Nothing+    , _useAddresses = Nothing+    , _useAliases = Nothing+    , _useThumbnailPhotoURL = Nothing+    , _useExternalIds = Nothing+    , _useSuspended = Nothing+    , _useAgreedToTerms = Nothing+    , _useDeletionTime = Nothing+    , _useNonEditableAliases = Nothing+    , _useOrgUnitPath = Nothing+    , _useCustomerId = Nothing+    , _useIncludeInGlobalAddressList = Nothing+    , _usePhones = Nothing+    , _useName = Nothing+    , _usePassword = Nothing+    , _useEmails = Nothing+    , _useIms = Nothing+    , _useIsAdmin = Nothing+    , _useId = Nothing+    , _useOrganizations = Nothing+    , _usePrimaryEmail = Nothing+    , _useNotes = Nothing+    , _useIsDelegatedAdmin = Nothing+    , _useIsMailboxSetup = Nothing+    , _useCustomSchemas = Nothing+    , _useSuspensionReason = Nothing+    }++-- | User\'s Google account creation time. (Read-only)+useCreationTime :: Lens' User (Maybe UTCTime)+useCreationTime+  = lens _useCreationTime+      (\ s a -> s{_useCreationTime = a})+      . mapping _DateTime++-- | User\'s last login time. (Read-only)+useLastLoginTime :: Lens' User (Maybe UTCTime)+useLastLoginTime+  = lens _useLastLoginTime+      (\ s a -> s{_useLastLoginTime = a})+      . mapping _DateTime++-- | ETag of the user\'s photo (Read-only)+useThumbnailPhotoEtag :: Lens' User (Maybe Text)+useThumbnailPhotoEtag+  = lens _useThumbnailPhotoEtag+      (\ s a -> s{_useThumbnailPhotoEtag = a})++-- | ETag of the resource.+useEtag :: Lens' User (Maybe Text)+useEtag = lens _useEtag (\ s a -> s{_useEtag = a})++-- | Boolean indicating if ip is whitelisted+useIPWhiteListed :: Lens' User (Maybe Bool)+useIPWhiteListed+  = lens _useIPWhiteListed+      (\ s a -> s{_useIPWhiteListed = a})++useRelations :: Lens' User (Maybe JSONValue)+useRelations+  = lens _useRelations (\ s a -> s{_useRelations = a})++-- | Hash function name for password. Supported are MD5, SHA-1 and crypt+useHashFunction :: Lens' User (Maybe Text)+useHashFunction+  = lens _useHashFunction+      (\ s a -> s{_useHashFunction = a})++-- | Kind of resource this is.+useKind :: Lens' User Text+useKind = lens _useKind (\ s a -> s{_useKind = a})++-- | Boolean indicating if the user should change password in next login+useChangePasswordAtNextLogin :: Lens' User (Maybe Bool)+useChangePasswordAtNextLogin+  = lens _useChangePasswordAtNextLogin+      (\ s a -> s{_useChangePasswordAtNextLogin = a})++useWebsites :: Lens' User (Maybe JSONValue)+useWebsites+  = lens _useWebsites (\ s a -> s{_useWebsites = a})++useAddresses :: Lens' User (Maybe JSONValue)+useAddresses+  = lens _useAddresses (\ s a -> s{_useAddresses = a})++-- | List of aliases (Read-only)+useAliases :: Lens' User [Text]+useAliases+  = lens _useAliases (\ s a -> s{_useAliases = a}) .+      _Default+      . _Coerce++-- | Photo Url of the user (Read-only)+useThumbnailPhotoURL :: Lens' User (Maybe Text)+useThumbnailPhotoURL+  = lens _useThumbnailPhotoURL+      (\ s a -> s{_useThumbnailPhotoURL = a})++useExternalIds :: Lens' User (Maybe JSONValue)+useExternalIds+  = lens _useExternalIds+      (\ s a -> s{_useExternalIds = a})++-- | Indicates if user is suspended+useSuspended :: Lens' User (Maybe Bool)+useSuspended+  = lens _useSuspended (\ s a -> s{_useSuspended = a})++-- | Indicates if user has agreed to terms (Read-only)+useAgreedToTerms :: Lens' User (Maybe Bool)+useAgreedToTerms+  = lens _useAgreedToTerms+      (\ s a -> s{_useAgreedToTerms = a})++useDeletionTime :: Lens' User (Maybe UTCTime)+useDeletionTime+  = lens _useDeletionTime+      (\ s a -> s{_useDeletionTime = a})+      . mapping _DateTime++-- | List of non editable aliases (Read-only)+useNonEditableAliases :: Lens' User [Text]+useNonEditableAliases+  = lens _useNonEditableAliases+      (\ s a -> s{_useNonEditableAliases = a})+      . _Default+      . _Coerce++-- | OrgUnit of User+useOrgUnitPath :: Lens' User (Maybe Text)+useOrgUnitPath+  = lens _useOrgUnitPath+      (\ s a -> s{_useOrgUnitPath = a})++-- | CustomerId of User (Read-only)+useCustomerId :: Lens' User (Maybe Text)+useCustomerId+  = lens _useCustomerId+      (\ s a -> s{_useCustomerId = a})++-- | Boolean indicating if user is included in Global Address List+useIncludeInGlobalAddressList :: Lens' User (Maybe Bool)+useIncludeInGlobalAddressList+  = lens _useIncludeInGlobalAddressList+      (\ s a -> s{_useIncludeInGlobalAddressList = a})++usePhones :: Lens' User (Maybe JSONValue)+usePhones+  = lens _usePhones (\ s a -> s{_usePhones = a})++-- | User\'s name+useName :: Lens' User (Maybe UserName)+useName = lens _useName (\ s a -> s{_useName = a})++-- | User\'s password+usePassword :: Lens' User (Maybe Text)+usePassword+  = lens _usePassword (\ s a -> s{_usePassword = a})++useEmails :: Lens' User (Maybe JSONValue)+useEmails+  = lens _useEmails (\ s a -> s{_useEmails = a})++useIms :: Lens' User (Maybe JSONValue)+useIms = lens _useIms (\ s a -> s{_useIms = a})++-- | Boolean indicating if the user is admin (Read-only)+useIsAdmin :: Lens' User (Maybe Bool)+useIsAdmin+  = lens _useIsAdmin (\ s a -> s{_useIsAdmin = a})++-- | Unique identifier of User (Read-only)+useId :: Lens' User (Maybe Text)+useId = lens _useId (\ s a -> s{_useId = a})++useOrganizations :: Lens' User (Maybe JSONValue)+useOrganizations+  = lens _useOrganizations+      (\ s a -> s{_useOrganizations = a})++-- | username of User+usePrimaryEmail :: Lens' User (Maybe Text)+usePrimaryEmail+  = lens _usePrimaryEmail+      (\ s a -> s{_usePrimaryEmail = a})++useNotes :: Lens' User (Maybe JSONValue)+useNotes = lens _useNotes (\ s a -> s{_useNotes = a})++-- | Boolean indicating if the user is delegated admin (Read-only)+useIsDelegatedAdmin :: Lens' User (Maybe Bool)+useIsDelegatedAdmin+  = lens _useIsDelegatedAdmin+      (\ s a -> s{_useIsDelegatedAdmin = a})++-- | Is mailbox setup (Read-only)+useIsMailboxSetup :: Lens' User (Maybe Bool)+useIsMailboxSetup+  = lens _useIsMailboxSetup+      (\ s a -> s{_useIsMailboxSetup = a})++-- | Custom fields of the user.+useCustomSchemas :: Lens' User (Maybe UserCustomSchemas)+useCustomSchemas+  = lens _useCustomSchemas+      (\ s a -> s{_useCustomSchemas = a})++-- | Suspension reason if user is suspended (Read-only)+useSuspensionReason :: Lens' User (Maybe Text)+useSuspensionReason+  = lens _useSuspensionReason+      (\ s a -> s{_useSuspensionReason = a})++instance FromJSON User where+        parseJSON+          = withObject "User"+              (\ o ->+                 User <$>+                   (o .:? "creationTime") <*> (o .:? "lastLoginTime")+                     <*> (o .:? "thumbnailPhotoEtag")+                     <*> (o .:? "etag")+                     <*> (o .:? "ipWhitelisted")+                     <*> (o .:? "relations")+                     <*> (o .:? "hashFunction")+                     <*> (o .:? "kind" .!= "admin#directory#user")+                     <*> (o .:? "changePasswordAtNextLogin")+                     <*> (o .:? "websites")+                     <*> (o .:? "addresses")+                     <*> (o .:? "aliases" .!= mempty)+                     <*> (o .:? "thumbnailPhotoUrl")+                     <*> (o .:? "externalIds")+                     <*> (o .:? "suspended")+                     <*> (o .:? "agreedToTerms")+                     <*> (o .:? "deletionTime")+                     <*> (o .:? "nonEditableAliases" .!= mempty)+                     <*> (o .:? "orgUnitPath")+                     <*> (o .:? "customerId")+                     <*> (o .:? "includeInGlobalAddressList")+                     <*> (o .:? "phones")+                     <*> (o .:? "name")+                     <*> (o .:? "password")+                     <*> (o .:? "emails")+                     <*> (o .:? "ims")+                     <*> (o .:? "isAdmin")+                     <*> (o .:? "id")+                     <*> (o .:? "organizations")+                     <*> (o .:? "primaryEmail")+                     <*> (o .:? "notes")+                     <*> (o .:? "isDelegatedAdmin")+                     <*> (o .:? "isMailboxSetup")+                     <*> (o .:? "customSchemas")+                     <*> (o .:? "suspensionReason"))++instance ToJSON User where+        toJSON User{..}+          = object+              (catMaybes+                 [("creationTime" .=) <$> _useCreationTime,+                  ("lastLoginTime" .=) <$> _useLastLoginTime,+                  ("thumbnailPhotoEtag" .=) <$> _useThumbnailPhotoEtag,+                  ("etag" .=) <$> _useEtag,+                  ("ipWhitelisted" .=) <$> _useIPWhiteListed,+                  ("relations" .=) <$> _useRelations,+                  ("hashFunction" .=) <$> _useHashFunction,+                  Just ("kind" .= _useKind),+                  ("changePasswordAtNextLogin" .=) <$>+                    _useChangePasswordAtNextLogin,+                  ("websites" .=) <$> _useWebsites,+                  ("addresses" .=) <$> _useAddresses,+                  ("aliases" .=) <$> _useAliases,+                  ("thumbnailPhotoUrl" .=) <$> _useThumbnailPhotoURL,+                  ("externalIds" .=) <$> _useExternalIds,+                  ("suspended" .=) <$> _useSuspended,+                  ("agreedToTerms" .=) <$> _useAgreedToTerms,+                  ("deletionTime" .=) <$> _useDeletionTime,+                  ("nonEditableAliases" .=) <$> _useNonEditableAliases,+                  ("orgUnitPath" .=) <$> _useOrgUnitPath,+                  ("customerId" .=) <$> _useCustomerId,+                  ("includeInGlobalAddressList" .=) <$>+                    _useIncludeInGlobalAddressList,+                  ("phones" .=) <$> _usePhones,+                  ("name" .=) <$> _useName,+                  ("password" .=) <$> _usePassword,+                  ("emails" .=) <$> _useEmails, ("ims" .=) <$> _useIms,+                  ("isAdmin" .=) <$> _useIsAdmin, ("id" .=) <$> _useId,+                  ("organizations" .=) <$> _useOrganizations,+                  ("primaryEmail" .=) <$> _usePrimaryEmail,+                  ("notes" .=) <$> _useNotes,+                  ("isDelegatedAdmin" .=) <$> _useIsDelegatedAdmin,+                  ("isMailboxSetup" .=) <$> _useIsMailboxSetup,+                  ("customSchemas" .=) <$> _useCustomSchemas,+                  ("suspensionReason" .=) <$> _useSuspensionReason])++-- | JSON template for role resource in Directory API.+--+-- /See:/ 'role' smart constructor.+data Role = Role+    { _rrEtag             :: !(Maybe Text)+    , _rrKind             :: !Text+    , _rrRoleName         :: !(Maybe Text)+    , _rrIsSystemRole     :: !(Maybe Bool)+    , _rrRoleId           :: !(Maybe (Textual Int64))+    , _rrRoleDescription  :: !(Maybe Text)+    , _rrIsSuperAdminRole :: !(Maybe Bool)+    , _rrRolePrivileges   :: !(Maybe [RoleRolePrivilegesItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Role' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rrEtag'+--+-- * 'rrKind'+--+-- * 'rrRoleName'+--+-- * 'rrIsSystemRole'+--+-- * 'rrRoleId'+--+-- * 'rrRoleDescription'+--+-- * 'rrIsSuperAdminRole'+--+-- * 'rrRolePrivileges'+role+    :: Role+role =+    Role+    { _rrEtag = Nothing+    , _rrKind = "admin#directory#role"+    , _rrRoleName = Nothing+    , _rrIsSystemRole = Nothing+    , _rrRoleId = Nothing+    , _rrRoleDescription = Nothing+    , _rrIsSuperAdminRole = Nothing+    , _rrRolePrivileges = Nothing+    }++-- | ETag of the resource.+rrEtag :: Lens' Role (Maybe Text)+rrEtag = lens _rrEtag (\ s a -> s{_rrEtag = a})++-- | The type of the API resource. This is always admin#directory#role.+rrKind :: Lens' Role Text+rrKind = lens _rrKind (\ s a -> s{_rrKind = a})++-- | Name of the role.+rrRoleName :: Lens' Role (Maybe Text)+rrRoleName+  = lens _rrRoleName (\ s a -> s{_rrRoleName = a})++-- | Returns true if this is a pre-defined system role.+rrIsSystemRole :: Lens' Role (Maybe Bool)+rrIsSystemRole+  = lens _rrIsSystemRole+      (\ s a -> s{_rrIsSystemRole = a})++-- | ID of the role.+rrRoleId :: Lens' Role (Maybe Int64)+rrRoleId+  = lens _rrRoleId (\ s a -> s{_rrRoleId = a}) .+      mapping _Coerce++-- | A short description of the role.+rrRoleDescription :: Lens' Role (Maybe Text)+rrRoleDescription+  = lens _rrRoleDescription+      (\ s a -> s{_rrRoleDescription = a})++-- | Returns true if the role is a super admin role.+rrIsSuperAdminRole :: Lens' Role (Maybe Bool)+rrIsSuperAdminRole+  = lens _rrIsSuperAdminRole+      (\ s a -> s{_rrIsSuperAdminRole = a})++-- | The set of privileges that are granted to this role.+rrRolePrivileges :: Lens' Role [RoleRolePrivilegesItem]+rrRolePrivileges+  = lens _rrRolePrivileges+      (\ s a -> s{_rrRolePrivileges = a})+      . _Default+      . _Coerce++instance FromJSON Role where+        parseJSON+          = withObject "Role"+              (\ o ->+                 Role <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#role")+                     <*> (o .:? "roleName")+                     <*> (o .:? "isSystemRole")+                     <*> (o .:? "roleId")+                     <*> (o .:? "roleDescription")+                     <*> (o .:? "isSuperAdminRole")+                     <*> (o .:? "rolePrivileges" .!= mempty))++instance ToJSON Role where+        toJSON Role{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _rrEtag, Just ("kind" .= _rrKind),+                  ("roleName" .=) <$> _rrRoleName,+                  ("isSystemRole" .=) <$> _rrIsSystemRole,+                  ("roleId" .=) <$> _rrRoleId,+                  ("roleDescription" .=) <$> _rrRoleDescription,+                  ("isSuperAdminRole" .=) <$> _rrIsSuperAdminRole,+                  ("rolePrivileges" .=) <$> _rrRolePrivileges])++-- | JSON template for Customer Resource object in Directory API.+--+-- /See:/ 'customer' smart constructor.+data Customer = Customer+    { _cusEtag                 :: !(Maybe Text)+    , _cusKind                 :: !Text+    , _cusAlternateEmail       :: !(Maybe Text)+    , _cusCustomerDomain       :: !(Maybe Text)+    , _cusPhoneNumber          :: !(Maybe Text)+    , _cusLanguage             :: !(Maybe Text)+    , _cusId                   :: !(Maybe Text)+    , _cusCustomerCreationTime :: !(Maybe DateTime')+    , _cusPostalAddress        :: !(Maybe CustomerPostalAddress)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Customer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cusEtag'+--+-- * 'cusKind'+--+-- * 'cusAlternateEmail'+--+-- * 'cusCustomerDomain'+--+-- * 'cusPhoneNumber'+--+-- * 'cusLanguage'+--+-- * 'cusId'+--+-- * 'cusCustomerCreationTime'+--+-- * 'cusPostalAddress'+customer+    :: Customer+customer =+    Customer+    { _cusEtag = Nothing+    , _cusKind = "admin#directory#customer"+    , _cusAlternateEmail = Nothing+    , _cusCustomerDomain = Nothing+    , _cusPhoneNumber = Nothing+    , _cusLanguage = Nothing+    , _cusId = Nothing+    , _cusCustomerCreationTime = Nothing+    , _cusPostalAddress = Nothing+    }++-- | ETag of the resource.+cusEtag :: Lens' Customer (Maybe Text)+cusEtag = lens _cusEtag (\ s a -> s{_cusEtag = a})++-- | Identifies the resource as a customer. Value: admin#directory#customer+cusKind :: Lens' Customer Text+cusKind = lens _cusKind (\ s a -> s{_cusKind = a})++-- | The customer\'s secondary contact email address. This email address+-- cannot be on the same domain as the customerDomain+cusAlternateEmail :: Lens' Customer (Maybe Text)+cusAlternateEmail+  = lens _cusAlternateEmail+      (\ s a -> s{_cusAlternateEmail = a})++-- | The customer\'s primary domain name string. Do not include the www+-- prefix when creating a new customer.+cusCustomerDomain :: Lens' Customer (Maybe Text)+cusCustomerDomain+  = lens _cusCustomerDomain+      (\ s a -> s{_cusCustomerDomain = a})++-- | The customer\'s contact phone number in E.164 format.+cusPhoneNumber :: Lens' Customer (Maybe Text)+cusPhoneNumber+  = lens _cusPhoneNumber+      (\ s a -> s{_cusPhoneNumber = a})++-- | The customer\'s ISO 639-2 language code. The default value is en-US+cusLanguage :: Lens' Customer (Maybe Text)+cusLanguage+  = lens _cusLanguage (\ s a -> s{_cusLanguage = a})++-- | The unique ID for the customer\'s Google account. (Readonly)+cusId :: Lens' Customer (Maybe Text)+cusId = lens _cusId (\ s a -> s{_cusId = a})++-- | The customer\'s creation time (Readonly)+cusCustomerCreationTime :: Lens' Customer (Maybe UTCTime)+cusCustomerCreationTime+  = lens _cusCustomerCreationTime+      (\ s a -> s{_cusCustomerCreationTime = a})+      . mapping _DateTime++-- | The customer\'s postal address information.+cusPostalAddress :: Lens' Customer (Maybe CustomerPostalAddress)+cusPostalAddress+  = lens _cusPostalAddress+      (\ s a -> s{_cusPostalAddress = a})++instance FromJSON Customer where+        parseJSON+          = withObject "Customer"+              (\ o ->+                 Customer <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#customer")+                     <*> (o .:? "alternateEmail")+                     <*> (o .:? "customerDomain")+                     <*> (o .:? "phoneNumber")+                     <*> (o .:? "language")+                     <*> (o .:? "id")+                     <*> (o .:? "customerCreationTime")+                     <*> (o .:? "postalAddress"))++instance ToJSON Customer where+        toJSON Customer{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _cusEtag, Just ("kind" .= _cusKind),+                  ("alternateEmail" .=) <$> _cusAlternateEmail,+                  ("customerDomain" .=) <$> _cusCustomerDomain,+                  ("phoneNumber" .=) <$> _cusPhoneNumber,+                  ("language" .=) <$> _cusLanguage,+                  ("id" .=) <$> _cusId,+                  ("customerCreationTime" .=) <$>+                    _cusCustomerCreationTime,+                  ("postalAddress" .=) <$> _cusPostalAddress])++--+-- /See:/ 'mobileDeviceApplicationsItem' smart constructor.+data MobileDeviceApplicationsItem = MobileDeviceApplicationsItem+    { _mdaiVersionCode :: !(Maybe (Textual Int32))+    , _mdaiVersionName :: !(Maybe Text)+    , _mdaiPackageName :: !(Maybe Text)+    , _mdaiDisplayName :: !(Maybe Text)+    , _mdaiPermission  :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MobileDeviceApplicationsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdaiVersionCode'+--+-- * 'mdaiVersionName'+--+-- * 'mdaiPackageName'+--+-- * 'mdaiDisplayName'+--+-- * 'mdaiPermission'+mobileDeviceApplicationsItem+    :: MobileDeviceApplicationsItem+mobileDeviceApplicationsItem =+    MobileDeviceApplicationsItem+    { _mdaiVersionCode = Nothing+    , _mdaiVersionName = Nothing+    , _mdaiPackageName = Nothing+    , _mdaiDisplayName = Nothing+    , _mdaiPermission = Nothing+    }++-- | Version code of application+mdaiVersionCode :: Lens' MobileDeviceApplicationsItem (Maybe Int32)+mdaiVersionCode+  = lens _mdaiVersionCode+      (\ s a -> s{_mdaiVersionCode = a})+      . mapping _Coerce++-- | Version name of application+mdaiVersionName :: Lens' MobileDeviceApplicationsItem (Maybe Text)+mdaiVersionName+  = lens _mdaiVersionName+      (\ s a -> s{_mdaiVersionName = a})++-- | Package name of application+mdaiPackageName :: Lens' MobileDeviceApplicationsItem (Maybe Text)+mdaiPackageName+  = lens _mdaiPackageName+      (\ s a -> s{_mdaiPackageName = a})++-- | Display name of application+mdaiDisplayName :: Lens' MobileDeviceApplicationsItem (Maybe Text)+mdaiDisplayName+  = lens _mdaiDisplayName+      (\ s a -> s{_mdaiDisplayName = a})++-- | List of Permissions for application+mdaiPermission :: Lens' MobileDeviceApplicationsItem [Text]+mdaiPermission+  = lens _mdaiPermission+      (\ s a -> s{_mdaiPermission = a})+      . _Default+      . _Coerce++instance FromJSON MobileDeviceApplicationsItem where+        parseJSON+          = withObject "MobileDeviceApplicationsItem"+              (\ o ->+                 MobileDeviceApplicationsItem <$>+                   (o .:? "versionCode") <*> (o .:? "versionName") <*>+                     (o .:? "packageName")+                     <*> (o .:? "displayName")+                     <*> (o .:? "permission" .!= mempty))++instance ToJSON MobileDeviceApplicationsItem where+        toJSON MobileDeviceApplicationsItem{..}+          = object+              (catMaybes+                 [("versionCode" .=) <$> _mdaiVersionCode,+                  ("versionName" .=) <$> _mdaiVersionName,+                  ("packageName" .=) <$> _mdaiPackageName,+                  ("displayName" .=) <$> _mdaiDisplayName,+                  ("permission" .=) <$> _mdaiPermission])++-- | JSON response template for List Organization Units operation in+-- Directory API.+--+-- /See:/ 'orgUnits' smart constructor.+data OrgUnits = OrgUnits+    { _oEtag              :: !(Maybe Text)+    , _oKind              :: !Text+    , _oOrganizationUnits :: !(Maybe [OrgUnit])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OrgUnits' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oEtag'+--+-- * 'oKind'+--+-- * 'oOrganizationUnits'+orgUnits+    :: OrgUnits+orgUnits =+    OrgUnits+    { _oEtag = Nothing+    , _oKind = "admin#directory#orgUnits"+    , _oOrganizationUnits = Nothing+    }++-- | ETag of the resource.+oEtag :: Lens' OrgUnits (Maybe Text)+oEtag = lens _oEtag (\ s a -> s{_oEtag = a})++-- | Kind of resource this is.+oKind :: Lens' OrgUnits Text+oKind = lens _oKind (\ s a -> s{_oKind = a})++-- | List of user objects.+oOrganizationUnits :: Lens' OrgUnits [OrgUnit]+oOrganizationUnits+  = lens _oOrganizationUnits+      (\ s a -> s{_oOrganizationUnits = a})+      . _Default+      . _Coerce++instance FromJSON OrgUnits where+        parseJSON+          = withObject "OrgUnits"+              (\ o ->+                 OrgUnits <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#orgUnits")+                     <*> (o .:? "organizationUnits" .!= mempty))++instance ToJSON OrgUnits where+        toJSON OrgUnits{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _oEtag, Just ("kind" .= _oKind),+                  ("organizationUnits" .=) <$> _oOrganizationUnits])++-- | JSON response template for List verification codes operation in+-- Directory API.+--+-- /See:/ 'verificationCodes' smart constructor.+data VerificationCodes = VerificationCodes+    { _vEtag  :: !(Maybe Text)+    , _vKind  :: !Text+    , _vItems :: !(Maybe [VerificationCode])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VerificationCodes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vEtag'+--+-- * 'vKind'+--+-- * 'vItems'+verificationCodes+    :: VerificationCodes+verificationCodes =+    VerificationCodes+    { _vEtag = Nothing+    , _vKind = "admin#directory#verificationCodesList"+    , _vItems = Nothing+    }++-- | ETag of the resource.+vEtag :: Lens' VerificationCodes (Maybe Text)+vEtag = lens _vEtag (\ s a -> s{_vEtag = a})++-- | The type of the resource. This is always+-- admin#directory#verificationCodesList.+vKind :: Lens' VerificationCodes Text+vKind = lens _vKind (\ s a -> s{_vKind = a})++-- | A list of verification code resources.+vItems :: Lens' VerificationCodes [VerificationCode]+vItems+  = lens _vItems (\ s a -> s{_vItems = a}) . _Default .+      _Coerce++instance FromJSON VerificationCodes where+        parseJSON+          = withObject "VerificationCodes"+              (\ o ->+                 VerificationCodes <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!=+                        "admin#directory#verificationCodesList")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON VerificationCodes where+        toJSON VerificationCodes{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _vEtag, Just ("kind" .= _vKind),+                  ("items" .=) <$> _vItems])++-- | JSON template for a relation entry.+--+-- /See:/ 'userRelation' smart constructor.+data UserRelation = UserRelation+    { _urValue      :: !(Maybe Text)+    , _urType       :: !(Maybe Text)+    , _urCustomType :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserRelation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'urValue'+--+-- * 'urType'+--+-- * 'urCustomType'+userRelation+    :: UserRelation+userRelation =+    UserRelation+    { _urValue = Nothing+    , _urType = Nothing+    , _urCustomType = Nothing+    }++-- | The name of the relation.+urValue :: Lens' UserRelation (Maybe Text)+urValue = lens _urValue (\ s a -> s{_urValue = a})++-- | The relation of the user. Some of the possible values are mother,+-- father, sister, brother, manager, assistant, partner.+urType :: Lens' UserRelation (Maybe Text)+urType = lens _urType (\ s a -> s{_urType = a})++-- | Custom Type.+urCustomType :: Lens' UserRelation (Maybe Text)+urCustomType+  = lens _urCustomType (\ s a -> s{_urCustomType = a})++instance FromJSON UserRelation where+        parseJSON+          = withObject "UserRelation"+              (\ o ->+                 UserRelation <$>+                   (o .:? "value") <*> (o .:? "type") <*>+                     (o .:? "customType"))++instance ToJSON UserRelation where+        toJSON UserRelation{..}+          = object+              (catMaybes+                 [("value" .=) <$> _urValue, ("type" .=) <$> _urType,+                  ("customType" .=) <$> _urCustomType])++-- | Additional parameters controlling delivery channel behavior. Optional.+--+-- /See:/ 'channelParams' smart constructor.+newtype ChannelParams = ChannelParams+    { _cpAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChannelParams' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpAddtional'+channelParams+    :: HashMap Text Text -- ^ 'cpAddtional'+    -> ChannelParams+channelParams pCpAddtional_ =+    ChannelParams+    { _cpAddtional = _Coerce # pCpAddtional_+    }++-- | Declares a new parameter by name.+cpAddtional :: Lens' ChannelParams (HashMap Text Text)+cpAddtional+  = lens _cpAddtional (\ s a -> s{_cpAddtional = a}) .+      _Coerce++instance FromJSON ChannelParams where+        parseJSON+          = withObject "ChannelParams"+              (\ o -> ChannelParams <$> (parseJSONObject o))++instance ToJSON ChannelParams where+        toJSON = toJSON . _cpAddtional++-- | JSON template for an organization entry.+--+-- /See:/ 'userOrganization' smart constructor.+data UserOrganization = UserOrganization+    { _uoDePartment  :: !(Maybe Text)+    , _uoLocation    :: !(Maybe Text)+    , _uoCostCenter  :: !(Maybe Text)+    , _uoDomain      :: !(Maybe Text)+    , _uoSymbol      :: !(Maybe Text)+    , _uoPrimary     :: !(Maybe Bool)+    , _uoName        :: !(Maybe Text)+    , _uoTitle       :: !(Maybe Text)+    , _uoType        :: !(Maybe Text)+    , _uoCustomType  :: !(Maybe Text)+    , _uoDescription :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserOrganization' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uoDePartment'+--+-- * 'uoLocation'+--+-- * 'uoCostCenter'+--+-- * 'uoDomain'+--+-- * 'uoSymbol'+--+-- * 'uoPrimary'+--+-- * 'uoName'+--+-- * 'uoTitle'+--+-- * 'uoType'+--+-- * 'uoCustomType'+--+-- * 'uoDescription'+userOrganization+    :: UserOrganization+userOrganization =+    UserOrganization+    { _uoDePartment = Nothing+    , _uoLocation = Nothing+    , _uoCostCenter = Nothing+    , _uoDomain = Nothing+    , _uoSymbol = Nothing+    , _uoPrimary = Nothing+    , _uoName = Nothing+    , _uoTitle = Nothing+    , _uoType = Nothing+    , _uoCustomType = Nothing+    , _uoDescription = Nothing+    }++-- | Department within the organization.+uoDePartment :: Lens' UserOrganization (Maybe Text)+uoDePartment+  = lens _uoDePartment (\ s a -> s{_uoDePartment = a})++-- | Location of the organization. This need not be fully qualified address.+uoLocation :: Lens' UserOrganization (Maybe Text)+uoLocation+  = lens _uoLocation (\ s a -> s{_uoLocation = a})++-- | The cost center of the users department.+uoCostCenter :: Lens' UserOrganization (Maybe Text)+uoCostCenter+  = lens _uoCostCenter (\ s a -> s{_uoCostCenter = a})++-- | The domain to which the organization belongs to.+uoDomain :: Lens' UserOrganization (Maybe Text)+uoDomain = lens _uoDomain (\ s a -> s{_uoDomain = a})++-- | Symbol of the organization.+uoSymbol :: Lens' UserOrganization (Maybe Text)+uoSymbol = lens _uoSymbol (\ s a -> s{_uoSymbol = a})++-- | If it user\'s primary organization.+uoPrimary :: Lens' UserOrganization (Maybe Bool)+uoPrimary+  = lens _uoPrimary (\ s a -> s{_uoPrimary = a})++-- | Name of the organization+uoName :: Lens' UserOrganization (Maybe Text)+uoName = lens _uoName (\ s a -> s{_uoName = a})++-- | Title (designation) of the user in the organization.+uoTitle :: Lens' UserOrganization (Maybe Text)+uoTitle = lens _uoTitle (\ s a -> s{_uoTitle = a})++-- | Each entry can have a type which indicates standard types of that entry.+-- For example organization could be of school, work etc. In addition to+-- the standard type, an entry can have a custom type and can give it any+-- name. Such types should have the CUSTOM value as type and also have a+-- CustomType value.+uoType :: Lens' UserOrganization (Maybe Text)+uoType = lens _uoType (\ s a -> s{_uoType = a})++-- | Custom type.+uoCustomType :: Lens' UserOrganization (Maybe Text)+uoCustomType+  = lens _uoCustomType (\ s a -> s{_uoCustomType = a})++-- | Description of the organization.+uoDescription :: Lens' UserOrganization (Maybe Text)+uoDescription+  = lens _uoDescription+      (\ s a -> s{_uoDescription = a})++instance FromJSON UserOrganization where+        parseJSON+          = withObject "UserOrganization"+              (\ o ->+                 UserOrganization <$>+                   (o .:? "department") <*> (o .:? "location") <*>+                     (o .:? "costCenter")+                     <*> (o .:? "domain")+                     <*> (o .:? "symbol")+                     <*> (o .:? "primary")+                     <*> (o .:? "name")+                     <*> (o .:? "title")+                     <*> (o .:? "type")+                     <*> (o .:? "customType")+                     <*> (o .:? "description"))++instance ToJSON UserOrganization where+        toJSON UserOrganization{..}+          = object+              (catMaybes+                 [("department" .=) <$> _uoDePartment,+                  ("location" .=) <$> _uoLocation,+                  ("costCenter" .=) <$> _uoCostCenter,+                  ("domain" .=) <$> _uoDomain,+                  ("symbol" .=) <$> _uoSymbol,+                  ("primary" .=) <$> _uoPrimary,+                  ("name" .=) <$> _uoName, ("title" .=) <$> _uoTitle,+                  ("type" .=) <$> _uoType,+                  ("customType" .=) <$> _uoCustomType,+                  ("description" .=) <$> _uoDescription])++-- | JSON template for a website entry.+--+-- /See:/ 'userWebsite' smart constructor.+data UserWebsite = UserWebsite+    { _uwValue      :: !(Maybe Text)+    , _uwPrimary    :: !(Maybe Bool)+    , _uwType       :: !(Maybe Text)+    , _uwCustomType :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserWebsite' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uwValue'+--+-- * 'uwPrimary'+--+-- * 'uwType'+--+-- * 'uwCustomType'+userWebsite+    :: UserWebsite+userWebsite =+    UserWebsite+    { _uwValue = Nothing+    , _uwPrimary = Nothing+    , _uwType = Nothing+    , _uwCustomType = Nothing+    }++-- | Website.+uwValue :: Lens' UserWebsite (Maybe Text)+uwValue = lens _uwValue (\ s a -> s{_uwValue = a})++-- | If this is user\'s primary website or not.+uwPrimary :: Lens' UserWebsite (Maybe Bool)+uwPrimary+  = lens _uwPrimary (\ s a -> s{_uwPrimary = a})++-- | Each entry can have a type which indicates standard types of that entry.+-- For example website could be of home, work, blog etc. In addition to the+-- standard type, an entry can have a custom type and can give it any name.+-- Such types should have the CUSTOM value as type and also have a+-- customType value.+uwType :: Lens' UserWebsite (Maybe Text)+uwType = lens _uwType (\ s a -> s{_uwType = a})++-- | Custom Type.+uwCustomType :: Lens' UserWebsite (Maybe Text)+uwCustomType+  = lens _uwCustomType (\ s a -> s{_uwCustomType = a})++instance FromJSON UserWebsite where+        parseJSON+          = withObject "UserWebsite"+              (\ o ->+                 UserWebsite <$>+                   (o .:? "value") <*> (o .:? "primary") <*>+                     (o .:? "type")+                     <*> (o .:? "customType"))++instance ToJSON UserWebsite where+        toJSON UserWebsite{..}+          = object+              (catMaybes+                 [("value" .=) <$> _uwValue,+                  ("primary" .=) <$> _uwPrimary,+                  ("type" .=) <$> _uwType,+                  ("customType" .=) <$> _uwCustomType])++--+-- /See:/ 'chromeOSDeviceActiveTimeRangesItem' smart constructor.+data ChromeOSDeviceActiveTimeRangesItem = ChromeOSDeviceActiveTimeRangesItem+    { _codatriDate       :: !(Maybe Date')+    , _codatriActiveTime :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChromeOSDeviceActiveTimeRangesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'codatriDate'+--+-- * 'codatriActiveTime'+chromeOSDeviceActiveTimeRangesItem+    :: ChromeOSDeviceActiveTimeRangesItem+chromeOSDeviceActiveTimeRangesItem =+    ChromeOSDeviceActiveTimeRangesItem+    { _codatriDate = Nothing+    , _codatriActiveTime = Nothing+    }++-- | Date of usage+codatriDate :: Lens' ChromeOSDeviceActiveTimeRangesItem (Maybe Day)+codatriDate+  = lens _codatriDate (\ s a -> s{_codatriDate = a}) .+      mapping _Date++-- | Duration in milliseconds+codatriActiveTime :: Lens' ChromeOSDeviceActiveTimeRangesItem (Maybe Int32)+codatriActiveTime+  = lens _codatriActiveTime+      (\ s a -> s{_codatriActiveTime = a})+      . mapping _Coerce++instance FromJSON ChromeOSDeviceActiveTimeRangesItem+         where+        parseJSON+          = withObject "ChromeOSDeviceActiveTimeRangesItem"+              (\ o ->+                 ChromeOSDeviceActiveTimeRangesItem <$>+                   (o .:? "date") <*> (o .:? "activeTime"))++instance ToJSON ChromeOSDeviceActiveTimeRangesItem+         where+        toJSON ChromeOSDeviceActiveTimeRangesItem{..}+          = object+              (catMaybes+                 [("date" .=) <$> _codatriDate,+                  ("activeTime" .=) <$> _codatriActiveTime])++-- | JSON template for an email.+--+-- /See:/ 'userEmail' smart constructor.+data UserEmail = UserEmail+    { _ueAddress    :: !(Maybe Text)+    , _uePrimary    :: !(Maybe Bool)+    , _ueType       :: !(Maybe Text)+    , _ueCustomType :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserEmail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ueAddress'+--+-- * 'uePrimary'+--+-- * 'ueType'+--+-- * 'ueCustomType'+userEmail+    :: UserEmail+userEmail =+    UserEmail+    { _ueAddress = Nothing+    , _uePrimary = Nothing+    , _ueType = Nothing+    , _ueCustomType = Nothing+    }++-- | Email id of the user.+ueAddress :: Lens' UserEmail (Maybe Text)+ueAddress+  = lens _ueAddress (\ s a -> s{_ueAddress = a})++-- | If this is user\'s primary email. Only one entry could be marked as+-- primary.+uePrimary :: Lens' UserEmail (Maybe Bool)+uePrimary+  = lens _uePrimary (\ s a -> s{_uePrimary = a})++-- | Each entry can have a type which indicates standard types of that entry.+-- For example email could be of home, work etc. In addition to the+-- standard type, an entry can have a custom type and can take any value+-- Such types should have the CUSTOM value as type and also have a+-- customType value.+ueType :: Lens' UserEmail (Maybe Text)+ueType = lens _ueType (\ s a -> s{_ueType = a})++-- | Custom Type.+ueCustomType :: Lens' UserEmail (Maybe Text)+ueCustomType+  = lens _ueCustomType (\ s a -> s{_ueCustomType = a})++instance FromJSON UserEmail where+        parseJSON+          = withObject "UserEmail"+              (\ o ->+                 UserEmail <$>+                   (o .:? "address") <*> (o .:? "primary") <*>+                     (o .:? "type")+                     <*> (o .:? "customType"))++instance ToJSON UserEmail where+        toJSON UserEmail{..}+          = object+              (catMaybes+                 [("address" .=) <$> _ueAddress,+                  ("primary" .=) <$> _uePrimary,+                  ("type" .=) <$> _ueType,+                  ("customType" .=) <$> _ueCustomType])++-- | JSON template for a phone entry.+--+-- /See:/ 'userPhone' smart constructor.+data UserPhone = UserPhone+    { _upValue      :: !(Maybe Text)+    , _upPrimary    :: !(Maybe Bool)+    , _upType       :: !(Maybe Text)+    , _upCustomType :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserPhone' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upValue'+--+-- * 'upPrimary'+--+-- * 'upType'+--+-- * 'upCustomType'+userPhone+    :: UserPhone+userPhone =+    UserPhone+    { _upValue = Nothing+    , _upPrimary = Nothing+    , _upType = Nothing+    , _upCustomType = Nothing+    }++-- | Phone number.+upValue :: Lens' UserPhone (Maybe Text)+upValue = lens _upValue (\ s a -> s{_upValue = a})++-- | If this is user\'s primary phone or not.+upPrimary :: Lens' UserPhone (Maybe Bool)+upPrimary+  = lens _upPrimary (\ s a -> s{_upPrimary = a})++-- | Each entry can have a type which indicates standard types of that entry.+-- For example phone could be of home_fax, work, mobile etc. In addition to+-- the standard type, an entry can have a custom type and can give it any+-- name. Such types should have the CUSTOM value as type and also have a+-- customType value.+upType :: Lens' UserPhone (Maybe Text)+upType = lens _upType (\ s a -> s{_upType = a})++-- | Custom Type.+upCustomType :: Lens' UserPhone (Maybe Text)+upCustomType+  = lens _upCustomType (\ s a -> s{_upCustomType = a})++instance FromJSON UserPhone where+        parseJSON+          = withObject "UserPhone"+              (\ o ->+                 UserPhone <$>+                   (o .:? "value") <*> (o .:? "primary") <*>+                     (o .:? "type")+                     <*> (o .:? "customType"))++instance ToJSON UserPhone where+        toJSON UserPhone{..}+          = object+              (catMaybes+                 [("value" .=) <$> _upValue,+                  ("primary" .=) <$> _upPrimary,+                  ("type" .=) <$> _upType,+                  ("customType" .=) <$> _upCustomType])++-- | JSON template for Photo object in Directory API.+--+-- /See:/ 'userPhoto' smart constructor.+data UserPhoto = UserPhoto+    { _upPhotoData    :: !(Maybe (Textual Word8))+    , _upEtag         :: !(Maybe Text)+    , _upHeight       :: !(Maybe (Textual Int32))+    , _upKind         :: !Text+    , _upWidth        :: !(Maybe (Textual Int32))+    , _upMimeType     :: !(Maybe Text)+    , _upId           :: !(Maybe Text)+    , _upPrimaryEmail :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserPhoto' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upPhotoData'+--+-- * 'upEtag'+--+-- * 'upHeight'+--+-- * 'upKind'+--+-- * 'upWidth'+--+-- * 'upMimeType'+--+-- * 'upId'+--+-- * 'upPrimaryEmail'+userPhoto+    :: UserPhoto+userPhoto =+    UserPhoto+    { _upPhotoData = Nothing+    , _upEtag = Nothing+    , _upHeight = Nothing+    , _upKind = "admin#directory#user#photo"+    , _upWidth = Nothing+    , _upMimeType = Nothing+    , _upId = Nothing+    , _upPrimaryEmail = Nothing+    }++-- | Base64 encoded photo data+upPhotoData :: Lens' UserPhoto (Maybe Word8)+upPhotoData+  = lens _upPhotoData (\ s a -> s{_upPhotoData = a}) .+      mapping _Coerce++-- | ETag of the resource.+upEtag :: Lens' UserPhoto (Maybe Text)+upEtag = lens _upEtag (\ s a -> s{_upEtag = a})++-- | Height in pixels of the photo+upHeight :: Lens' UserPhoto (Maybe Int32)+upHeight+  = lens _upHeight (\ s a -> s{_upHeight = a}) .+      mapping _Coerce++-- | Kind of resource this is.+upKind :: Lens' UserPhoto Text+upKind = lens _upKind (\ s a -> s{_upKind = a})++-- | Width in pixels of the photo+upWidth :: Lens' UserPhoto (Maybe Int32)+upWidth+  = lens _upWidth (\ s a -> s{_upWidth = a}) .+      mapping _Coerce++-- | Mime Type of the photo+upMimeType :: Lens' UserPhoto (Maybe Text)+upMimeType+  = lens _upMimeType (\ s a -> s{_upMimeType = a})++-- | Unique identifier of User (Read-only)+upId :: Lens' UserPhoto (Maybe Text)+upId = lens _upId (\ s a -> s{_upId = a})++-- | Primary email of User (Read-only)+upPrimaryEmail :: Lens' UserPhoto (Maybe Text)+upPrimaryEmail+  = lens _upPrimaryEmail+      (\ s a -> s{_upPrimaryEmail = a})++instance FromJSON UserPhoto where+        parseJSON+          = withObject "UserPhoto"+              (\ o ->+                 UserPhoto <$>+                   (o .:? "photoData") <*> (o .:? "etag") <*>+                     (o .:? "height")+                     <*> (o .:? "kind" .!= "admin#directory#user#photo")+                     <*> (o .:? "width")+                     <*> (o .:? "mimeType")+                     <*> (o .:? "id")+                     <*> (o .:? "primaryEmail"))++instance ToJSON UserPhoto where+        toJSON UserPhoto{..}+          = object+              (catMaybes+                 [("photoData" .=) <$> _upPhotoData,+                  ("etag" .=) <$> _upEtag, ("height" .=) <$> _upHeight,+                  Just ("kind" .= _upKind), ("width" .=) <$> _upWidth,+                  ("mimeType" .=) <$> _upMimeType, ("id" .=) <$> _upId,+                  ("primaryEmail" .=) <$> _upPrimaryEmail])++-- | JSON template for Mobile Device resource in Directory API.+--+-- /See:/ 'mobileDevice' smart constructor.+data MobileDevice = MobileDevice+    { _mobEmail                          :: !(Maybe [Text])+    , _mobStatus                         :: !(Maybe Text)+    , _mobEtag                           :: !(Maybe Text)+    , _mobResourceId                     :: !(Maybe Text)+    , _mobBuildNumber                    :: !(Maybe Text)+    , _mobManagedAccountIsOnOwnerProFile :: !(Maybe Bool)+    , _mobLastSync                       :: !(Maybe DateTime')+    , _mobOtherAccountsInfo              :: !(Maybe [Text])+    , _mobKind                           :: !Text+    , _mobAdbStatus                      :: !(Maybe Bool)+    , _mobNetworkOperator                :: !(Maybe Text)+    , _mobKernelVersion                  :: !(Maybe Text)+    , _mobOS                             :: !(Maybe Text)+    , _mobName                           :: !(Maybe [Text])+    , _mobModel                          :: !(Maybe Text)+    , _mobDeveloperOptionsStatus         :: !(Maybe Bool)+    , _mobUnknownSourcesStatus           :: !(Maybe Bool)+    , _mobMeid                           :: !(Maybe Text)+    , _mobDeviceId                       :: !(Maybe Text)+    , _mobFirstSync                      :: !(Maybe DateTime')+    , _mobUserAgent                      :: !(Maybe Text)+    , _mobImei                           :: !(Maybe Text)+    , _mobType                           :: !(Maybe Text)+    , _mobWifiMACAddress                 :: !(Maybe Text)+    , _mobSerialNumber                   :: !(Maybe Text)+    , _mobHardwareId                     :: !(Maybe Text)+    , _mobBasebandVersion                :: !(Maybe Text)+    , _mobSupportsWorkProFile            :: !(Maybe Bool)+    , _mobDeviceCompromisedStatus        :: !(Maybe Text)+    , _mobApplications                   :: !(Maybe [MobileDeviceApplicationsItem])+    , _mobDefaultLanguage                :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MobileDevice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mobEmail'+--+-- * 'mobStatus'+--+-- * 'mobEtag'+--+-- * 'mobResourceId'+--+-- * 'mobBuildNumber'+--+-- * 'mobManagedAccountIsOnOwnerProFile'+--+-- * 'mobLastSync'+--+-- * 'mobOtherAccountsInfo'+--+-- * 'mobKind'+--+-- * 'mobAdbStatus'+--+-- * 'mobNetworkOperator'+--+-- * 'mobKernelVersion'+--+-- * 'mobOS'+--+-- * 'mobName'+--+-- * 'mobModel'+--+-- * 'mobDeveloperOptionsStatus'+--+-- * 'mobUnknownSourcesStatus'+--+-- * 'mobMeid'+--+-- * 'mobDeviceId'+--+-- * 'mobFirstSync'+--+-- * 'mobUserAgent'+--+-- * 'mobImei'+--+-- * 'mobType'+--+-- * 'mobWifiMACAddress'+--+-- * 'mobSerialNumber'+--+-- * 'mobHardwareId'+--+-- * 'mobBasebandVersion'+--+-- * 'mobSupportsWorkProFile'+--+-- * 'mobDeviceCompromisedStatus'+--+-- * 'mobApplications'+--+-- * 'mobDefaultLanguage'+mobileDevice+    :: MobileDevice+mobileDevice =+    MobileDevice+    { _mobEmail = Nothing+    , _mobStatus = Nothing+    , _mobEtag = Nothing+    , _mobResourceId = Nothing+    , _mobBuildNumber = Nothing+    , _mobManagedAccountIsOnOwnerProFile = Nothing+    , _mobLastSync = Nothing+    , _mobOtherAccountsInfo = Nothing+    , _mobKind = "admin#directory#mobiledevice"+    , _mobAdbStatus = Nothing+    , _mobNetworkOperator = Nothing+    , _mobKernelVersion = Nothing+    , _mobOS = Nothing+    , _mobName = Nothing+    , _mobModel = Nothing+    , _mobDeveloperOptionsStatus = Nothing+    , _mobUnknownSourcesStatus = Nothing+    , _mobMeid = Nothing+    , _mobDeviceId = Nothing+    , _mobFirstSync = Nothing+    , _mobUserAgent = Nothing+    , _mobImei = Nothing+    , _mobType = Nothing+    , _mobWifiMACAddress = Nothing+    , _mobSerialNumber = Nothing+    , _mobHardwareId = Nothing+    , _mobBasebandVersion = Nothing+    , _mobSupportsWorkProFile = Nothing+    , _mobDeviceCompromisedStatus = Nothing+    , _mobApplications = Nothing+    , _mobDefaultLanguage = Nothing+    }++-- | List of owner user\'s email addresses (Read-only)+mobEmail :: Lens' MobileDevice [Text]+mobEmail+  = lens _mobEmail (\ s a -> s{_mobEmail = a}) .+      _Default+      . _Coerce++-- | Status of the device (Read-only)+mobStatus :: Lens' MobileDevice (Maybe Text)+mobStatus+  = lens _mobStatus (\ s a -> s{_mobStatus = a})++-- | ETag of the resource.+mobEtag :: Lens' MobileDevice (Maybe Text)+mobEtag = lens _mobEtag (\ s a -> s{_mobEtag = a})++-- | Unique identifier of Mobile Device (Read-only)+mobResourceId :: Lens' MobileDevice (Maybe Text)+mobResourceId+  = lens _mobResourceId+      (\ s a -> s{_mobResourceId = a})++-- | Mobile Device Build number (Read-only)+mobBuildNumber :: Lens' MobileDevice (Maybe Text)+mobBuildNumber+  = lens _mobBuildNumber+      (\ s a -> s{_mobBuildNumber = a})++-- | Boolean indicating if this account is on owner\/primary profile or not+-- (Read-only)+mobManagedAccountIsOnOwnerProFile :: Lens' MobileDevice (Maybe Bool)+mobManagedAccountIsOnOwnerProFile+  = lens _mobManagedAccountIsOnOwnerProFile+      (\ s a -> s{_mobManagedAccountIsOnOwnerProFile = a})++-- | Date and time the device was last synchronized with the policy settings+-- in the Google Apps administrator control panel (Read-only)+mobLastSync :: Lens' MobileDevice (Maybe UTCTime)+mobLastSync+  = lens _mobLastSync (\ s a -> s{_mobLastSync = a}) .+      mapping _DateTime++-- | List of accounts added on device (Read-only)+mobOtherAccountsInfo :: Lens' MobileDevice [Text]+mobOtherAccountsInfo+  = lens _mobOtherAccountsInfo+      (\ s a -> s{_mobOtherAccountsInfo = a})+      . _Default+      . _Coerce++-- | Kind of resource this is.+mobKind :: Lens' MobileDevice Text+mobKind = lens _mobKind (\ s a -> s{_mobKind = a})++-- | Adb (USB debugging) enabled or disabled on device (Read-only)+mobAdbStatus :: Lens' MobileDevice (Maybe Bool)+mobAdbStatus+  = lens _mobAdbStatus (\ s a -> s{_mobAdbStatus = a})++-- | Mobile Device mobile or network operator (if available) (Read-only)+mobNetworkOperator :: Lens' MobileDevice (Maybe Text)+mobNetworkOperator+  = lens _mobNetworkOperator+      (\ s a -> s{_mobNetworkOperator = a})++-- | Mobile Device Kernel version (Read-only)+mobKernelVersion :: Lens' MobileDevice (Maybe Text)+mobKernelVersion+  = lens _mobKernelVersion+      (\ s a -> s{_mobKernelVersion = a})++-- | Name of the mobile operating system+mobOS :: Lens' MobileDevice (Maybe Text)+mobOS = lens _mobOS (\ s a -> s{_mobOS = a})++-- | List of owner user\'s names (Read-only)+mobName :: Lens' MobileDevice [Text]+mobName+  = lens _mobName (\ s a -> s{_mobName = a}) . _Default+      . _Coerce++-- | Name of the model of the device+mobModel :: Lens' MobileDevice (Maybe Text)+mobModel = lens _mobModel (\ s a -> s{_mobModel = a})++-- | Developer options enabled or disabled on device (Read-only)+mobDeveloperOptionsStatus :: Lens' MobileDevice (Maybe Bool)+mobDeveloperOptionsStatus+  = lens _mobDeveloperOptionsStatus+      (\ s a -> s{_mobDeveloperOptionsStatus = a})++-- | Unknown sources enabled or disabled on device (Read-only)+mobUnknownSourcesStatus :: Lens' MobileDevice (Maybe Bool)+mobUnknownSourcesStatus+  = lens _mobUnknownSourcesStatus+      (\ s a -> s{_mobUnknownSourcesStatus = a})++-- | Mobile Device MEID number (Read-only)+mobMeid :: Lens' MobileDevice (Maybe Text)+mobMeid = lens _mobMeid (\ s a -> s{_mobMeid = a})++-- | Mobile Device serial number (Read-only)+mobDeviceId :: Lens' MobileDevice (Maybe Text)+mobDeviceId+  = lens _mobDeviceId (\ s a -> s{_mobDeviceId = a})++-- | Date and time the device was first synchronized with the policy settings+-- in the Google Apps administrator control panel (Read-only)+mobFirstSync :: Lens' MobileDevice (Maybe UTCTime)+mobFirstSync+  = lens _mobFirstSync (\ s a -> s{_mobFirstSync = a})+      . mapping _DateTime++-- | Mobile Device user agent+mobUserAgent :: Lens' MobileDevice (Maybe Text)+mobUserAgent+  = lens _mobUserAgent (\ s a -> s{_mobUserAgent = a})++-- | Mobile Device IMEI number (Read-only)+mobImei :: Lens' MobileDevice (Maybe Text)+mobImei = lens _mobImei (\ s a -> s{_mobImei = a})++-- | The type of device (Read-only)+mobType :: Lens' MobileDevice (Maybe Text)+mobType = lens _mobType (\ s a -> s{_mobType = a})++-- | Mobile Device WiFi MAC address (Read-only)+mobWifiMACAddress :: Lens' MobileDevice (Maybe Text)+mobWifiMACAddress+  = lens _mobWifiMACAddress+      (\ s a -> s{_mobWifiMACAddress = a})++-- | Mobile Device SSN or Serial Number (Read-only)+mobSerialNumber :: Lens' MobileDevice (Maybe Text)+mobSerialNumber+  = lens _mobSerialNumber+      (\ s a -> s{_mobSerialNumber = a})++-- | Mobile Device Hardware Id (Read-only)+mobHardwareId :: Lens' MobileDevice (Maybe Text)+mobHardwareId+  = lens _mobHardwareId+      (\ s a -> s{_mobHardwareId = a})++-- | Mobile Device Baseband version (Read-only)+mobBasebandVersion :: Lens' MobileDevice (Maybe Text)+mobBasebandVersion+  = lens _mobBasebandVersion+      (\ s a -> s{_mobBasebandVersion = a})++-- | Work profile supported on device (Read-only)+mobSupportsWorkProFile :: Lens' MobileDevice (Maybe Bool)+mobSupportsWorkProFile+  = lens _mobSupportsWorkProFile+      (\ s a -> s{_mobSupportsWorkProFile = a})++-- | Mobile Device compromised status (Read-only)+mobDeviceCompromisedStatus :: Lens' MobileDevice (Maybe Text)+mobDeviceCompromisedStatus+  = lens _mobDeviceCompromisedStatus+      (\ s a -> s{_mobDeviceCompromisedStatus = a})++-- | List of applications installed on Mobile Device+mobApplications :: Lens' MobileDevice [MobileDeviceApplicationsItem]+mobApplications+  = lens _mobApplications+      (\ s a -> s{_mobApplications = a})+      . _Default+      . _Coerce++-- | The default locale used on the Mobile Device (Read-only)+mobDefaultLanguage :: Lens' MobileDevice (Maybe Text)+mobDefaultLanguage+  = lens _mobDefaultLanguage+      (\ s a -> s{_mobDefaultLanguage = a})++instance FromJSON MobileDevice where+        parseJSON+          = withObject "MobileDevice"+              (\ o ->+                 MobileDevice <$>+                   (o .:? "email" .!= mempty) <*> (o .:? "status") <*>+                     (o .:? "etag")+                     <*> (o .:? "resourceId")+                     <*> (o .:? "buildNumber")+                     <*> (o .:? "managedAccountIsOnOwnerProfile")+                     <*> (o .:? "lastSync")+                     <*> (o .:? "otherAccountsInfo" .!= mempty)+                     <*> (o .:? "kind" .!= "admin#directory#mobiledevice")+                     <*> (o .:? "adbStatus")+                     <*> (o .:? "networkOperator")+                     <*> (o .:? "kernelVersion")+                     <*> (o .:? "os")+                     <*> (o .:? "name" .!= mempty)+                     <*> (o .:? "model")+                     <*> (o .:? "developerOptionsStatus")+                     <*> (o .:? "unknownSourcesStatus")+                     <*> (o .:? "meid")+                     <*> (o .:? "deviceId")+                     <*> (o .:? "firstSync")+                     <*> (o .:? "userAgent")+                     <*> (o .:? "imei")+                     <*> (o .:? "type")+                     <*> (o .:? "wifiMacAddress")+                     <*> (o .:? "serialNumber")+                     <*> (o .:? "hardwareId")+                     <*> (o .:? "basebandVersion")+                     <*> (o .:? "supportsWorkProfile")+                     <*> (o .:? "deviceCompromisedStatus")+                     <*> (o .:? "applications" .!= mempty)+                     <*> (o .:? "defaultLanguage"))++instance ToJSON MobileDevice where+        toJSON MobileDevice{..}+          = object+              (catMaybes+                 [("email" .=) <$> _mobEmail,+                  ("status" .=) <$> _mobStatus,+                  ("etag" .=) <$> _mobEtag,+                  ("resourceId" .=) <$> _mobResourceId,+                  ("buildNumber" .=) <$> _mobBuildNumber,+                  ("managedAccountIsOnOwnerProfile" .=) <$>+                    _mobManagedAccountIsOnOwnerProFile,+                  ("lastSync" .=) <$> _mobLastSync,+                  ("otherAccountsInfo" .=) <$> _mobOtherAccountsInfo,+                  Just ("kind" .= _mobKind),+                  ("adbStatus" .=) <$> _mobAdbStatus,+                  ("networkOperator" .=) <$> _mobNetworkOperator,+                  ("kernelVersion" .=) <$> _mobKernelVersion,+                  ("os" .=) <$> _mobOS, ("name" .=) <$> _mobName,+                  ("model" .=) <$> _mobModel,+                  ("developerOptionsStatus" .=) <$>+                    _mobDeveloperOptionsStatus,+                  ("unknownSourcesStatus" .=) <$>+                    _mobUnknownSourcesStatus,+                  ("meid" .=) <$> _mobMeid,+                  ("deviceId" .=) <$> _mobDeviceId,+                  ("firstSync" .=) <$> _mobFirstSync,+                  ("userAgent" .=) <$> _mobUserAgent,+                  ("imei" .=) <$> _mobImei, ("type" .=) <$> _mobType,+                  ("wifiMacAddress" .=) <$> _mobWifiMACAddress,+                  ("serialNumber" .=) <$> _mobSerialNumber,+                  ("hardwareId" .=) <$> _mobHardwareId,+                  ("basebandVersion" .=) <$> _mobBasebandVersion,+                  ("supportsWorkProfile" .=) <$>+                    _mobSupportsWorkProFile,+                  ("deviceCompromisedStatus" .=) <$>+                    _mobDeviceCompromisedStatus,+                  ("applications" .=) <$> _mobApplications,+                  ("defaultLanguage" .=) <$> _mobDefaultLanguage])++-- | JSON template for Member resource in Directory API.+--+-- /See:/ 'member' smart constructor.+data Member = Member+    { _memEmail :: !(Maybe Text)+    , _memEtag  :: !(Maybe Text)+    , _memKind  :: !Text+    , _memRole  :: !(Maybe Text)+    , _memId    :: !(Maybe Text)+    , _memType  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Member' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'memEmail'+--+-- * 'memEtag'+--+-- * 'memKind'+--+-- * 'memRole'+--+-- * 'memId'+--+-- * 'memType'+member+    :: Member+member =+    Member+    { _memEmail = Nothing+    , _memEtag = Nothing+    , _memKind = "admin#directory#member"+    , _memRole = Nothing+    , _memId = Nothing+    , _memType = Nothing+    }++-- | Email of member (Read-only)+memEmail :: Lens' Member (Maybe Text)+memEmail = lens _memEmail (\ s a -> s{_memEmail = a})++-- | ETag of the resource.+memEtag :: Lens' Member (Maybe Text)+memEtag = lens _memEtag (\ s a -> s{_memEtag = a})++-- | Kind of resource this is.+memKind :: Lens' Member Text+memKind = lens _memKind (\ s a -> s{_memKind = a})++-- | Role of member+memRole :: Lens' Member (Maybe Text)+memRole = lens _memRole (\ s a -> s{_memRole = a})++-- | Unique identifier of customer member (Read-only) Unique identifier of+-- group (Read-only) Unique identifier of member (Read-only)+memId :: Lens' Member (Maybe Text)+memId = lens _memId (\ s a -> s{_memId = a})++-- | Type of member (Immutable)+memType :: Lens' Member (Maybe Text)+memType = lens _memType (\ s a -> s{_memType = a})++instance FromJSON Member where+        parseJSON+          = withObject "Member"+              (\ o ->+                 Member <$>+                   (o .:? "email") <*> (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#member")+                     <*> (o .:? "role")+                     <*> (o .:? "id")+                     <*> (o .:? "type"))++instance ToJSON Member where+        toJSON Member{..}+          = object+              (catMaybes+                 [("email" .=) <$> _memEmail,+                  ("etag" .=) <$> _memEtag, Just ("kind" .= _memKind),+                  ("role" .=) <$> _memRole, ("id" .=) <$> _memId,+                  ("type" .=) <$> _memType])++-- | JSON template for a set of custom properties (i.e. all fields in a+-- particular schema)+--+-- /See:/ 'userCustomProperties' smart constructor.+newtype UserCustomProperties = UserCustomProperties+    { _ucpAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserCustomProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ucpAddtional'+userCustomProperties+    :: HashMap Text JSONValue -- ^ 'ucpAddtional'+    -> UserCustomProperties+userCustomProperties pUcpAddtional_ =+    UserCustomProperties+    { _ucpAddtional = _Coerce # pUcpAddtional_+    }++ucpAddtional :: Lens' UserCustomProperties (HashMap Text JSONValue)+ucpAddtional+  = lens _ucpAddtional (\ s a -> s{_ucpAddtional = a})+      . _Coerce++instance FromJSON UserCustomProperties where+        parseJSON+          = withObject "UserCustomProperties"+              (\ o -> UserCustomProperties <$> (parseJSONObject o))++instance ToJSON UserCustomProperties where+        toJSON = toJSON . _ucpAddtional++-- | JSON template for Domain object in Directory API.+--+-- /See:/ 'domains' smart constructor.+data Domains = Domains+    { _domCreationTime  :: !(Maybe (Textual Int64))+    , _domEtag          :: !(Maybe Text)+    , _domKind          :: !Text+    , _domDomainAliases :: !(Maybe [DomainAlias])+    , _domVerified      :: !(Maybe Bool)+    , _domDomainName    :: !(Maybe Text)+    , _domIsPrimary     :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Domains' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'domCreationTime'+--+-- * 'domEtag'+--+-- * 'domKind'+--+-- * 'domDomainAliases'+--+-- * 'domVerified'+--+-- * 'domDomainName'+--+-- * 'domIsPrimary'+domains+    :: Domains+domains =+    Domains+    { _domCreationTime = Nothing+    , _domEtag = Nothing+    , _domKind = "admin#directory#domain"+    , _domDomainAliases = Nothing+    , _domVerified = Nothing+    , _domDomainName = Nothing+    , _domIsPrimary = Nothing+    }++-- | Creation time of the domain. (Read-only).+domCreationTime :: Lens' Domains (Maybe Int64)+domCreationTime+  = lens _domCreationTime+      (\ s a -> s{_domCreationTime = a})+      . mapping _Coerce++-- | ETag of the resource.+domEtag :: Lens' Domains (Maybe Text)+domEtag = lens _domEtag (\ s a -> s{_domEtag = a})++-- | Kind of resource this is.+domKind :: Lens' Domains Text+domKind = lens _domKind (\ s a -> s{_domKind = a})++-- | List of domain alias objects. (Read-only)+domDomainAliases :: Lens' Domains [DomainAlias]+domDomainAliases+  = lens _domDomainAliases+      (\ s a -> s{_domDomainAliases = a})+      . _Default+      . _Coerce++-- | Indicates the verification state of a domain. (Read-only).+domVerified :: Lens' Domains (Maybe Bool)+domVerified+  = lens _domVerified (\ s a -> s{_domVerified = a})++-- | The domain name of the customer.+domDomainName :: Lens' Domains (Maybe Text)+domDomainName+  = lens _domDomainName+      (\ s a -> s{_domDomainName = a})++-- | Indicates if the domain is a primary domain (Read-only).+domIsPrimary :: Lens' Domains (Maybe Bool)+domIsPrimary+  = lens _domIsPrimary (\ s a -> s{_domIsPrimary = a})++instance FromJSON Domains where+        parseJSON+          = withObject "Domains"+              (\ o ->+                 Domains <$>+                   (o .:? "creationTime") <*> (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#domain")+                     <*> (o .:? "domainAliases" .!= mempty)+                     <*> (o .:? "verified")+                     <*> (o .:? "domainName")+                     <*> (o .:? "isPrimary"))++instance ToJSON Domains where+        toJSON Domains{..}+          = object+              (catMaybes+                 [("creationTime" .=) <$> _domCreationTime,+                  ("etag" .=) <$> _domEtag, Just ("kind" .= _domKind),+                  ("domainAliases" .=) <$> _domDomainAliases,+                  ("verified" .=) <$> _domVerified,+                  ("domainName" .=) <$> _domDomainName,+                  ("isPrimary" .=) <$> _domIsPrimary])++-- | Template for notifications list response.+--+-- /See:/ 'notifications' smart constructor.+data Notifications = Notifications+    { _notEtag                     :: !(Maybe Text)+    , _notNextPageToken            :: !(Maybe Text)+    , _notKind                     :: !Text+    , _notItems                    :: !(Maybe [Notification])+    , _notUnreadNotificationsCount :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Notifications' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'notEtag'+--+-- * 'notNextPageToken'+--+-- * 'notKind'+--+-- * 'notItems'+--+-- * 'notUnreadNotificationsCount'+notifications+    :: Notifications+notifications =+    Notifications+    { _notEtag = Nothing+    , _notNextPageToken = Nothing+    , _notKind = "admin#directory#notifications"+    , _notItems = Nothing+    , _notUnreadNotificationsCount = Nothing+    }++-- | ETag of the resource.+notEtag :: Lens' Notifications (Maybe Text)+notEtag = lens _notEtag (\ s a -> s{_notEtag = a})++-- | Token for fetching the next page of notifications.+notNextPageToken :: Lens' Notifications (Maybe Text)+notNextPageToken+  = lens _notNextPageToken+      (\ s a -> s{_notNextPageToken = a})++-- | The type of the resource.+notKind :: Lens' Notifications Text+notKind = lens _notKind (\ s a -> s{_notKind = a})++-- | List of notifications in this page.+notItems :: Lens' Notifications [Notification]+notItems+  = lens _notItems (\ s a -> s{_notItems = a}) .+      _Default+      . _Coerce++-- | Number of unread notification for the domain.+notUnreadNotificationsCount :: Lens' Notifications (Maybe Int32)+notUnreadNotificationsCount+  = lens _notUnreadNotificationsCount+      (\ s a -> s{_notUnreadNotificationsCount = a})+      . mapping _Coerce++instance FromJSON Notifications where+        parseJSON+          = withObject "Notifications"+              (\ o ->+                 Notifications <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "admin#directory#notifications")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "unreadNotificationsCount"))++instance ToJSON Notifications where+        toJSON Notifications{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _notEtag,+                  ("nextPageToken" .=) <$> _notNextPageToken,+                  Just ("kind" .= _notKind),+                  ("items" .=) <$> _notItems,+                  ("unreadNotificationsCount" .=) <$>+                    _notUnreadNotificationsCount])++-- | Indexing spec for a numeric field. By default, only exact match queries+-- will be supported for numeric fields. Setting the numericIndexingSpec+-- allows range queries to be supported.+--+-- /See:/ 'schemaFieldSpecNumericIndexingSpec' smart constructor.+data SchemaFieldSpecNumericIndexingSpec = SchemaFieldSpecNumericIndexingSpec+    { _sfsnisMaxValue :: !(Maybe (Textual Double))+    , _sfsnisMinValue :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SchemaFieldSpecNumericIndexingSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sfsnisMaxValue'+--+-- * 'sfsnisMinValue'+schemaFieldSpecNumericIndexingSpec+    :: SchemaFieldSpecNumericIndexingSpec+schemaFieldSpecNumericIndexingSpec =+    SchemaFieldSpecNumericIndexingSpec+    { _sfsnisMaxValue = Nothing+    , _sfsnisMinValue = Nothing+    }++-- | Maximum value of this field. This is meant to be indicative rather than+-- enforced. Values outside this range will still be indexed, but search+-- may not be as performant.+sfsnisMaxValue :: Lens' SchemaFieldSpecNumericIndexingSpec (Maybe Double)+sfsnisMaxValue+  = lens _sfsnisMaxValue+      (\ s a -> s{_sfsnisMaxValue = a})+      . mapping _Coerce++-- | Minimum value of this field. This is meant to be indicative rather than+-- enforced. Values outside this range will still be indexed, but search+-- may not be as performant.+sfsnisMinValue :: Lens' SchemaFieldSpecNumericIndexingSpec (Maybe Double)+sfsnisMinValue+  = lens _sfsnisMinValue+      (\ s a -> s{_sfsnisMinValue = a})+      . mapping _Coerce++instance FromJSON SchemaFieldSpecNumericIndexingSpec+         where+        parseJSON+          = withObject "SchemaFieldSpecNumericIndexingSpec"+              (\ o ->+                 SchemaFieldSpecNumericIndexingSpec <$>+                   (o .:? "maxValue") <*> (o .:? "minValue"))++instance ToJSON SchemaFieldSpecNumericIndexingSpec+         where+        toJSON SchemaFieldSpecNumericIndexingSpec{..}+          = object+              (catMaybes+                 [("maxValue" .=) <$> _sfsnisMaxValue,+                  ("minValue" .=) <$> _sfsnisMinValue])++-- | JSON request template for firing commands on Mobile Device in Directory+-- Devices API.+--+-- /See:/ 'mobileDeviceAction' smart constructor.+newtype MobileDeviceAction = MobileDeviceAction+    { _mdaAction :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MobileDeviceAction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdaAction'+mobileDeviceAction+    :: MobileDeviceAction+mobileDeviceAction =+    MobileDeviceAction+    { _mdaAction = Nothing+    }++-- | Action to be taken on the Mobile Device+mdaAction :: Lens' MobileDeviceAction (Maybe Text)+mdaAction+  = lens _mdaAction (\ s a -> s{_mdaAction = a})++instance FromJSON MobileDeviceAction where+        parseJSON+          = withObject "MobileDeviceAction"+              (\ o -> MobileDeviceAction <$> (o .:? "action"))++instance ToJSON MobileDeviceAction where+        toJSON MobileDeviceAction{..}+          = object (catMaybes [("action" .=) <$> _mdaAction])++-- | JSON template for FieldSpec resource for Schemas in Directory API.+--+-- /See:/ 'schemaFieldSpec' smart constructor.+data SchemaFieldSpec = SchemaFieldSpec+    { _sfsEtag                :: !(Maybe Text)+    , _sfsKind                :: !Text+    , _sfsNumericIndexingSpec :: !(Maybe SchemaFieldSpecNumericIndexingSpec)+    , _sfsReadAccessType      :: !Text+    , _sfsFieldId             :: !(Maybe Text)+    , _sfsIndexed             :: !Bool+    , _sfsFieldType           :: !(Maybe Text)+    , _sfsFieldName           :: !(Maybe Text)+    , _sfsMultiValued         :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SchemaFieldSpec' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sfsEtag'+--+-- * 'sfsKind'+--+-- * 'sfsNumericIndexingSpec'+--+-- * 'sfsReadAccessType'+--+-- * 'sfsFieldId'+--+-- * 'sfsIndexed'+--+-- * 'sfsFieldType'+--+-- * 'sfsFieldName'+--+-- * 'sfsMultiValued'+schemaFieldSpec+    :: SchemaFieldSpec+schemaFieldSpec =+    SchemaFieldSpec+    { _sfsEtag = Nothing+    , _sfsKind = "admin#directory#schema#fieldspec"+    , _sfsNumericIndexingSpec = Nothing+    , _sfsReadAccessType = "ALL_DOMAIN_USERS"+    , _sfsFieldId = Nothing+    , _sfsIndexed = True+    , _sfsFieldType = Nothing+    , _sfsFieldName = Nothing+    , _sfsMultiValued = Nothing+    }++-- | ETag of the resource.+sfsEtag :: Lens' SchemaFieldSpec (Maybe Text)+sfsEtag = lens _sfsEtag (\ s a -> s{_sfsEtag = a})++-- | Kind of resource this is.+sfsKind :: Lens' SchemaFieldSpec Text+sfsKind = lens _sfsKind (\ s a -> s{_sfsKind = a})++-- | Indexing spec for a numeric field. By default, only exact match queries+-- will be supported for numeric fields. Setting the numericIndexingSpec+-- allows range queries to be supported.+sfsNumericIndexingSpec :: Lens' SchemaFieldSpec (Maybe SchemaFieldSpecNumericIndexingSpec)+sfsNumericIndexingSpec+  = lens _sfsNumericIndexingSpec+      (\ s a -> s{_sfsNumericIndexingSpec = a})++-- | Read ACLs on the field specifying who can view values of this field.+-- Valid values are \"ALL_DOMAIN_USERS\" and \"ADMINS_AND_SELF\".+sfsReadAccessType :: Lens' SchemaFieldSpec Text+sfsReadAccessType+  = lens _sfsReadAccessType+      (\ s a -> s{_sfsReadAccessType = a})++-- | Unique identifier of Field (Read-only)+sfsFieldId :: Lens' SchemaFieldSpec (Maybe Text)+sfsFieldId+  = lens _sfsFieldId (\ s a -> s{_sfsFieldId = a})++-- | Boolean specifying whether the field is indexed or not.+sfsIndexed :: Lens' SchemaFieldSpec Bool+sfsIndexed+  = lens _sfsIndexed (\ s a -> s{_sfsIndexed = a})++-- | Type of the field.+sfsFieldType :: Lens' SchemaFieldSpec (Maybe Text)+sfsFieldType+  = lens _sfsFieldType (\ s a -> s{_sfsFieldType = a})++-- | Name of the field.+sfsFieldName :: Lens' SchemaFieldSpec (Maybe Text)+sfsFieldName+  = lens _sfsFieldName (\ s a -> s{_sfsFieldName = a})++-- | Boolean specifying whether this is a multi-valued field or not.+sfsMultiValued :: Lens' SchemaFieldSpec (Maybe Bool)+sfsMultiValued+  = lens _sfsMultiValued+      (\ s a -> s{_sfsMultiValued = a})++instance FromJSON SchemaFieldSpec where+        parseJSON+          = withObject "SchemaFieldSpec"+              (\ o ->+                 SchemaFieldSpec <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#schema#fieldspec")+                     <*> (o .:? "numericIndexingSpec")+                     <*> (o .:? "readAccessType" .!= "ALL_DOMAIN_USERS")+                     <*> (o .:? "fieldId")+                     <*> (o .:? "indexed" .!= True)+                     <*> (o .:? "fieldType")+                     <*> (o .:? "fieldName")+                     <*> (o .:? "multiValued"))++instance ToJSON SchemaFieldSpec where+        toJSON SchemaFieldSpec{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _sfsEtag, Just ("kind" .= _sfsKind),+                  ("numericIndexingSpec" .=) <$>+                    _sfsNumericIndexingSpec,+                  Just ("readAccessType" .= _sfsReadAccessType),+                  ("fieldId" .=) <$> _sfsFieldId,+                  Just ("indexed" .= _sfsIndexed),+                  ("fieldType" .=) <$> _sfsFieldType,+                  ("fieldName" .=) <$> _sfsFieldName,+                  ("multiValued" .=) <$> _sfsMultiValued])++-- | JSON response template for List Chrome OS Devices operation in Directory+-- API.+--+-- /See:/ 'chromeOSDevices' smart constructor.+data ChromeOSDevices = ChromeOSDevices+    { _cosdEtag            :: !(Maybe Text)+    , _cosdNextPageToken   :: !(Maybe Text)+    , _cosdKind            :: !Text+    , _cosdChromeosDevices :: !(Maybe [ChromeOSDevice])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChromeOSDevices' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cosdEtag'+--+-- * 'cosdNextPageToken'+--+-- * 'cosdKind'+--+-- * 'cosdChromeosDevices'+chromeOSDevices+    :: ChromeOSDevices+chromeOSDevices =+    ChromeOSDevices+    { _cosdEtag = Nothing+    , _cosdNextPageToken = Nothing+    , _cosdKind = "admin#directory#chromeosdevices"+    , _cosdChromeosDevices = Nothing+    }++-- | ETag of the resource.+cosdEtag :: Lens' ChromeOSDevices (Maybe Text)+cosdEtag = lens _cosdEtag (\ s a -> s{_cosdEtag = a})++-- | Token used to access next page of this result.+cosdNextPageToken :: Lens' ChromeOSDevices (Maybe Text)+cosdNextPageToken+  = lens _cosdNextPageToken+      (\ s a -> s{_cosdNextPageToken = a})++-- | Kind of resource this is.+cosdKind :: Lens' ChromeOSDevices Text+cosdKind = lens _cosdKind (\ s a -> s{_cosdKind = a})++-- | List of Chrome OS Device objects.+cosdChromeosDevices :: Lens' ChromeOSDevices [ChromeOSDevice]+cosdChromeosDevices+  = lens _cosdChromeosDevices+      (\ s a -> s{_cosdChromeosDevices = a})+      . _Default+      . _Coerce++instance FromJSON ChromeOSDevices where+        parseJSON+          = withObject "ChromeOSDevices"+              (\ o ->+                 ChromeOSDevices <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "admin#directory#chromeosdevices")+                     <*> (o .:? "chromeosdevices" .!= mempty))++instance ToJSON ChromeOSDevices where+        toJSON ChromeOSDevices{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _cosdEtag,+                  ("nextPageToken" .=) <$> _cosdNextPageToken,+                  Just ("kind" .= _cosdKind),+                  ("chromeosdevices" .=) <$> _cosdChromeosDevices])++-- | JSON template for an externalId entry.+--+-- /See:/ 'userExternalId' smart constructor.+data UserExternalId = UserExternalId+    { _ueiValue      :: !(Maybe Text)+    , _ueiType       :: !(Maybe Text)+    , _ueiCustomType :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserExternalId' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ueiValue'+--+-- * 'ueiType'+--+-- * 'ueiCustomType'+userExternalId+    :: UserExternalId+userExternalId =+    UserExternalId+    { _ueiValue = Nothing+    , _ueiType = Nothing+    , _ueiCustomType = Nothing+    }++-- | The value of the id.+ueiValue :: Lens' UserExternalId (Maybe Text)+ueiValue = lens _ueiValue (\ s a -> s{_ueiValue = a})++-- | The type of the Id.+ueiType :: Lens' UserExternalId (Maybe Text)+ueiType = lens _ueiType (\ s a -> s{_ueiType = a})++-- | Custom type.+ueiCustomType :: Lens' UserExternalId (Maybe Text)+ueiCustomType+  = lens _ueiCustomType+      (\ s a -> s{_ueiCustomType = a})++instance FromJSON UserExternalId where+        parseJSON+          = withObject "UserExternalId"+              (\ o ->+                 UserExternalId <$>+                   (o .:? "value") <*> (o .:? "type") <*>+                     (o .:? "customType"))++instance ToJSON UserExternalId where+        toJSON UserExternalId{..}+          = object+              (catMaybes+                 [("value" .=) <$> _ueiValue,+                  ("type" .=) <$> _ueiType,+                  ("customType" .=) <$> _ueiCustomType])++--+-- /See:/ 'asps' smart constructor.+data Asps = Asps+    { _aspEtag  :: !(Maybe Text)+    , _aspKind  :: !Text+    , _aspItems :: !(Maybe [Asp])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Asps' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aspEtag'+--+-- * 'aspKind'+--+-- * 'aspItems'+asps+    :: Asps+asps =+    Asps+    { _aspEtag = Nothing+    , _aspKind = "admin#directory#aspList"+    , _aspItems = Nothing+    }++-- | ETag of the resource.+aspEtag :: Lens' Asps (Maybe Text)+aspEtag = lens _aspEtag (\ s a -> s{_aspEtag = a})++-- | The type of the API resource. This is always admin#directory#aspList.+aspKind :: Lens' Asps Text+aspKind = lens _aspKind (\ s a -> s{_aspKind = a})++-- | A list of ASP resources.+aspItems :: Lens' Asps [Asp]+aspItems+  = lens _aspItems (\ s a -> s{_aspItems = a}) .+      _Default+      . _Coerce++instance FromJSON Asps where+        parseJSON+          = withObject "Asps"+              (\ o ->+                 Asps <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#aspList")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Asps where+        toJSON Asps{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _aspEtag, Just ("kind" .= _aspKind),+                  ("items" .=) <$> _aspItems])++--+-- /See:/ 'roleRolePrivilegesItem' smart constructor.+data RoleRolePrivilegesItem = RoleRolePrivilegesItem+    { _rrpiServiceId     :: !(Maybe Text)+    , _rrpiPrivilegeName :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RoleRolePrivilegesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rrpiServiceId'+--+-- * 'rrpiPrivilegeName'+roleRolePrivilegesItem+    :: RoleRolePrivilegesItem+roleRolePrivilegesItem =+    RoleRolePrivilegesItem+    { _rrpiServiceId = Nothing+    , _rrpiPrivilegeName = Nothing+    }++-- | The obfuscated ID of the service this privilege is for.+rrpiServiceId :: Lens' RoleRolePrivilegesItem (Maybe Text)+rrpiServiceId+  = lens _rrpiServiceId+      (\ s a -> s{_rrpiServiceId = a})++-- | The name of the privilege.+rrpiPrivilegeName :: Lens' RoleRolePrivilegesItem (Maybe Text)+rrpiPrivilegeName+  = lens _rrpiPrivilegeName+      (\ s a -> s{_rrpiPrivilegeName = a})++instance FromJSON RoleRolePrivilegesItem where+        parseJSON+          = withObject "RoleRolePrivilegesItem"+              (\ o ->+                 RoleRolePrivilegesItem <$>+                   (o .:? "serviceId") <*> (o .:? "privilegeName"))++instance ToJSON RoleRolePrivilegesItem where+        toJSON RoleRolePrivilegesItem{..}+          = object+              (catMaybes+                 [("serviceId" .=) <$> _rrpiServiceId,+                  ("privilegeName" .=) <$> _rrpiPrivilegeName])++-- | JSON response template to list Domains in Directory API.+--+-- /See:/ 'domains2' smart constructor.+data Domains2 = Domains2+    { _ddEtag    :: !(Maybe Text)+    , _ddKind    :: !Text+    , _ddDomains :: !(Maybe [Domains])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Domains2' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddEtag'+--+-- * 'ddKind'+--+-- * 'ddDomains'+domains2+    :: Domains2+domains2 =+    Domains2+    { _ddEtag = Nothing+    , _ddKind = "admin#directory#domains"+    , _ddDomains = Nothing+    }++-- | ETag of the resource.+ddEtag :: Lens' Domains2 (Maybe Text)+ddEtag = lens _ddEtag (\ s a -> s{_ddEtag = a})++-- | Kind of resource this is.+ddKind :: Lens' Domains2 Text+ddKind = lens _ddKind (\ s a -> s{_ddKind = a})++-- | List of domain objects.+ddDomains :: Lens' Domains2 [Domains]+ddDomains+  = lens _ddDomains (\ s a -> s{_ddDomains = a}) .+      _Default+      . _Coerce++instance FromJSON Domains2 where+        parseJSON+          = withObject "Domains2"+              (\ o ->+                 Domains2 <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "admin#directory#domains")+                     <*> (o .:? "domains" .!= mempty))++instance ToJSON Domains2 where+        toJSON Domains2{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _ddEtag, Just ("kind" .= _ddKind),+                  ("domains" .=) <$> _ddDomains])
+ gen/Network/Google/Directory/Types/Sum.hs view
@@ -0,0 +1,862 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Directory.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.Directory.Types.Sum where++import           Network.Google.Prelude++-- | Event on which subscription is intended (if subscribing)+data UsersListEvent+    = Add+      -- ^ @add@+      -- User Created Event+    | Delete'+      -- ^ @delete@+      -- User Deleted Event+    | MakeAdmin+      -- ^ @makeAdmin@+      -- User Admin Status Change Event+    | Undelete+      -- ^ @undelete@+      -- User Undeleted Event+    | Update+      -- ^ @update@+      -- User Updated Event+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable UsersListEvent++instance FromText UsersListEvent where+    fromText = \case+        "add" -> Just Add+        "delete" -> Just Delete'+        "makeAdmin" -> Just MakeAdmin+        "undelete" -> Just Undelete+        "update" -> Just Update+        _ -> Nothing++instance ToText UsersListEvent where+    toText = \case+        Add -> "add"+        Delete' -> "delete"+        MakeAdmin -> "makeAdmin"+        Undelete -> "undelete"+        Update -> "update"++instance FromJSON UsersListEvent where+    parseJSON = parseJSONText "UsersListEvent"++instance ToJSON UsersListEvent where+    toJSON = toJSONText++-- | Event on which subscription is intended (if subscribing)+data UsersAliasesListEvent+    = UALEAdd+      -- ^ @add@+      -- Alias Created Event+    | UALEDelete'+      -- ^ @delete@+      -- Alias Deleted Event+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable UsersAliasesListEvent++instance FromText UsersAliasesListEvent where+    fromText = \case+        "add" -> Just UALEAdd+        "delete" -> Just UALEDelete'+        _ -> Nothing++instance ToText UsersAliasesListEvent where+    toText = \case+        UALEAdd -> "add"+        UALEDelete' -> "delete"++instance FromJSON UsersAliasesListEvent where+    parseJSON = parseJSONText "UsersAliasesListEvent"++instance ToJSON UsersAliasesListEvent where+    toJSON = toJSONText++-- | Event on which subscription is intended (if subscribing)+data UsersAliasesWatchEvent+    = UAWEAdd+      -- ^ @add@+      -- Alias Created Event+    | UAWEDelete'+      -- ^ @delete@+      -- Alias Deleted Event+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable UsersAliasesWatchEvent++instance FromText UsersAliasesWatchEvent where+    fromText = \case+        "add" -> Just UAWEAdd+        "delete" -> Just UAWEDelete'+        _ -> Nothing++instance ToText UsersAliasesWatchEvent where+    toText = \case+        UAWEAdd -> "add"+        UAWEDelete' -> "delete"++instance FromJSON UsersAliasesWatchEvent where+    parseJSON = parseJSONText "UsersAliasesWatchEvent"++instance ToJSON UsersAliasesWatchEvent where+    toJSON = toJSONText++-- | Event on which subscription is intended (if subscribing)+data UsersWatchEvent+    = UWEAdd+      -- ^ @add@+      -- User Created Event+    | UWEDelete'+      -- ^ @delete@+      -- User Deleted Event+    | UWEMakeAdmin+      -- ^ @makeAdmin@+      -- User Admin Status Change Event+    | UWEUndelete+      -- ^ @undelete@+      -- User Undeleted Event+    | UWEUpdate+      -- ^ @update@+      -- User Updated Event+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable UsersWatchEvent++instance FromText UsersWatchEvent where+    fromText = \case+        "add" -> Just UWEAdd+        "delete" -> Just UWEDelete'+        "makeAdmin" -> Just UWEMakeAdmin+        "undelete" -> Just UWEUndelete+        "update" -> Just UWEUpdate+        _ -> Nothing++instance ToText UsersWatchEvent where+    toText = \case+        UWEAdd -> "add"+        UWEDelete' -> "delete"+        UWEMakeAdmin -> "makeAdmin"+        UWEUndelete -> "undelete"+        UWEUpdate -> "update"++instance FromJSON UsersWatchEvent where+    parseJSON = parseJSONText "UsersWatchEvent"++instance ToJSON UsersWatchEvent where+    toJSON = toJSONText++-- | Restrict information returned to a set of selected fields.+data ChromeosDevicesPatchProjection+    = Basic+      -- ^ @BASIC@+      -- Includes only the basic metadata fields (e.g., deviceId, serialNumber,+      -- status, and user)+    | Full+      -- ^ @FULL@+      -- Includes all metadata fields+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ChromeosDevicesPatchProjection++instance FromText ChromeosDevicesPatchProjection where+    fromText = \case+        "BASIC" -> Just Basic+        "FULL" -> Just Full+        _ -> Nothing++instance ToText ChromeosDevicesPatchProjection where+    toText = \case+        Basic -> "BASIC"+        Full -> "FULL"++instance FromJSON ChromeosDevicesPatchProjection where+    parseJSON = parseJSONText "ChromeosDevicesPatchProjection"++instance ToJSON ChromeosDevicesPatchProjection where+    toJSON = toJSONText++-- | Restrict information returned to a set of selected fields.+data ChromeosDevicesGetProjection+    = CDGPBasic+      -- ^ @BASIC@+      -- Includes only the basic metadata fields (e.g., deviceId, serialNumber,+      -- status, and user)+    | CDGPFull+      -- ^ @FULL@+      -- Includes all metadata fields+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ChromeosDevicesGetProjection++instance FromText ChromeosDevicesGetProjection where+    fromText = \case+        "BASIC" -> Just CDGPBasic+        "FULL" -> Just CDGPFull+        _ -> Nothing++instance ToText ChromeosDevicesGetProjection where+    toText = \case+        CDGPBasic -> "BASIC"+        CDGPFull -> "FULL"++instance FromJSON ChromeosDevicesGetProjection where+    parseJSON = parseJSONText "ChromeosDevicesGetProjection"++instance ToJSON ChromeosDevicesGetProjection where+    toJSON = toJSONText++-- | Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user.+data UsersListViewType+    = AdminView+      -- ^ @admin_view@+      -- Fetches the ADMIN_VIEW of the user.+    | DomainPublic+      -- ^ @domain_public@+      -- Fetches the DOMAIN_PUBLIC view of the user.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable UsersListViewType++instance FromText UsersListViewType where+    fromText = \case+        "admin_view" -> Just AdminView+        "domain_public" -> Just DomainPublic+        _ -> Nothing++instance ToText UsersListViewType where+    toText = \case+        AdminView -> "admin_view"+        DomainPublic -> "domain_public"++instance FromJSON UsersListViewType where+    parseJSON = parseJSONText "UsersListViewType"++instance ToJSON UsersListViewType where+    toJSON = toJSONText++-- | Whether to return all sub-organizations or just immediate children+data OrgUnitsListType+    = All+      -- ^ @all@+      -- All sub-organization units.+    | Children+      -- ^ @children@+      -- Immediate children only (default).+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable OrgUnitsListType++instance FromText OrgUnitsListType where+    fromText = \case+        "all" -> Just All+        "children" -> Just Children+        _ -> Nothing++instance ToText OrgUnitsListType where+    toText = \case+        All -> "all"+        Children -> "children"++instance FromJSON OrgUnitsListType where+    parseJSON = parseJSONText "OrgUnitsListType"++instance ToJSON OrgUnitsListType where+    toJSON = toJSONText++-- | Whether to return results in ascending or descending order. Only of use+-- when orderBy is also used+data MobileDevicesListSortOrder+    = Ascending+      -- ^ @ASCENDING@+      -- Ascending order.+    | Descending+      -- ^ @DESCENDING@+      -- Descending order.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable MobileDevicesListSortOrder++instance FromText MobileDevicesListSortOrder where+    fromText = \case+        "ASCENDING" -> Just Ascending+        "DESCENDING" -> Just Descending+        _ -> Nothing++instance ToText MobileDevicesListSortOrder where+    toText = \case+        Ascending -> "ASCENDING"+        Descending -> "DESCENDING"++instance FromJSON MobileDevicesListSortOrder where+    parseJSON = parseJSONText "MobileDevicesListSortOrder"++instance ToJSON MobileDevicesListSortOrder where+    toJSON = toJSONText++-- | Column to use for sorting results+data UsersListOrderBy+    = Email+      -- ^ @email@+      -- Primary email of the user.+    | FamilyName+      -- ^ @familyName@+      -- User\'s family name.+    | GivenName+      -- ^ @givenName@+      -- User\'s given name.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable UsersListOrderBy++instance FromText UsersListOrderBy where+    fromText = \case+        "email" -> Just Email+        "familyName" -> Just FamilyName+        "givenName" -> Just GivenName+        _ -> Nothing++instance ToText UsersListOrderBy where+    toText = \case+        Email -> "email"+        FamilyName -> "familyName"+        GivenName -> "givenName"++instance FromJSON UsersListOrderBy where+    parseJSON = parseJSONText "UsersListOrderBy"++instance ToJSON UsersListOrderBy where+    toJSON = toJSONText++-- | Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user.+data UsersWatchViewType+    = UWVTAdminView+      -- ^ @admin_view@+      -- Fetches the ADMIN_VIEW of the user.+    | UWVTDomainPublic+      -- ^ @domain_public@+      -- Fetches the DOMAIN_PUBLIC view of the user.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable UsersWatchViewType++instance FromText UsersWatchViewType where+    fromText = \case+        "admin_view" -> Just UWVTAdminView+        "domain_public" -> Just UWVTDomainPublic+        _ -> Nothing++instance ToText UsersWatchViewType where+    toText = \case+        UWVTAdminView -> "admin_view"+        UWVTDomainPublic -> "domain_public"++instance FromJSON UsersWatchViewType where+    parseJSON = parseJSONText "UsersWatchViewType"++instance ToJSON UsersWatchViewType where+    toJSON = toJSONText++-- | What subset of fields to fetch for this user.+data UsersGetProjection+    = UGPBasic+      -- ^ @basic@+      -- Do not include any custom fields for the user.+    | UGPCustom+      -- ^ @custom@+      -- Include custom fields from schemas mentioned in customFieldMask.+    | UGPFull+      -- ^ @full@+      -- Include all fields associated with this user.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable UsersGetProjection++instance FromText UsersGetProjection where+    fromText = \case+        "basic" -> Just UGPBasic+        "custom" -> Just UGPCustom+        "full" -> Just UGPFull+        _ -> Nothing++instance ToText UsersGetProjection where+    toText = \case+        UGPBasic -> "basic"+        UGPCustom -> "custom"+        UGPFull -> "full"++instance FromJSON UsersGetProjection where+    parseJSON = parseJSONText "UsersGetProjection"++instance ToJSON UsersGetProjection where+    toJSON = toJSONText++-- | Restrict information returned to a set of selected fields.+data MobileDevicesListProjection+    = MDLPBasic+      -- ^ @BASIC@+      -- Includes only the basic metadata fields (e.g., deviceId, model, status,+      -- type, and status)+    | MDLPFull+      -- ^ @FULL@+      -- Includes all metadata fields+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable MobileDevicesListProjection++instance FromText MobileDevicesListProjection where+    fromText = \case+        "BASIC" -> Just MDLPBasic+        "FULL" -> Just MDLPFull+        _ -> Nothing++instance ToText MobileDevicesListProjection where+    toText = \case+        MDLPBasic -> "BASIC"+        MDLPFull -> "FULL"++instance FromJSON MobileDevicesListProjection where+    parseJSON = parseJSONText "MobileDevicesListProjection"++instance ToJSON MobileDevicesListProjection where+    toJSON = toJSONText++-- | Column to use for sorting results+data MobileDevicesListOrderBy+    = MDLOBDeviceId+      -- ^ @deviceId@+      -- Mobile Device serial number.+    | MDLOBEmail+      -- ^ @email@+      -- Owner user email.+    | MDLOBLastSync+      -- ^ @lastSync@+      -- Last policy settings sync date time of the device.+    | MDLOBModel+      -- ^ @model@+      -- Mobile Device model.+    | MDLOBName+      -- ^ @name@+      -- Owner user name.+    | MDLOBOS+      -- ^ @os@+      -- Mobile operating system.+    | MDLOBStatus+      -- ^ @status@+      -- Status of the device.+    | MDLOBType+      -- ^ @type@+      -- Type of the device.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable MobileDevicesListOrderBy++instance FromText MobileDevicesListOrderBy where+    fromText = \case+        "deviceId" -> Just MDLOBDeviceId+        "email" -> Just MDLOBEmail+        "lastSync" -> Just MDLOBLastSync+        "model" -> Just MDLOBModel+        "name" -> Just MDLOBName+        "os" -> Just MDLOBOS+        "status" -> Just MDLOBStatus+        "type" -> Just MDLOBType+        _ -> Nothing++instance ToText MobileDevicesListOrderBy where+    toText = \case+        MDLOBDeviceId -> "deviceId"+        MDLOBEmail -> "email"+        MDLOBLastSync -> "lastSync"+        MDLOBModel -> "model"+        MDLOBName -> "name"+        MDLOBOS -> "os"+        MDLOBStatus -> "status"+        MDLOBType -> "type"++instance FromJSON MobileDevicesListOrderBy where+    parseJSON = parseJSONText "MobileDevicesListOrderBy"++instance ToJSON MobileDevicesListOrderBy where+    toJSON = toJSONText++-- | Whether to return results in ascending or descending order.+data UsersListSortOrder+    = ULSOAscending+      -- ^ @ASCENDING@+      -- Ascending order.+    | ULSODescending+      -- ^ @DESCENDING@+      -- Descending order.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable UsersListSortOrder++instance FromText UsersListSortOrder where+    fromText = \case+        "ASCENDING" -> Just ULSOAscending+        "DESCENDING" -> Just ULSODescending+        _ -> Nothing++instance ToText UsersListSortOrder where+    toText = \case+        ULSOAscending -> "ASCENDING"+        ULSODescending -> "DESCENDING"++instance FromJSON UsersListSortOrder where+    parseJSON = parseJSONText "UsersListSortOrder"++instance ToJSON UsersListSortOrder where+    toJSON = toJSONText++-- | Whether to return results in ascending or descending order. Only of use+-- when orderBy is also used+data ChromeosDevicesListSortOrder+    = CDLSOAscending+      -- ^ @ASCENDING@+      -- Ascending order.+    | CDLSODescending+      -- ^ @DESCENDING@+      -- Descending order.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ChromeosDevicesListSortOrder++instance FromText ChromeosDevicesListSortOrder where+    fromText = \case+        "ASCENDING" -> Just CDLSOAscending+        "DESCENDING" -> Just CDLSODescending+        _ -> Nothing++instance ToText ChromeosDevicesListSortOrder where+    toText = \case+        CDLSOAscending -> "ASCENDING"+        CDLSODescending -> "DESCENDING"++instance FromJSON ChromeosDevicesListSortOrder where+    parseJSON = parseJSONText "ChromeosDevicesListSortOrder"++instance ToJSON ChromeosDevicesListSortOrder where+    toJSON = toJSONText++-- | Whether to return results in ascending or descending order.+data UsersWatchSortOrder+    = UWSOAscending+      -- ^ @ASCENDING@+      -- Ascending order.+    | UWSODescending+      -- ^ @DESCENDING@+      -- Descending order.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable UsersWatchSortOrder++instance FromText UsersWatchSortOrder where+    fromText = \case+        "ASCENDING" -> Just UWSOAscending+        "DESCENDING" -> Just UWSODescending+        _ -> Nothing++instance ToText UsersWatchSortOrder where+    toText = \case+        UWSOAscending -> "ASCENDING"+        UWSODescending -> "DESCENDING"++instance FromJSON UsersWatchSortOrder where+    parseJSON = parseJSONText "UsersWatchSortOrder"++instance ToJSON UsersWatchSortOrder where+    toJSON = toJSONText++-- | What subset of fields to fetch for this user.+data UsersListProjection+    = ULPBasic+      -- ^ @basic@+      -- Do not include any custom fields for the user.+    | ULPCustom+      -- ^ @custom@+      -- Include custom fields from schemas mentioned in customFieldMask.+    | ULPFull+      -- ^ @full@+      -- Include all fields associated with this user.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable UsersListProjection++instance FromText UsersListProjection where+    fromText = \case+        "basic" -> Just ULPBasic+        "custom" -> Just ULPCustom+        "full" -> Just ULPFull+        _ -> Nothing++instance ToText UsersListProjection where+    toText = \case+        ULPBasic -> "basic"+        ULPCustom -> "custom"+        ULPFull -> "full"++instance FromJSON UsersListProjection where+    parseJSON = parseJSONText "UsersListProjection"++instance ToJSON UsersListProjection where+    toJSON = toJSONText++-- | Restrict information returned to a set of selected fields.+data ChromeosDevicesUpdateProjection+    = CDUPBasic+      -- ^ @BASIC@+      -- Includes only the basic metadata fields (e.g., deviceId, serialNumber,+      -- status, and user)+    | CDUPFull+      -- ^ @FULL@+      -- Includes all metadata fields+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ChromeosDevicesUpdateProjection++instance FromText ChromeosDevicesUpdateProjection where+    fromText = \case+        "BASIC" -> Just CDUPBasic+        "FULL" -> Just CDUPFull+        _ -> Nothing++instance ToText ChromeosDevicesUpdateProjection where+    toText = \case+        CDUPBasic -> "BASIC"+        CDUPFull -> "FULL"++instance FromJSON ChromeosDevicesUpdateProjection where+    parseJSON = parseJSONText "ChromeosDevicesUpdateProjection"++instance ToJSON ChromeosDevicesUpdateProjection where+    toJSON = toJSONText++-- | Restrict information returned to a set of selected fields.+data MobileDevicesGetProjection+    = MDGPBasic+      -- ^ @BASIC@+      -- Includes only the basic metadata fields (e.g., deviceId, model, status,+      -- type, and status)+    | MDGPFull+      -- ^ @FULL@+      -- Includes all metadata fields+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable MobileDevicesGetProjection++instance FromText MobileDevicesGetProjection where+    fromText = \case+        "BASIC" -> Just MDGPBasic+        "FULL" -> Just MDGPFull+        _ -> Nothing++instance ToText MobileDevicesGetProjection where+    toText = \case+        MDGPBasic -> "BASIC"+        MDGPFull -> "FULL"++instance FromJSON MobileDevicesGetProjection where+    parseJSON = parseJSONText "MobileDevicesGetProjection"++instance ToJSON MobileDevicesGetProjection where+    toJSON = toJSONText++-- | Column to use for sorting results+data ChromeosDevicesListOrderBy+    = AnnotatedLocation+      -- ^ @annotatedLocation@+      -- Chromebook location as annotated by the administrator.+    | AnnotatedUser+      -- ^ @annotatedUser@+      -- Chromebook user as annotated by administrator.+    | LastSync+      -- ^ @lastSync@+      -- Chromebook last sync.+    | Notes+      -- ^ @notes@+      -- Chromebook notes as annotated by the administrator.+    | SerialNumber+      -- ^ @serialNumber@+      -- Chromebook Serial Number.+    | Status+      -- ^ @status@+      -- Chromebook status.+    | SupportEndDate+      -- ^ @supportEndDate@+      -- Chromebook support end date.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ChromeosDevicesListOrderBy++instance FromText ChromeosDevicesListOrderBy where+    fromText = \case+        "annotatedLocation" -> Just AnnotatedLocation+        "annotatedUser" -> Just AnnotatedUser+        "lastSync" -> Just LastSync+        "notes" -> Just Notes+        "serialNumber" -> Just SerialNumber+        "status" -> Just Status+        "supportEndDate" -> Just SupportEndDate+        _ -> Nothing++instance ToText ChromeosDevicesListOrderBy where+    toText = \case+        AnnotatedLocation -> "annotatedLocation"+        AnnotatedUser -> "annotatedUser"+        LastSync -> "lastSync"+        Notes -> "notes"+        SerialNumber -> "serialNumber"+        Status -> "status"+        SupportEndDate -> "supportEndDate"++instance FromJSON ChromeosDevicesListOrderBy where+    parseJSON = parseJSONText "ChromeosDevicesListOrderBy"++instance ToJSON ChromeosDevicesListOrderBy where+    toJSON = toJSONText++-- | What subset of fields to fetch for this user.+data UsersWatchProjection+    = UWPBasic+      -- ^ @basic@+      -- Do not include any custom fields for the user.+    | UWPCustom+      -- ^ @custom@+      -- Include custom fields from schemas mentioned in customFieldMask.+    | UWPFull+      -- ^ @full@+      -- Include all fields associated with this user.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable UsersWatchProjection++instance FromText UsersWatchProjection where+    fromText = \case+        "basic" -> Just UWPBasic+        "custom" -> Just UWPCustom+        "full" -> Just UWPFull+        _ -> Nothing++instance ToText UsersWatchProjection where+    toText = \case+        UWPBasic -> "basic"+        UWPCustom -> "custom"+        UWPFull -> "full"++instance FromJSON UsersWatchProjection where+    parseJSON = parseJSONText "UsersWatchProjection"++instance ToJSON UsersWatchProjection where+    toJSON = toJSONText++-- | Column to use for sorting results+data UsersWatchOrderBy+    = UWOBEmail+      -- ^ @email@+      -- Primary email of the user.+    | UWOBFamilyName+      -- ^ @familyName@+      -- User\'s family name.+    | UWOBGivenName+      -- ^ @givenName@+      -- User\'s given name.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable UsersWatchOrderBy++instance FromText UsersWatchOrderBy where+    fromText = \case+        "email" -> Just UWOBEmail+        "familyName" -> Just UWOBFamilyName+        "givenName" -> Just UWOBGivenName+        _ -> Nothing++instance ToText UsersWatchOrderBy where+    toText = \case+        UWOBEmail -> "email"+        UWOBFamilyName -> "familyName"+        UWOBGivenName -> "givenName"++instance FromJSON UsersWatchOrderBy where+    parseJSON = parseJSONText "UsersWatchOrderBy"++instance ToJSON UsersWatchOrderBy where+    toJSON = toJSONText++-- | Restrict information returned to a set of selected fields.+data ChromeosDevicesListProjection+    = CDLPBasic+      -- ^ @BASIC@+      -- Includes only the basic metadata fields (e.g., deviceId, serialNumber,+      -- status, and user)+    | CDLPFull+      -- ^ @FULL@+      -- Includes all metadata fields+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ChromeosDevicesListProjection++instance FromText ChromeosDevicesListProjection where+    fromText = \case+        "BASIC" -> Just CDLPBasic+        "FULL" -> Just CDLPFull+        _ -> Nothing++instance ToText ChromeosDevicesListProjection where+    toText = \case+        CDLPBasic -> "BASIC"+        CDLPFull -> "FULL"++instance FromJSON ChromeosDevicesListProjection where+    parseJSON = parseJSONText "ChromeosDevicesListProjection"++instance ToJSON ChromeosDevicesListProjection where+    toJSON = toJSONText++-- | Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user.+data UsersGetViewType+    = UGVTAdminView+      -- ^ @admin_view@+      -- Fetches the ADMIN_VIEW of the user.+    | UGVTDomainPublic+      -- ^ @domain_public@+      -- Fetches the DOMAIN_PUBLIC view of the user.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable UsersGetViewType++instance FromText UsersGetViewType where+    fromText = \case+        "admin_view" -> Just UGVTAdminView+        "domain_public" -> Just UGVTDomainPublic+        _ -> Nothing++instance ToText UsersGetViewType where+    toText = \case+        UGVTAdminView -> "admin_view"+        UGVTDomainPublic -> "domain_public"++instance FromJSON UsersGetViewType where+    parseJSON = parseJSONText "UsersGetViewType"++instance ToJSON UsersGetViewType where+    toJSON = toJSONText
+ gen/Network/Google/Resource/Admin/Channels/Stop.hs view
@@ -0,0 +1,86 @@+{-# 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.Admin.Channels.Stop+-- 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)+--+-- Stop watching resources through this channel+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @admin.channels.stop@.+module Network.Google.Resource.Admin.Channels.Stop+    (+    -- * REST Resource+      ChannelsStopResource++    -- * Creating a Request+    , channelsStop+    , ChannelsStop++    -- * Request Lenses+    , csPayload+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @admin.channels.stop@ method which the+-- 'ChannelsStop' request conforms to.+type ChannelsStopResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "admin" :>+             "directory_v1" :>+               "channels" :>+                 "stop" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Channel :> Post '[JSON] ()++-- | Stop watching resources through this channel+--+-- /See:/ 'channelsStop' smart constructor.+newtype ChannelsStop = ChannelsStop+    { _csPayload :: Channel+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChannelsStop' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csPayload'+channelsStop+    :: Channel -- ^ 'csPayload'+    -> ChannelsStop+channelsStop pCsPayload_ =+    ChannelsStop+    { _csPayload = pCsPayload_+    }++-- | Multipart request metadata.+csPayload :: Lens' ChannelsStop Channel+csPayload+  = lens _csPayload (\ s a -> s{_csPayload = a})++instance GoogleRequest ChannelsStop where+        type Rs ChannelsStop = ()+        requestClient ChannelsStop{..}+          = go (Just AltJSON) _csPayload directoryService+          where go+                  = buildClient (Proxy :: Proxy ChannelsStopResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Asps/Delete.hs view
@@ -0,0 +1,99 @@+{-# 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.Directory.Asps.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)+--+-- Delete an ASP issued by a user.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.asps.delete@.+module Network.Google.Resource.Directory.Asps.Delete+    (+    -- * REST Resource+      AspsDeleteResource++    -- * Creating a Request+    , aspsDelete+    , AspsDelete++    -- * Request Lenses+    , adCodeId+    , adUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.asps.delete@ method which the+-- 'AspsDelete' request conforms to.+type AspsDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "asps" :>+                 Capture "codeId" (Textual Int32) :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Delete an ASP issued by a user.+--+-- /See:/ 'aspsDelete' smart constructor.+data AspsDelete = AspsDelete+    { _adCodeId  :: !(Textual Int32)+    , _adUserKey :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AspsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'adCodeId'+--+-- * 'adUserKey'+aspsDelete+    :: Int32 -- ^ 'adCodeId'+    -> Text -- ^ 'adUserKey'+    -> AspsDelete+aspsDelete pAdCodeId_ pAdUserKey_ =+    AspsDelete+    { _adCodeId = _Coerce # pAdCodeId_+    , _adUserKey = pAdUserKey_+    }++-- | The unique ID of the ASP to be deleted.+adCodeId :: Lens' AspsDelete Int32+adCodeId+  = lens _adCodeId (\ s a -> s{_adCodeId = a}) .+      _Coerce++-- | Identifies the user in the API request. The value can be the user\'s+-- primary email address, alias email address, or unique user ID.+adUserKey :: Lens' AspsDelete Text+adUserKey+  = lens _adUserKey (\ s a -> s{_adUserKey = a})++instance GoogleRequest AspsDelete where+        type Rs AspsDelete = ()+        requestClient AspsDelete{..}+          = go _adUserKey _adCodeId (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy AspsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Asps/Get.hs view
@@ -0,0 +1,98 @@+{-# 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.Directory.Asps.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)+--+-- Get information about an ASP issued by a user.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.asps.get@.+module Network.Google.Resource.Directory.Asps.Get+    (+    -- * REST Resource+      AspsGetResource++    -- * Creating a Request+    , aspsGet+    , AspsGet++    -- * Request Lenses+    , agCodeId+    , agUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.asps.get@ method which the+-- 'AspsGet' request conforms to.+type AspsGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "asps" :>+                 Capture "codeId" (Textual Int32) :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Asp++-- | Get information about an ASP issued by a user.+--+-- /See:/ 'aspsGet' smart constructor.+data AspsGet = AspsGet+    { _agCodeId  :: !(Textual Int32)+    , _agUserKey :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AspsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'agCodeId'+--+-- * 'agUserKey'+aspsGet+    :: Int32 -- ^ 'agCodeId'+    -> Text -- ^ 'agUserKey'+    -> AspsGet+aspsGet pAgCodeId_ pAgUserKey_ =+    AspsGet+    { _agCodeId = _Coerce # pAgCodeId_+    , _agUserKey = pAgUserKey_+    }++-- | The unique ID of the ASP.+agCodeId :: Lens' AspsGet Int32+agCodeId+  = lens _agCodeId (\ s a -> s{_agCodeId = a}) .+      _Coerce++-- | Identifies the user in the API request. The value can be the user\'s+-- primary email address, alias email address, or unique user ID.+agUserKey :: Lens' AspsGet Text+agUserKey+  = lens _agUserKey (\ s a -> s{_agUserKey = a})++instance GoogleRequest AspsGet where+        type Rs AspsGet = Asp+        requestClient AspsGet{..}+          = go _agUserKey _agCodeId (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy AspsGetResource) mempty
+ gen/Network/Google/Resource/Directory/Asps/List.hs view
@@ -0,0 +1,85 @@+{-# 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.Directory.Asps.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)+--+-- List the ASPs issued by a user.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.asps.list@.+module Network.Google.Resource.Directory.Asps.List+    (+    -- * REST Resource+      AspsListResource++    -- * Creating a Request+    , aspsList+    , AspsList++    -- * Request Lenses+    , alUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.asps.list@ method which the+-- 'AspsList' request conforms to.+type AspsListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "asps" :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Asps++-- | List the ASPs issued by a user.+--+-- /See:/ 'aspsList' smart constructor.+newtype AspsList = AspsList+    { _alUserKey :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AspsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'alUserKey'+aspsList+    :: Text -- ^ 'alUserKey'+    -> AspsList+aspsList pAlUserKey_ =+    AspsList+    { _alUserKey = pAlUserKey_+    }++-- | Identifies the user in the API request. The value can be the user\'s+-- primary email address, alias email address, or unique user ID.+alUserKey :: Lens' AspsList Text+alUserKey+  = lens _alUserKey (\ s a -> s{_alUserKey = a})++instance GoogleRequest AspsList where+        type Rs AspsList = Asps+        requestClient AspsList{..}+          = go _alUserKey (Just AltJSON) directoryService+          where go+                  = buildClient (Proxy :: Proxy AspsListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/ChromeosDevices/Get.hs view
@@ -0,0 +1,115 @@+{-# 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.Directory.ChromeosDevices.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)+--+-- Retrieve Chrome OS Device+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.chromeosdevices.get@.+module Network.Google.Resource.Directory.ChromeosDevices.Get+    (+    -- * REST Resource+      ChromeosDevicesGetResource++    -- * Creating a Request+    , chromeosDevicesGet+    , ChromeosDevicesGet++    -- * Request Lenses+    , cdgCustomerId+    , cdgDeviceId+    , cdgProjection+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.chromeosdevices.get@ method which the+-- 'ChromeosDevicesGet' request conforms to.+type ChromeosDevicesGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "devices" :>+                 "chromeos" :>+                   Capture "deviceId" Text :>+                     QueryParam "projection" ChromeosDevicesGetProjection+                       :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] ChromeOSDevice++-- | Retrieve Chrome OS Device+--+-- /See:/ 'chromeosDevicesGet' smart constructor.+data ChromeosDevicesGet = ChromeosDevicesGet+    { _cdgCustomerId :: !Text+    , _cdgDeviceId   :: !Text+    , _cdgProjection :: !(Maybe ChromeosDevicesGetProjection)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChromeosDevicesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdgCustomerId'+--+-- * 'cdgDeviceId'+--+-- * 'cdgProjection'+chromeosDevicesGet+    :: Text -- ^ 'cdgCustomerId'+    -> Text -- ^ 'cdgDeviceId'+    -> ChromeosDevicesGet+chromeosDevicesGet pCdgCustomerId_ pCdgDeviceId_ =+    ChromeosDevicesGet+    { _cdgCustomerId = pCdgCustomerId_+    , _cdgDeviceId = pCdgDeviceId_+    , _cdgProjection = Nothing+    }++-- | Immutable id of the Google Apps account+cdgCustomerId :: Lens' ChromeosDevicesGet Text+cdgCustomerId+  = lens _cdgCustomerId+      (\ s a -> s{_cdgCustomerId = a})++-- | Immutable id of Chrome OS Device+cdgDeviceId :: Lens' ChromeosDevicesGet Text+cdgDeviceId+  = lens _cdgDeviceId (\ s a -> s{_cdgDeviceId = a})++-- | Restrict information returned to a set of selected fields.+cdgProjection :: Lens' ChromeosDevicesGet (Maybe ChromeosDevicesGetProjection)+cdgProjection+  = lens _cdgProjection+      (\ s a -> s{_cdgProjection = a})++instance GoogleRequest ChromeosDevicesGet where+        type Rs ChromeosDevicesGet = ChromeOSDevice+        requestClient ChromeosDevicesGet{..}+          = go _cdgCustomerId _cdgDeviceId _cdgProjection+              (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ChromeosDevicesGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/ChromeosDevices/List.hs view
@@ -0,0 +1,166 @@+{-# 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.Directory.ChromeosDevices.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)+--+-- Retrieve all Chrome OS Devices of a customer (paginated)+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.chromeosdevices.list@.+module Network.Google.Resource.Directory.ChromeosDevices.List+    (+    -- * REST Resource+      ChromeosDevicesListResource++    -- * Creating a Request+    , chromeosDevicesList+    , ChromeosDevicesList++    -- * Request Lenses+    , cdlOrderBy+    , cdlCustomerId+    , cdlSortOrder+    , cdlQuery+    , cdlProjection+    , cdlPageToken+    , cdlMaxResults+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.chromeosdevices.list@ method which the+-- 'ChromeosDevicesList' request conforms to.+type ChromeosDevicesListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "devices" :>+                 "chromeos" :>+                   QueryParam "orderBy" ChromeosDevicesListOrderBy :>+                     QueryParam "sortOrder" ChromeosDevicesListSortOrder+                       :>+                       QueryParam "query" Text :>+                         QueryParam "projection" ChromeosDevicesListProjection+                           :>+                           QueryParam "pageToken" Text :>+                             QueryParam "maxResults" (Textual Int32) :>+                               QueryParam "alt" AltJSON :>+                                 Get '[JSON] ChromeOSDevices++-- | Retrieve all Chrome OS Devices of a customer (paginated)+--+-- /See:/ 'chromeosDevicesList' smart constructor.+data ChromeosDevicesList = ChromeosDevicesList+    { _cdlOrderBy    :: !(Maybe ChromeosDevicesListOrderBy)+    , _cdlCustomerId :: !Text+    , _cdlSortOrder  :: !(Maybe ChromeosDevicesListSortOrder)+    , _cdlQuery      :: !(Maybe Text)+    , _cdlProjection :: !(Maybe ChromeosDevicesListProjection)+    , _cdlPageToken  :: !(Maybe Text)+    , _cdlMaxResults :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChromeosDevicesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdlOrderBy'+--+-- * 'cdlCustomerId'+--+-- * 'cdlSortOrder'+--+-- * 'cdlQuery'+--+-- * 'cdlProjection'+--+-- * 'cdlPageToken'+--+-- * 'cdlMaxResults'+chromeosDevicesList+    :: Text -- ^ 'cdlCustomerId'+    -> ChromeosDevicesList+chromeosDevicesList pCdlCustomerId_ =+    ChromeosDevicesList+    { _cdlOrderBy = Nothing+    , _cdlCustomerId = pCdlCustomerId_+    , _cdlSortOrder = Nothing+    , _cdlQuery = Nothing+    , _cdlProjection = Nothing+    , _cdlPageToken = Nothing+    , _cdlMaxResults = Nothing+    }++-- | Column to use for sorting results+cdlOrderBy :: Lens' ChromeosDevicesList (Maybe ChromeosDevicesListOrderBy)+cdlOrderBy+  = lens _cdlOrderBy (\ s a -> s{_cdlOrderBy = a})++-- | Immutable id of the Google Apps account+cdlCustomerId :: Lens' ChromeosDevicesList Text+cdlCustomerId+  = lens _cdlCustomerId+      (\ s a -> s{_cdlCustomerId = a})++-- | Whether to return results in ascending or descending order. Only of use+-- when orderBy is also used+cdlSortOrder :: Lens' ChromeosDevicesList (Maybe ChromeosDevicesListSortOrder)+cdlSortOrder+  = lens _cdlSortOrder (\ s a -> s{_cdlSortOrder = a})++-- | Search string in the format given at+-- http:\/\/support.google.com\/chromeos\/a\/bin\/answer.py?hl=en&answer=1698333+cdlQuery :: Lens' ChromeosDevicesList (Maybe Text)+cdlQuery = lens _cdlQuery (\ s a -> s{_cdlQuery = a})++-- | Restrict information returned to a set of selected fields.+cdlProjection :: Lens' ChromeosDevicesList (Maybe ChromeosDevicesListProjection)+cdlProjection+  = lens _cdlProjection+      (\ s a -> s{_cdlProjection = a})++-- | Token to specify next page in the list+cdlPageToken :: Lens' ChromeosDevicesList (Maybe Text)+cdlPageToken+  = lens _cdlPageToken (\ s a -> s{_cdlPageToken = a})++-- | Maximum number of results to return. Default is 100+cdlMaxResults :: Lens' ChromeosDevicesList (Maybe Int32)+cdlMaxResults+  = lens _cdlMaxResults+      (\ s a -> s{_cdlMaxResults = a})+      . mapping _Coerce++instance GoogleRequest ChromeosDevicesList where+        type Rs ChromeosDevicesList = ChromeOSDevices+        requestClient ChromeosDevicesList{..}+          = go _cdlCustomerId _cdlOrderBy _cdlSortOrder+              _cdlQuery+              _cdlProjection+              _cdlPageToken+              _cdlMaxResults+              (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ChromeosDevicesListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/ChromeosDevices/Patch.hs view
@@ -0,0 +1,129 @@+{-# 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.Directory.ChromeosDevices.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)+--+-- Update Chrome OS Device. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.chromeosdevices.patch@.+module Network.Google.Resource.Directory.ChromeosDevices.Patch+    (+    -- * REST Resource+      ChromeosDevicesPatchResource++    -- * Creating a Request+    , chromeosDevicesPatch+    , ChromeosDevicesPatch++    -- * Request Lenses+    , cdpPayload+    , cdpCustomerId+    , cdpDeviceId+    , cdpProjection+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.chromeosdevices.patch@ method which the+-- 'ChromeosDevicesPatch' request conforms to.+type ChromeosDevicesPatchResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "devices" :>+                 "chromeos" :>+                   Capture "deviceId" Text :>+                     QueryParam "projection"+                       ChromeosDevicesPatchProjection+                       :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] ChromeOSDevice :>+                           Patch '[JSON] ChromeOSDevice++-- | Update Chrome OS Device. This method supports patch semantics.+--+-- /See:/ 'chromeosDevicesPatch' smart constructor.+data ChromeosDevicesPatch = ChromeosDevicesPatch+    { _cdpPayload    :: !ChromeOSDevice+    , _cdpCustomerId :: !Text+    , _cdpDeviceId   :: !Text+    , _cdpProjection :: !(Maybe ChromeosDevicesPatchProjection)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChromeosDevicesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdpPayload'+--+-- * 'cdpCustomerId'+--+-- * 'cdpDeviceId'+--+-- * 'cdpProjection'+chromeosDevicesPatch+    :: ChromeOSDevice -- ^ 'cdpPayload'+    -> Text -- ^ 'cdpCustomerId'+    -> Text -- ^ 'cdpDeviceId'+    -> ChromeosDevicesPatch+chromeosDevicesPatch pCdpPayload_ pCdpCustomerId_ pCdpDeviceId_ =+    ChromeosDevicesPatch+    { _cdpPayload = pCdpPayload_+    , _cdpCustomerId = pCdpCustomerId_+    , _cdpDeviceId = pCdpDeviceId_+    , _cdpProjection = Nothing+    }++-- | Multipart request metadata.+cdpPayload :: Lens' ChromeosDevicesPatch ChromeOSDevice+cdpPayload+  = lens _cdpPayload (\ s a -> s{_cdpPayload = a})++-- | Immutable id of the Google Apps account+cdpCustomerId :: Lens' ChromeosDevicesPatch Text+cdpCustomerId+  = lens _cdpCustomerId+      (\ s a -> s{_cdpCustomerId = a})++-- | Immutable id of Chrome OS Device+cdpDeviceId :: Lens' ChromeosDevicesPatch Text+cdpDeviceId+  = lens _cdpDeviceId (\ s a -> s{_cdpDeviceId = a})++-- | Restrict information returned to a set of selected fields.+cdpProjection :: Lens' ChromeosDevicesPatch (Maybe ChromeosDevicesPatchProjection)+cdpProjection+  = lens _cdpProjection+      (\ s a -> s{_cdpProjection = a})++instance GoogleRequest ChromeosDevicesPatch where+        type Rs ChromeosDevicesPatch = ChromeOSDevice+        requestClient ChromeosDevicesPatch{..}+          = go _cdpCustomerId _cdpDeviceId _cdpProjection+              (Just AltJSON)+              _cdpPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ChromeosDevicesPatchResource)+                      mempty
+ gen/Network/Google/Resource/Directory/ChromeosDevices/Update.hs view
@@ -0,0 +1,129 @@+{-# 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.Directory.ChromeosDevices.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)+--+-- Update Chrome OS Device+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.chromeosdevices.update@.+module Network.Google.Resource.Directory.ChromeosDevices.Update+    (+    -- * REST Resource+      ChromeosDevicesUpdateResource++    -- * Creating a Request+    , chromeosDevicesUpdate+    , ChromeosDevicesUpdate++    -- * Request Lenses+    , cduPayload+    , cduCustomerId+    , cduDeviceId+    , cduProjection+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.chromeosdevices.update@ method which the+-- 'ChromeosDevicesUpdate' request conforms to.+type ChromeosDevicesUpdateResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "devices" :>+                 "chromeos" :>+                   Capture "deviceId" Text :>+                     QueryParam "projection"+                       ChromeosDevicesUpdateProjection+                       :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] ChromeOSDevice :>+                           Put '[JSON] ChromeOSDevice++-- | Update Chrome OS Device+--+-- /See:/ 'chromeosDevicesUpdate' smart constructor.+data ChromeosDevicesUpdate = ChromeosDevicesUpdate+    { _cduPayload    :: !ChromeOSDevice+    , _cduCustomerId :: !Text+    , _cduDeviceId   :: !Text+    , _cduProjection :: !(Maybe ChromeosDevicesUpdateProjection)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChromeosDevicesUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cduPayload'+--+-- * 'cduCustomerId'+--+-- * 'cduDeviceId'+--+-- * 'cduProjection'+chromeosDevicesUpdate+    :: ChromeOSDevice -- ^ 'cduPayload'+    -> Text -- ^ 'cduCustomerId'+    -> Text -- ^ 'cduDeviceId'+    -> ChromeosDevicesUpdate+chromeosDevicesUpdate pCduPayload_ pCduCustomerId_ pCduDeviceId_ =+    ChromeosDevicesUpdate+    { _cduPayload = pCduPayload_+    , _cduCustomerId = pCduCustomerId_+    , _cduDeviceId = pCduDeviceId_+    , _cduProjection = Nothing+    }++-- | Multipart request metadata.+cduPayload :: Lens' ChromeosDevicesUpdate ChromeOSDevice+cduPayload+  = lens _cduPayload (\ s a -> s{_cduPayload = a})++-- | Immutable id of the Google Apps account+cduCustomerId :: Lens' ChromeosDevicesUpdate Text+cduCustomerId+  = lens _cduCustomerId+      (\ s a -> s{_cduCustomerId = a})++-- | Immutable id of Chrome OS Device+cduDeviceId :: Lens' ChromeosDevicesUpdate Text+cduDeviceId+  = lens _cduDeviceId (\ s a -> s{_cduDeviceId = a})++-- | Restrict information returned to a set of selected fields.+cduProjection :: Lens' ChromeosDevicesUpdate (Maybe ChromeosDevicesUpdateProjection)+cduProjection+  = lens _cduProjection+      (\ s a -> s{_cduProjection = a})++instance GoogleRequest ChromeosDevicesUpdate where+        type Rs ChromeosDevicesUpdate = ChromeOSDevice+        requestClient ChromeosDevicesUpdate{..}+          = go _cduCustomerId _cduDeviceId _cduProjection+              (Just AltJSON)+              _cduPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy ChromeosDevicesUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Customers/Get.hs view
@@ -0,0 +1,84 @@+{-# 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.Directory.Customers.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)+--+-- Retrives a customer.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.customers.get@.+module Network.Google.Resource.Directory.Customers.Get+    (+    -- * REST Resource+      CustomersGetResource++    -- * Creating a Request+    , customersGet+    , CustomersGet++    -- * Request Lenses+    , cgCustomerKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.customers.get@ method which the+-- 'CustomersGet' request conforms to.+type CustomersGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customers" :>+             Capture "customerKey" Text :>+               QueryParam "alt" AltJSON :> Get '[JSON] Customer++-- | Retrives a customer.+--+-- /See:/ 'customersGet' smart constructor.+newtype CustomersGet = CustomersGet+    { _cgCustomerKey :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CustomersGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cgCustomerKey'+customersGet+    :: Text -- ^ 'cgCustomerKey'+    -> CustomersGet+customersGet pCgCustomerKey_ =+    CustomersGet+    { _cgCustomerKey = pCgCustomerKey_+    }++-- | Id of the customer to be retrieved+cgCustomerKey :: Lens' CustomersGet Text+cgCustomerKey+  = lens _cgCustomerKey+      (\ s a -> s{_cgCustomerKey = a})++instance GoogleRequest CustomersGet where+        type Rs CustomersGet = Customer+        requestClient CustomersGet{..}+          = go _cgCustomerKey (Just AltJSON) directoryService+          where go+                  = buildClient (Proxy :: Proxy CustomersGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Customers/Patch.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Customers.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 a customer. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.customers.patch@.+module Network.Google.Resource.Directory.Customers.Patch+    (+    -- * REST Resource+      CustomersPatchResource++    -- * Creating a Request+    , customersPatch+    , CustomersPatch++    -- * Request Lenses+    , cpCustomerKey+    , cpPayload+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.customers.patch@ method which the+-- 'CustomersPatch' request conforms to.+type CustomersPatchResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customers" :>+             Capture "customerKey" Text :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] Customer :> Patch '[JSON] Customer++-- | Updates a customer. This method supports patch semantics.+--+-- /See:/ 'customersPatch' smart constructor.+data CustomersPatch = CustomersPatch+    { _cpCustomerKey :: !Text+    , _cpPayload     :: !Customer+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CustomersPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpCustomerKey'+--+-- * 'cpPayload'+customersPatch+    :: Text -- ^ 'cpCustomerKey'+    -> Customer -- ^ 'cpPayload'+    -> CustomersPatch+customersPatch pCpCustomerKey_ pCpPayload_ =+    CustomersPatch+    { _cpCustomerKey = pCpCustomerKey_+    , _cpPayload = pCpPayload_+    }++-- | Id of the customer to be updated+cpCustomerKey :: Lens' CustomersPatch Text+cpCustomerKey+  = lens _cpCustomerKey+      (\ s a -> s{_cpCustomerKey = a})++-- | Multipart request metadata.+cpPayload :: Lens' CustomersPatch Customer+cpPayload+  = lens _cpPayload (\ s a -> s{_cpPayload = a})++instance GoogleRequest CustomersPatch where+        type Rs CustomersPatch = Customer+        requestClient CustomersPatch{..}+          = go _cpCustomerKey (Just AltJSON) _cpPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy CustomersPatchResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Customers/Update.hs view
@@ -0,0 +1,98 @@+{-# 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.Directory.Customers.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 customer.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.customers.update@.+module Network.Google.Resource.Directory.Customers.Update+    (+    -- * REST Resource+      CustomersUpdateResource++    -- * Creating a Request+    , customersUpdate+    , CustomersUpdate++    -- * Request Lenses+    , cuCustomerKey+    , cuPayload+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.customers.update@ method which the+-- 'CustomersUpdate' request conforms to.+type CustomersUpdateResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customers" :>+             Capture "customerKey" Text :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] Customer :> Put '[JSON] Customer++-- | Updates a customer.+--+-- /See:/ 'customersUpdate' smart constructor.+data CustomersUpdate = CustomersUpdate+    { _cuCustomerKey :: !Text+    , _cuPayload     :: !Customer+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CustomersUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cuCustomerKey'+--+-- * 'cuPayload'+customersUpdate+    :: Text -- ^ 'cuCustomerKey'+    -> Customer -- ^ 'cuPayload'+    -> CustomersUpdate+customersUpdate pCuCustomerKey_ pCuPayload_ =+    CustomersUpdate+    { _cuCustomerKey = pCuCustomerKey_+    , _cuPayload = pCuPayload_+    }++-- | Id of the customer to be updated+cuCustomerKey :: Lens' CustomersUpdate Text+cuCustomerKey+  = lens _cuCustomerKey+      (\ s a -> s{_cuCustomerKey = a})++-- | Multipart request metadata.+cuPayload :: Lens' CustomersUpdate Customer+cuPayload+  = lens _cuPayload (\ s a -> s{_cuPayload = a})++instance GoogleRequest CustomersUpdate where+        type Rs CustomersUpdate = Customer+        requestClient CustomersUpdate{..}+          = go _cuCustomerKey (Just AltJSON) _cuPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy CustomersUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Directory/DomainAliases/Delete.hs view
@@ -0,0 +1,99 @@+{-# 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.Directory.DomainAliases.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 Domain Alias of the customer.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.domainAliases.delete@.+module Network.Google.Resource.Directory.DomainAliases.Delete+    (+    -- * REST Resource+      DomainAliasesDeleteResource++    -- * Creating a Request+    , domainAliasesDelete+    , DomainAliasesDelete++    -- * Request Lenses+    , dadDomainAliasName+    , dadCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.domainAliases.delete@ method which the+-- 'DomainAliasesDelete' request conforms to.+type DomainAliasesDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "domainaliases" :>+                 Capture "domainAliasName" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes a Domain Alias of the customer.+--+-- /See:/ 'domainAliasesDelete' smart constructor.+data DomainAliasesDelete = DomainAliasesDelete+    { _dadDomainAliasName :: !Text+    , _dadCustomer        :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DomainAliasesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dadDomainAliasName'+--+-- * 'dadCustomer'+domainAliasesDelete+    :: Text -- ^ 'dadDomainAliasName'+    -> Text -- ^ 'dadCustomer'+    -> DomainAliasesDelete+domainAliasesDelete pDadDomainAliasName_ pDadCustomer_ =+    DomainAliasesDelete+    { _dadDomainAliasName = pDadDomainAliasName_+    , _dadCustomer = pDadCustomer_+    }++-- | Name of domain alias to be retrieved.+dadDomainAliasName :: Lens' DomainAliasesDelete Text+dadDomainAliasName+  = lens _dadDomainAliasName+      (\ s a -> s{_dadDomainAliasName = a})++-- | Immutable id of the Google Apps account.+dadCustomer :: Lens' DomainAliasesDelete Text+dadCustomer+  = lens _dadCustomer (\ s a -> s{_dadCustomer = a})++instance GoogleRequest DomainAliasesDelete where+        type Rs DomainAliasesDelete = ()+        requestClient DomainAliasesDelete{..}+          = go _dadCustomer _dadDomainAliasName (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy DomainAliasesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/DomainAliases/Get.hs view
@@ -0,0 +1,99 @@+{-# 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.Directory.DomainAliases.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)+--+-- Retrieves a domain alias of the customer.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.domainAliases.get@.+module Network.Google.Resource.Directory.DomainAliases.Get+    (+    -- * REST Resource+      DomainAliasesGetResource++    -- * Creating a Request+    , domainAliasesGet+    , DomainAliasesGet++    -- * Request Lenses+    , dagDomainAliasName+    , dagCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.domainAliases.get@ method which the+-- 'DomainAliasesGet' request conforms to.+type DomainAliasesGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "domainaliases" :>+                 Capture "domainAliasName" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] DomainAlias++-- | Retrieves a domain alias of the customer.+--+-- /See:/ 'domainAliasesGet' smart constructor.+data DomainAliasesGet = DomainAliasesGet+    { _dagDomainAliasName :: !Text+    , _dagCustomer        :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DomainAliasesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dagDomainAliasName'+--+-- * 'dagCustomer'+domainAliasesGet+    :: Text -- ^ 'dagDomainAliasName'+    -> Text -- ^ 'dagCustomer'+    -> DomainAliasesGet+domainAliasesGet pDagDomainAliasName_ pDagCustomer_ =+    DomainAliasesGet+    { _dagDomainAliasName = pDagDomainAliasName_+    , _dagCustomer = pDagCustomer_+    }++-- | Name of domain alias to be retrieved.+dagDomainAliasName :: Lens' DomainAliasesGet Text+dagDomainAliasName+  = lens _dagDomainAliasName+      (\ s a -> s{_dagDomainAliasName = a})++-- | Immutable id of the Google Apps account.+dagCustomer :: Lens' DomainAliasesGet Text+dagCustomer+  = lens _dagCustomer (\ s a -> s{_dagCustomer = a})++instance GoogleRequest DomainAliasesGet where+        type Rs DomainAliasesGet = DomainAlias+        requestClient DomainAliasesGet{..}+          = go _dagCustomer _dagDomainAliasName (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy DomainAliasesGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/DomainAliases/Insert.hs view
@@ -0,0 +1,99 @@+{-# 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.Directory.DomainAliases.Insert+-- 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)+--+-- Inserts a Domain alias of the customer.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.domainAliases.insert@.+module Network.Google.Resource.Directory.DomainAliases.Insert+    (+    -- * REST Resource+      DomainAliasesInsertResource++    -- * Creating a Request+    , domainAliasesInsert+    , DomainAliasesInsert++    -- * Request Lenses+    , daiPayload+    , daiCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.domainAliases.insert@ method which the+-- 'DomainAliasesInsert' request conforms to.+type DomainAliasesInsertResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "domainaliases" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] DomainAlias :>+                     Post '[JSON] DomainAlias++-- | Inserts a Domain alias of the customer.+--+-- /See:/ 'domainAliasesInsert' smart constructor.+data DomainAliasesInsert = DomainAliasesInsert+    { _daiPayload  :: !DomainAlias+    , _daiCustomer :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DomainAliasesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'daiPayload'+--+-- * 'daiCustomer'+domainAliasesInsert+    :: DomainAlias -- ^ 'daiPayload'+    -> Text -- ^ 'daiCustomer'+    -> DomainAliasesInsert+domainAliasesInsert pDaiPayload_ pDaiCustomer_ =+    DomainAliasesInsert+    { _daiPayload = pDaiPayload_+    , _daiCustomer = pDaiCustomer_+    }++-- | Multipart request metadata.+daiPayload :: Lens' DomainAliasesInsert DomainAlias+daiPayload+  = lens _daiPayload (\ s a -> s{_daiPayload = a})++-- | Immutable id of the Google Apps account.+daiCustomer :: Lens' DomainAliasesInsert Text+daiCustomer+  = lens _daiCustomer (\ s a -> s{_daiCustomer = a})++instance GoogleRequest DomainAliasesInsert where+        type Rs DomainAliasesInsert = DomainAlias+        requestClient DomainAliasesInsert{..}+          = go _daiCustomer (Just AltJSON) _daiPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy DomainAliasesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Directory/DomainAliases/List.hs view
@@ -0,0 +1,98 @@+{-# 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.Directory.DomainAliases.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)+--+-- Lists the domain aliases of the customer.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.domainAliases.list@.+module Network.Google.Resource.Directory.DomainAliases.List+    (+    -- * REST Resource+      DomainAliasesListResource++    -- * Creating a Request+    , domainAliasesList+    , DomainAliasesList++    -- * Request Lenses+    , dalCustomer+    , dalParentDomainName+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.domainAliases.list@ method which the+-- 'DomainAliasesList' request conforms to.+type DomainAliasesListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "domainaliases" :>+                 QueryParam "parentDomainName" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] DomainAliases++-- | Lists the domain aliases of the customer.+--+-- /See:/ 'domainAliasesList' smart constructor.+data DomainAliasesList = DomainAliasesList+    { _dalCustomer         :: !Text+    , _dalParentDomainName :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DomainAliasesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dalCustomer'+--+-- * 'dalParentDomainName'+domainAliasesList+    :: Text -- ^ 'dalCustomer'+    -> DomainAliasesList+domainAliasesList pDalCustomer_ =+    DomainAliasesList+    { _dalCustomer = pDalCustomer_+    , _dalParentDomainName = Nothing+    }++-- | Immutable id of the Google Apps account.+dalCustomer :: Lens' DomainAliasesList Text+dalCustomer+  = lens _dalCustomer (\ s a -> s{_dalCustomer = a})++-- | Name of the parent domain for which domain aliases are to be fetched.+dalParentDomainName :: Lens' DomainAliasesList (Maybe Text)+dalParentDomainName+  = lens _dalParentDomainName+      (\ s a -> s{_dalParentDomainName = a})++instance GoogleRequest DomainAliasesList where+        type Rs DomainAliasesList = DomainAliases+        requestClient DomainAliasesList{..}+          = go _dalCustomer _dalParentDomainName (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy DomainAliasesListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Domains/Delete.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Domains.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 domain of the customer.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.domains.delete@.+module Network.Google.Resource.Directory.Domains.Delete+    (+    -- * REST Resource+      DomainsDeleteResource++    -- * Creating a Request+    , domainsDelete+    , DomainsDelete++    -- * Request Lenses+    , ddCustomer+    , ddDomainName+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.domains.delete@ method which the+-- 'DomainsDelete' request conforms to.+type DomainsDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "domains" :>+                 Capture "domainName" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes a domain of the customer.+--+-- /See:/ 'domainsDelete' smart constructor.+data DomainsDelete = DomainsDelete+    { _ddCustomer   :: !Text+    , _ddDomainName :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DomainsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddCustomer'+--+-- * 'ddDomainName'+domainsDelete+    :: Text -- ^ 'ddCustomer'+    -> Text -- ^ 'ddDomainName'+    -> DomainsDelete+domainsDelete pDdCustomer_ pDdDomainName_ =+    DomainsDelete+    { _ddCustomer = pDdCustomer_+    , _ddDomainName = pDdDomainName_+    }++-- | Immutable id of the Google Apps account.+ddCustomer :: Lens' DomainsDelete Text+ddCustomer+  = lens _ddCustomer (\ s a -> s{_ddCustomer = a})++-- | Name of domain to be deleted+ddDomainName :: Lens' DomainsDelete Text+ddDomainName+  = lens _ddDomainName (\ s a -> s{_ddDomainName = a})++instance GoogleRequest DomainsDelete where+        type Rs DomainsDelete = ()+        requestClient DomainsDelete{..}+          = go _ddCustomer _ddDomainName (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy DomainsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Domains/Get.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Domains.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)+--+-- Retrives a domain of the customer.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.domains.get@.+module Network.Google.Resource.Directory.Domains.Get+    (+    -- * REST Resource+      DomainsGetResource++    -- * Creating a Request+    , domainsGet+    , DomainsGet++    -- * Request Lenses+    , dgCustomer+    , dgDomainName+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.domains.get@ method which the+-- 'DomainsGet' request conforms to.+type DomainsGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "domains" :>+                 Capture "domainName" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Domains++-- | Retrives a domain of the customer.+--+-- /See:/ 'domainsGet' smart constructor.+data DomainsGet = DomainsGet+    { _dgCustomer   :: !Text+    , _dgDomainName :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DomainsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dgCustomer'+--+-- * 'dgDomainName'+domainsGet+    :: Text -- ^ 'dgCustomer'+    -> Text -- ^ 'dgDomainName'+    -> DomainsGet+domainsGet pDgCustomer_ pDgDomainName_ =+    DomainsGet+    { _dgCustomer = pDgCustomer_+    , _dgDomainName = pDgDomainName_+    }++-- | Immutable id of the Google Apps account.+dgCustomer :: Lens' DomainsGet Text+dgCustomer+  = lens _dgCustomer (\ s a -> s{_dgCustomer = a})++-- | Name of domain to be retrieved+dgDomainName :: Lens' DomainsGet Text+dgDomainName+  = lens _dgDomainName (\ s a -> s{_dgDomainName = a})++instance GoogleRequest DomainsGet where+        type Rs DomainsGet = Domains+        requestClient DomainsGet{..}+          = go _dgCustomer _dgDomainName (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy DomainsGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Domains/Insert.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Domains.Insert+-- 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)+--+-- Inserts a domain of the customer.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.domains.insert@.+module Network.Google.Resource.Directory.Domains.Insert+    (+    -- * REST Resource+      DomainsInsertResource++    -- * Creating a Request+    , domainsInsert+    , DomainsInsert++    -- * Request Lenses+    , diPayload+    , diCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.domains.insert@ method which the+-- 'DomainsInsert' request conforms to.+type DomainsInsertResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "domains" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Domains :> Post '[JSON] Domains++-- | Inserts a domain of the customer.+--+-- /See:/ 'domainsInsert' smart constructor.+data DomainsInsert = DomainsInsert+    { _diPayload  :: !Domains+    , _diCustomer :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DomainsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'diPayload'+--+-- * 'diCustomer'+domainsInsert+    :: Domains -- ^ 'diPayload'+    -> Text -- ^ 'diCustomer'+    -> DomainsInsert+domainsInsert pDiPayload_ pDiCustomer_ =+    DomainsInsert+    { _diPayload = pDiPayload_+    , _diCustomer = pDiCustomer_+    }++-- | Multipart request metadata.+diPayload :: Lens' DomainsInsert Domains+diPayload+  = lens _diPayload (\ s a -> s{_diPayload = a})++-- | Immutable id of the Google Apps account.+diCustomer :: Lens' DomainsInsert Text+diCustomer+  = lens _diCustomer (\ s a -> s{_diCustomer = a})++instance GoogleRequest DomainsInsert where+        type Rs DomainsInsert = Domains+        requestClient DomainsInsert{..}+          = go _diCustomer (Just AltJSON) _diPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy DomainsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Domains/List.hs view
@@ -0,0 +1,84 @@+{-# 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.Directory.Domains.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)+--+-- Lists the domains of the customer.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.domains.list@.+module Network.Google.Resource.Directory.Domains.List+    (+    -- * REST Resource+      DomainsListResource++    -- * Creating a Request+    , domainsList+    , DomainsList++    -- * Request Lenses+    , dlCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.domains.list@ method which the+-- 'DomainsList' request conforms to.+type DomainsListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "domains" :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Domains2++-- | Lists the domains of the customer.+--+-- /See:/ 'domainsList' smart constructor.+newtype DomainsList = DomainsList+    { _dlCustomer :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DomainsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlCustomer'+domainsList+    :: Text -- ^ 'dlCustomer'+    -> DomainsList+domainsList pDlCustomer_ =+    DomainsList+    { _dlCustomer = pDlCustomer_+    }++-- | Immutable id of the Google Apps account.+dlCustomer :: Lens' DomainsList Text+dlCustomer+  = lens _dlCustomer (\ s a -> s{_dlCustomer = a})++instance GoogleRequest DomainsList where+        type Rs DomainsList = Domains2+        requestClient DomainsList{..}+          = go _dlCustomer (Just AltJSON) directoryService+          where go+                  = buildClient (Proxy :: Proxy DomainsListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Groups/Aliases/Delete.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Groups.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)+--+-- Remove a alias for the group+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.groups.aliases.delete@.+module Network.Google.Resource.Directory.Groups.Aliases.Delete+    (+    -- * REST Resource+      GroupsAliasesDeleteResource++    -- * Creating a Request+    , groupsAliasesDelete+    , GroupsAliasesDelete++    -- * Request Lenses+    , gadGroupKey+    , gadAlias+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.groups.aliases.delete@ method which the+-- 'GroupsAliasesDelete' request conforms to.+type GroupsAliasesDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             Capture "groupKey" Text :>+               "aliases" :>+                 Capture "alias" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Remove a alias for the group+--+-- /See:/ 'groupsAliasesDelete' smart constructor.+data GroupsAliasesDelete = GroupsAliasesDelete+    { _gadGroupKey :: !Text+    , _gadAlias    :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsAliasesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gadGroupKey'+--+-- * 'gadAlias'+groupsAliasesDelete+    :: Text -- ^ 'gadGroupKey'+    -> Text -- ^ 'gadAlias'+    -> GroupsAliasesDelete+groupsAliasesDelete pGadGroupKey_ pGadAlias_ =+    GroupsAliasesDelete+    { _gadGroupKey = pGadGroupKey_+    , _gadAlias = pGadAlias_+    }++-- | Email or immutable Id of the group+gadGroupKey :: Lens' GroupsAliasesDelete Text+gadGroupKey+  = lens _gadGroupKey (\ s a -> s{_gadGroupKey = a})++-- | The alias to be removed+gadAlias :: Lens' GroupsAliasesDelete Text+gadAlias = lens _gadAlias (\ s a -> s{_gadAlias = a})++instance GoogleRequest GroupsAliasesDelete where+        type Rs GroupsAliasesDelete = ()+        requestClient GroupsAliasesDelete{..}+          = go _gadGroupKey _gadAlias (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy GroupsAliasesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Groups/Aliases/Insert.hs view
@@ -0,0 +1,98 @@+{-# 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.Directory.Groups.Aliases.Insert+-- 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)+--+-- Add a alias for the group+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.groups.aliases.insert@.+module Network.Google.Resource.Directory.Groups.Aliases.Insert+    (+    -- * REST Resource+      GroupsAliasesInsertResource++    -- * Creating a Request+    , groupsAliasesInsert+    , GroupsAliasesInsert++    -- * Request Lenses+    , gaiGroupKey+    , gaiPayload+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.groups.aliases.insert@ method which the+-- 'GroupsAliasesInsert' request conforms to.+type GroupsAliasesInsertResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             Capture "groupKey" Text :>+               "aliases" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Alias :> Post '[JSON] Alias++-- | Add a alias for the group+--+-- /See:/ 'groupsAliasesInsert' smart constructor.+data GroupsAliasesInsert = GroupsAliasesInsert+    { _gaiGroupKey :: !Text+    , _gaiPayload  :: !Alias+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsAliasesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gaiGroupKey'+--+-- * 'gaiPayload'+groupsAliasesInsert+    :: Text -- ^ 'gaiGroupKey'+    -> Alias -- ^ 'gaiPayload'+    -> GroupsAliasesInsert+groupsAliasesInsert pGaiGroupKey_ pGaiPayload_ =+    GroupsAliasesInsert+    { _gaiGroupKey = pGaiGroupKey_+    , _gaiPayload = pGaiPayload_+    }++-- | Email or immutable Id of the group+gaiGroupKey :: Lens' GroupsAliasesInsert Text+gaiGroupKey+  = lens _gaiGroupKey (\ s a -> s{_gaiGroupKey = a})++-- | Multipart request metadata.+gaiPayload :: Lens' GroupsAliasesInsert Alias+gaiPayload+  = lens _gaiPayload (\ s a -> s{_gaiPayload = a})++instance GoogleRequest GroupsAliasesInsert where+        type Rs GroupsAliasesInsert = Alias+        requestClient GroupsAliasesInsert{..}+          = go _gaiGroupKey (Just AltJSON) _gaiPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy GroupsAliasesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Groups/Aliases/List.hs view
@@ -0,0 +1,85 @@+{-# 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.Directory.Groups.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)+--+-- List all aliases for a group+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.groups.aliases.list@.+module Network.Google.Resource.Directory.Groups.Aliases.List+    (+    -- * REST Resource+      GroupsAliasesListResource++    -- * Creating a Request+    , groupsAliasesList+    , GroupsAliasesList++    -- * Request Lenses+    , galGroupKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.groups.aliases.list@ method which the+-- 'GroupsAliasesList' request conforms to.+type GroupsAliasesListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             Capture "groupKey" Text :>+               "aliases" :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Aliases++-- | List all aliases for a group+--+-- /See:/ 'groupsAliasesList' smart constructor.+newtype GroupsAliasesList = GroupsAliasesList+    { _galGroupKey :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsAliasesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'galGroupKey'+groupsAliasesList+    :: Text -- ^ 'galGroupKey'+    -> GroupsAliasesList+groupsAliasesList pGalGroupKey_ =+    GroupsAliasesList+    { _galGroupKey = pGalGroupKey_+    }++-- | Email or immutable Id of the group+galGroupKey :: Lens' GroupsAliasesList Text+galGroupKey+  = lens _galGroupKey (\ s a -> s{_galGroupKey = a})++instance GoogleRequest GroupsAliasesList where+        type Rs GroupsAliasesList = Aliases+        requestClient GroupsAliasesList{..}+          = go _galGroupKey (Just AltJSON) directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy GroupsAliasesListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Groups/Delete.hs view
@@ -0,0 +1,83 @@+{-# 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.Directory.Groups.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)+--+-- Delete Group+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.groups.delete@.+module Network.Google.Resource.Directory.Groups.Delete+    (+    -- * REST Resource+      GroupsDeleteResource++    -- * Creating a Request+    , groupsDelete+    , GroupsDelete++    -- * Request Lenses+    , gdGroupKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.groups.delete@ method which the+-- 'GroupsDelete' request conforms to.+type GroupsDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             Capture "groupKey" Text :>+               QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Delete Group+--+-- /See:/ 'groupsDelete' smart constructor.+newtype GroupsDelete = GroupsDelete+    { _gdGroupKey :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdGroupKey'+groupsDelete+    :: Text -- ^ 'gdGroupKey'+    -> GroupsDelete+groupsDelete pGdGroupKey_ =+    GroupsDelete+    { _gdGroupKey = pGdGroupKey_+    }++-- | Email or immutable Id of the group+gdGroupKey :: Lens' GroupsDelete Text+gdGroupKey+  = lens _gdGroupKey (\ s a -> s{_gdGroupKey = a})++instance GoogleRequest GroupsDelete where+        type Rs GroupsDelete = ()+        requestClient GroupsDelete{..}+          = go _gdGroupKey (Just AltJSON) directoryService+          where go+                  = buildClient (Proxy :: Proxy GroupsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Groups/Get.hs view
@@ -0,0 +1,83 @@+{-# 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.Directory.Groups.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)+--+-- Retrieve Group+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.groups.get@.+module Network.Google.Resource.Directory.Groups.Get+    (+    -- * REST Resource+      GroupsGetResource++    -- * Creating a Request+    , groupsGet+    , GroupsGet++    -- * Request Lenses+    , ggGroupKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.groups.get@ method which the+-- 'GroupsGet' request conforms to.+type GroupsGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             Capture "groupKey" Text :>+               QueryParam "alt" AltJSON :> Get '[JSON] Group++-- | Retrieve Group+--+-- /See:/ 'groupsGet' smart constructor.+newtype GroupsGet = GroupsGet+    { _ggGroupKey :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ggGroupKey'+groupsGet+    :: Text -- ^ 'ggGroupKey'+    -> GroupsGet+groupsGet pGgGroupKey_ =+    GroupsGet+    { _ggGroupKey = pGgGroupKey_+    }++-- | Email or immutable Id of the group+ggGroupKey :: Lens' GroupsGet Text+ggGroupKey+  = lens _ggGroupKey (\ s a -> s{_ggGroupKey = a})++instance GoogleRequest GroupsGet where+        type Rs GroupsGet = Group+        requestClient GroupsGet{..}+          = go _ggGroupKey (Just AltJSON) directoryService+          where go+                  = buildClient (Proxy :: Proxy GroupsGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Groups/Insert.hs view
@@ -0,0 +1,83 @@+{-# 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.Directory.Groups.Insert+-- 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)+--+-- Create Group+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.groups.insert@.+module Network.Google.Resource.Directory.Groups.Insert+    (+    -- * REST Resource+      GroupsInsertResource++    -- * Creating a Request+    , groupsInsert+    , GroupsInsert++    -- * Request Lenses+    , giPayload+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.groups.insert@ method which the+-- 'GroupsInsert' request conforms to.+type GroupsInsertResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             QueryParam "alt" AltJSON :>+               ReqBody '[JSON] Group :> Post '[JSON] Group++-- | Create Group+--+-- /See:/ 'groupsInsert' smart constructor.+newtype GroupsInsert = GroupsInsert+    { _giPayload :: Group+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'giPayload'+groupsInsert+    :: Group -- ^ 'giPayload'+    -> GroupsInsert+groupsInsert pGiPayload_ =+    GroupsInsert+    { _giPayload = pGiPayload_+    }++-- | Multipart request metadata.+giPayload :: Lens' GroupsInsert Group+giPayload+  = lens _giPayload (\ s a -> s{_giPayload = a})++instance GoogleRequest GroupsInsert where+        type Rs GroupsInsert = Group+        requestClient GroupsInsert{..}+          = go (Just AltJSON) _giPayload directoryService+          where go+                  = buildClient (Proxy :: Proxy GroupsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Groups/List.hs view
@@ -0,0 +1,133 @@+{-# 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.Directory.Groups.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)+--+-- Retrieve all groups in a domain (paginated)+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.groups.list@.+module Network.Google.Resource.Directory.Groups.List+    (+    -- * REST Resource+      GroupsListResource++    -- * Creating a Request+    , groupsList+    , GroupsList++    -- * Request Lenses+    , glDomain+    , glCustomer+    , glPageToken+    , glUserKey+    , glMaxResults+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.groups.list@ method which the+-- 'GroupsList' request conforms to.+type GroupsListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             QueryParam "domain" Text :>+               QueryParam "customer" Text :>+                 QueryParam "pageToken" Text :>+                   QueryParam "userKey" Text :>+                     QueryParam "maxResults" (Textual Int32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] Groups++-- | Retrieve all groups in a domain (paginated)+--+-- /See:/ 'groupsList' smart constructor.+data GroupsList = GroupsList+    { _glDomain     :: !(Maybe Text)+    , _glCustomer   :: !(Maybe Text)+    , _glPageToken  :: !(Maybe Text)+    , _glUserKey    :: !(Maybe Text)+    , _glMaxResults :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'glDomain'+--+-- * 'glCustomer'+--+-- * 'glPageToken'+--+-- * 'glUserKey'+--+-- * 'glMaxResults'+groupsList+    :: GroupsList+groupsList =+    GroupsList+    { _glDomain = Nothing+    , _glCustomer = Nothing+    , _glPageToken = Nothing+    , _glUserKey = Nothing+    , _glMaxResults = Nothing+    }++-- | Name of the domain. Fill this field to get groups from only this domain.+-- To return all groups in a multi-domain fill customer field instead.+glDomain :: Lens' GroupsList (Maybe Text)+glDomain = lens _glDomain (\ s a -> s{_glDomain = a})++-- | Immutable id of the Google Apps account. In case of multi-domain, to+-- fetch all groups for a customer, fill this field instead of domain.+glCustomer :: Lens' GroupsList (Maybe Text)+glCustomer+  = lens _glCustomer (\ s a -> s{_glCustomer = a})++-- | Token to specify next page in the list+glPageToken :: Lens' GroupsList (Maybe Text)+glPageToken+  = lens _glPageToken (\ s a -> s{_glPageToken = a})++-- | Email or immutable Id of the user if only those groups are to be listed,+-- the given user is a member of. If Id, it should match with id of user+-- object+glUserKey :: Lens' GroupsList (Maybe Text)+glUserKey+  = lens _glUserKey (\ s a -> s{_glUserKey = a})++-- | Maximum number of results to return. Default is 200+glMaxResults :: Lens' GroupsList (Maybe Int32)+glMaxResults+  = lens _glMaxResults (\ s a -> s{_glMaxResults = a})+      . mapping _Coerce++instance GoogleRequest GroupsList where+        type Rs GroupsList = Groups+        requestClient GroupsList{..}+          = go _glDomain _glCustomer _glPageToken _glUserKey+              _glMaxResults+              (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy GroupsListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Groups/Patch.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Groups.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)+--+-- Update Group. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.groups.patch@.+module Network.Google.Resource.Directory.Groups.Patch+    (+    -- * REST Resource+      GroupsPatchResource++    -- * Creating a Request+    , groupsPatch+    , GroupsPatch++    -- * Request Lenses+    , gpGroupKey+    , gpPayload+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.groups.patch@ method which the+-- 'GroupsPatch' request conforms to.+type GroupsPatchResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             Capture "groupKey" Text :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] Group :> Patch '[JSON] Group++-- | Update Group. This method supports patch semantics.+--+-- /See:/ 'groupsPatch' smart constructor.+data GroupsPatch = GroupsPatch+    { _gpGroupKey :: !Text+    , _gpPayload  :: !Group+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gpGroupKey'+--+-- * 'gpPayload'+groupsPatch+    :: Text -- ^ 'gpGroupKey'+    -> Group -- ^ 'gpPayload'+    -> GroupsPatch+groupsPatch pGpGroupKey_ pGpPayload_ =+    GroupsPatch+    { _gpGroupKey = pGpGroupKey_+    , _gpPayload = pGpPayload_+    }++-- | Email or immutable Id of the group. If Id, it should match with id of+-- group object+gpGroupKey :: Lens' GroupsPatch Text+gpGroupKey+  = lens _gpGroupKey (\ s a -> s{_gpGroupKey = a})++-- | Multipart request metadata.+gpPayload :: Lens' GroupsPatch Group+gpPayload+  = lens _gpPayload (\ s a -> s{_gpPayload = a})++instance GoogleRequest GroupsPatch where+        type Rs GroupsPatch = Group+        requestClient GroupsPatch{..}+          = go _gpGroupKey (Just AltJSON) _gpPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy GroupsPatchResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Groups/Update.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Groups.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)+--+-- Update Group+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.groups.update@.+module Network.Google.Resource.Directory.Groups.Update+    (+    -- * REST Resource+      GroupsUpdateResource++    -- * Creating a Request+    , groupsUpdate+    , GroupsUpdate++    -- * Request Lenses+    , guGroupKey+    , guPayload+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.groups.update@ method which the+-- 'GroupsUpdate' request conforms to.+type GroupsUpdateResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             Capture "groupKey" Text :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] Group :> Put '[JSON] Group++-- | Update Group+--+-- /See:/ 'groupsUpdate' smart constructor.+data GroupsUpdate = GroupsUpdate+    { _guGroupKey :: !Text+    , _guPayload  :: !Group+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'guGroupKey'+--+-- * 'guPayload'+groupsUpdate+    :: Text -- ^ 'guGroupKey'+    -> Group -- ^ 'guPayload'+    -> GroupsUpdate+groupsUpdate pGuGroupKey_ pGuPayload_ =+    GroupsUpdate+    { _guGroupKey = pGuGroupKey_+    , _guPayload = pGuPayload_+    }++-- | Email or immutable Id of the group. If Id, it should match with id of+-- group object+guGroupKey :: Lens' GroupsUpdate Text+guGroupKey+  = lens _guGroupKey (\ s a -> s{_guGroupKey = a})++-- | Multipart request metadata.+guPayload :: Lens' GroupsUpdate Group+guPayload+  = lens _guPayload (\ s a -> s{_guPayload = a})++instance GoogleRequest GroupsUpdate where+        type Rs GroupsUpdate = Group+        requestClient GroupsUpdate{..}+          = go _guGroupKey (Just AltJSON) _guPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy GroupsUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Members/Delete.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Members.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)+--+-- Remove membership.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.members.delete@.+module Network.Google.Resource.Directory.Members.Delete+    (+    -- * REST Resource+      MembersDeleteResource++    -- * Creating a Request+    , membersDelete+    , MembersDelete++    -- * Request Lenses+    , mdMemberKey+    , mdGroupKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.members.delete@ method which the+-- 'MembersDelete' request conforms to.+type MembersDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             Capture "groupKey" Text :>+               "members" :>+                 Capture "memberKey" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Remove membership.+--+-- /See:/ 'membersDelete' smart constructor.+data MembersDelete = MembersDelete+    { _mdMemberKey :: !Text+    , _mdGroupKey  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MembersDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdMemberKey'+--+-- * 'mdGroupKey'+membersDelete+    :: Text -- ^ 'mdMemberKey'+    -> Text -- ^ 'mdGroupKey'+    -> MembersDelete+membersDelete pMdMemberKey_ pMdGroupKey_ =+    MembersDelete+    { _mdMemberKey = pMdMemberKey_+    , _mdGroupKey = pMdGroupKey_+    }++-- | Email or immutable Id of the member+mdMemberKey :: Lens' MembersDelete Text+mdMemberKey+  = lens _mdMemberKey (\ s a -> s{_mdMemberKey = a})++-- | Email or immutable Id of the group+mdGroupKey :: Lens' MembersDelete Text+mdGroupKey+  = lens _mdGroupKey (\ s a -> s{_mdGroupKey = a})++instance GoogleRequest MembersDelete where+        type Rs MembersDelete = ()+        requestClient MembersDelete{..}+          = go _mdGroupKey _mdMemberKey (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy MembersDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Members/Get.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Members.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)+--+-- Retrieve Group Member+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.members.get@.+module Network.Google.Resource.Directory.Members.Get+    (+    -- * REST Resource+      MembersGetResource++    -- * Creating a Request+    , membersGet+    , MembersGet++    -- * Request Lenses+    , mgMemberKey+    , mgGroupKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.members.get@ method which the+-- 'MembersGet' request conforms to.+type MembersGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             Capture "groupKey" Text :>+               "members" :>+                 Capture "memberKey" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Member++-- | Retrieve Group Member+--+-- /See:/ 'membersGet' smart constructor.+data MembersGet = MembersGet+    { _mgMemberKey :: !Text+    , _mgGroupKey  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MembersGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mgMemberKey'+--+-- * 'mgGroupKey'+membersGet+    :: Text -- ^ 'mgMemberKey'+    -> Text -- ^ 'mgGroupKey'+    -> MembersGet+membersGet pMgMemberKey_ pMgGroupKey_ =+    MembersGet+    { _mgMemberKey = pMgMemberKey_+    , _mgGroupKey = pMgGroupKey_+    }++-- | Email or immutable Id of the member+mgMemberKey :: Lens' MembersGet Text+mgMemberKey+  = lens _mgMemberKey (\ s a -> s{_mgMemberKey = a})++-- | Email or immutable Id of the group+mgGroupKey :: Lens' MembersGet Text+mgGroupKey+  = lens _mgGroupKey (\ s a -> s{_mgGroupKey = a})++instance GoogleRequest MembersGet where+        type Rs MembersGet = Member+        requestClient MembersGet{..}+          = go _mgGroupKey _mgMemberKey (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy MembersGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Members/Insert.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Members.Insert+-- 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)+--+-- Add user to the specified group.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.members.insert@.+module Network.Google.Resource.Directory.Members.Insert+    (+    -- * REST Resource+      MembersInsertResource++    -- * Creating a Request+    , membersInsert+    , MembersInsert++    -- * Request Lenses+    , miGroupKey+    , miPayload+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.members.insert@ method which the+-- 'MembersInsert' request conforms to.+type MembersInsertResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             Capture "groupKey" Text :>+               "members" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Member :> Post '[JSON] Member++-- | Add user to the specified group.+--+-- /See:/ 'membersInsert' smart constructor.+data MembersInsert = MembersInsert+    { _miGroupKey :: !Text+    , _miPayload  :: !Member+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MembersInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'miGroupKey'+--+-- * 'miPayload'+membersInsert+    :: Text -- ^ 'miGroupKey'+    -> Member -- ^ 'miPayload'+    -> MembersInsert+membersInsert pMiGroupKey_ pMiPayload_ =+    MembersInsert+    { _miGroupKey = pMiGroupKey_+    , _miPayload = pMiPayload_+    }++-- | Email or immutable Id of the group+miGroupKey :: Lens' MembersInsert Text+miGroupKey+  = lens _miGroupKey (\ s a -> s{_miGroupKey = a})++-- | Multipart request metadata.+miPayload :: Lens' MembersInsert Member+miPayload+  = lens _miPayload (\ s a -> s{_miPayload = a})++instance GoogleRequest MembersInsert where+        type Rs MembersInsert = Member+        requestClient MembersInsert{..}+          = go _miGroupKey (Just AltJSON) _miPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy MembersInsertResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Members/List.hs view
@@ -0,0 +1,119 @@+{-# 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.Directory.Members.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)+--+-- Retrieve all members in a group (paginated)+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.members.list@.+module Network.Google.Resource.Directory.Members.List+    (+    -- * REST Resource+      MembersListResource++    -- * Creating a Request+    , membersList+    , MembersList++    -- * Request Lenses+    , mlRoles+    , mlGroupKey+    , mlPageToken+    , mlMaxResults+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.members.list@ method which the+-- 'MembersList' request conforms to.+type MembersListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             Capture "groupKey" Text :>+               "members" :>+                 QueryParam "roles" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Int32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] Members++-- | Retrieve all members in a group (paginated)+--+-- /See:/ 'membersList' smart constructor.+data MembersList = MembersList+    { _mlRoles      :: !(Maybe Text)+    , _mlGroupKey   :: !Text+    , _mlPageToken  :: !(Maybe Text)+    , _mlMaxResults :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MembersList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlRoles'+--+-- * 'mlGroupKey'+--+-- * 'mlPageToken'+--+-- * 'mlMaxResults'+membersList+    :: Text -- ^ 'mlGroupKey'+    -> MembersList+membersList pMlGroupKey_ =+    MembersList+    { _mlRoles = Nothing+    , _mlGroupKey = pMlGroupKey_+    , _mlPageToken = Nothing+    , _mlMaxResults = Nothing+    }++-- | Comma separated role values to filter list results on.+mlRoles :: Lens' MembersList (Maybe Text)+mlRoles = lens _mlRoles (\ s a -> s{_mlRoles = a})++-- | Email or immutable Id of the group+mlGroupKey :: Lens' MembersList Text+mlGroupKey+  = lens _mlGroupKey (\ s a -> s{_mlGroupKey = a})++-- | Token to specify next page in the list+mlPageToken :: Lens' MembersList (Maybe Text)+mlPageToken+  = lens _mlPageToken (\ s a -> s{_mlPageToken = a})++-- | Maximum number of results to return. Default is 200+mlMaxResults :: Lens' MembersList (Maybe Int32)+mlMaxResults+  = lens _mlMaxResults (\ s a -> s{_mlMaxResults = a})+      . mapping _Coerce++instance GoogleRequest MembersList where+        type Rs MembersList = Members+        requestClient MembersList{..}+          = go _mlGroupKey _mlRoles _mlPageToken _mlMaxResults+              (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy MembersListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Members/Patch.hs view
@@ -0,0 +1,114 @@+{-# 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.Directory.Members.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)+--+-- Update membership of a user in the specified group. This method supports+-- patch semantics.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.members.patch@.+module Network.Google.Resource.Directory.Members.Patch+    (+    -- * REST Resource+      MembersPatchResource++    -- * Creating a Request+    , membersPatch+    , MembersPatch++    -- * Request Lenses+    , mpMemberKey+    , mpGroupKey+    , mpPayload+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.members.patch@ method which the+-- 'MembersPatch' request conforms to.+type MembersPatchResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             Capture "groupKey" Text :>+               "members" :>+                 Capture "memberKey" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Member :> Patch '[JSON] Member++-- | Update membership of a user in the specified group. This method supports+-- patch semantics.+--+-- /See:/ 'membersPatch' smart constructor.+data MembersPatch = MembersPatch+    { _mpMemberKey :: !Text+    , _mpGroupKey  :: !Text+    , _mpPayload   :: !Member+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MembersPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mpMemberKey'+--+-- * 'mpGroupKey'+--+-- * 'mpPayload'+membersPatch+    :: Text -- ^ 'mpMemberKey'+    -> Text -- ^ 'mpGroupKey'+    -> Member -- ^ 'mpPayload'+    -> MembersPatch+membersPatch pMpMemberKey_ pMpGroupKey_ pMpPayload_ =+    MembersPatch+    { _mpMemberKey = pMpMemberKey_+    , _mpGroupKey = pMpGroupKey_+    , _mpPayload = pMpPayload_+    }++-- | Email or immutable Id of the user. If Id, it should match with id of+-- member object+mpMemberKey :: Lens' MembersPatch Text+mpMemberKey+  = lens _mpMemberKey (\ s a -> s{_mpMemberKey = a})++-- | Email or immutable Id of the group. If Id, it should match with id of+-- group object+mpGroupKey :: Lens' MembersPatch Text+mpGroupKey+  = lens _mpGroupKey (\ s a -> s{_mpGroupKey = a})++-- | Multipart request metadata.+mpPayload :: Lens' MembersPatch Member+mpPayload+  = lens _mpPayload (\ s a -> s{_mpPayload = a})++instance GoogleRequest MembersPatch where+        type Rs MembersPatch = Member+        requestClient MembersPatch{..}+          = go _mpGroupKey _mpMemberKey (Just AltJSON)+              _mpPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy MembersPatchResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Members/Update.hs view
@@ -0,0 +1,112 @@+{-# 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.Directory.Members.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)+--+-- Update membership of a user in the specified group.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.members.update@.+module Network.Google.Resource.Directory.Members.Update+    (+    -- * REST Resource+      MembersUpdateResource++    -- * Creating a Request+    , membersUpdate+    , MembersUpdate++    -- * Request Lenses+    , muMemberKey+    , muGroupKey+    , muPayload+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.members.update@ method which the+-- 'MembersUpdate' request conforms to.+type MembersUpdateResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "groups" :>+             Capture "groupKey" Text :>+               "members" :>+                 Capture "memberKey" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Member :> Put '[JSON] Member++-- | Update membership of a user in the specified group.+--+-- /See:/ 'membersUpdate' smart constructor.+data MembersUpdate = MembersUpdate+    { _muMemberKey :: !Text+    , _muGroupKey  :: !Text+    , _muPayload   :: !Member+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MembersUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'muMemberKey'+--+-- * 'muGroupKey'+--+-- * 'muPayload'+membersUpdate+    :: Text -- ^ 'muMemberKey'+    -> Text -- ^ 'muGroupKey'+    -> Member -- ^ 'muPayload'+    -> MembersUpdate+membersUpdate pMuMemberKey_ pMuGroupKey_ pMuPayload_ =+    MembersUpdate+    { _muMemberKey = pMuMemberKey_+    , _muGroupKey = pMuGroupKey_+    , _muPayload = pMuPayload_+    }++-- | Email or immutable Id of the user. If Id, it should match with id of+-- member object+muMemberKey :: Lens' MembersUpdate Text+muMemberKey+  = lens _muMemberKey (\ s a -> s{_muMemberKey = a})++-- | Email or immutable Id of the group. If Id, it should match with id of+-- group object+muGroupKey :: Lens' MembersUpdate Text+muGroupKey+  = lens _muGroupKey (\ s a -> s{_muGroupKey = a})++-- | Multipart request metadata.+muPayload :: Lens' MembersUpdate Member+muPayload+  = lens _muPayload (\ s a -> s{_muPayload = a})++instance GoogleRequest MembersUpdate where+        type Rs MembersUpdate = Member+        requestClient MembersUpdate{..}+          = go _muGroupKey _muMemberKey (Just AltJSON)+              _muPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy MembersUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Directory/MobileDevices/Action.hs view
@@ -0,0 +1,115 @@+{-# 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.Directory.MobileDevices.Action+-- 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)+--+-- Take action on Mobile Device+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.mobiledevices.action@.+module Network.Google.Resource.Directory.MobileDevices.Action+    (+    -- * REST Resource+      MobileDevicesActionResource++    -- * Creating a Request+    , mobileDevicesAction+    , MobileDevicesAction++    -- * Request Lenses+    , mdaResourceId+    , mdaPayload+    , mdaCustomerId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.mobiledevices.action@ method which the+-- 'MobileDevicesAction' request conforms to.+type MobileDevicesActionResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "devices" :>+                 "mobile" :>+                   Capture "resourceId" Text :>+                     "action" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] MobileDeviceAction :> Post '[JSON] ()++-- | Take action on Mobile Device+--+-- /See:/ 'mobileDevicesAction' smart constructor.+data MobileDevicesAction = MobileDevicesAction+    { _mdaResourceId :: !Text+    , _mdaPayload    :: !MobileDeviceAction+    , _mdaCustomerId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MobileDevicesAction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdaResourceId'+--+-- * 'mdaPayload'+--+-- * 'mdaCustomerId'+mobileDevicesAction+    :: Text -- ^ 'mdaResourceId'+    -> MobileDeviceAction -- ^ 'mdaPayload'+    -> Text -- ^ 'mdaCustomerId'+    -> MobileDevicesAction+mobileDevicesAction pMdaResourceId_ pMdaPayload_ pMdaCustomerId_ =+    MobileDevicesAction+    { _mdaResourceId = pMdaResourceId_+    , _mdaPayload = pMdaPayload_+    , _mdaCustomerId = pMdaCustomerId_+    }++-- | Immutable id of Mobile Device+mdaResourceId :: Lens' MobileDevicesAction Text+mdaResourceId+  = lens _mdaResourceId+      (\ s a -> s{_mdaResourceId = a})++-- | Multipart request metadata.+mdaPayload :: Lens' MobileDevicesAction MobileDeviceAction+mdaPayload+  = lens _mdaPayload (\ s a -> s{_mdaPayload = a})++-- | Immutable id of the Google Apps account+mdaCustomerId :: Lens' MobileDevicesAction Text+mdaCustomerId+  = lens _mdaCustomerId+      (\ s a -> s{_mdaCustomerId = a})++instance GoogleRequest MobileDevicesAction where+        type Rs MobileDevicesAction = ()+        requestClient MobileDevicesAction{..}+          = go _mdaCustomerId _mdaResourceId (Just AltJSON)+              _mdaPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy MobileDevicesActionResource)+                      mempty
+ gen/Network/Google/Resource/Directory/MobileDevices/Delete.hs view
@@ -0,0 +1,101 @@+{-# 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.Directory.MobileDevices.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)+--+-- Delete Mobile Device+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.mobiledevices.delete@.+module Network.Google.Resource.Directory.MobileDevices.Delete+    (+    -- * REST Resource+      MobileDevicesDeleteResource++    -- * Creating a Request+    , mobileDevicesDelete+    , MobileDevicesDelete++    -- * Request Lenses+    , mddResourceId+    , mddCustomerId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.mobiledevices.delete@ method which the+-- 'MobileDevicesDelete' request conforms to.+type MobileDevicesDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "devices" :>+                 "mobile" :>+                   Capture "resourceId" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Delete Mobile Device+--+-- /See:/ 'mobileDevicesDelete' smart constructor.+data MobileDevicesDelete = MobileDevicesDelete+    { _mddResourceId :: !Text+    , _mddCustomerId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MobileDevicesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mddResourceId'+--+-- * 'mddCustomerId'+mobileDevicesDelete+    :: Text -- ^ 'mddResourceId'+    -> Text -- ^ 'mddCustomerId'+    -> MobileDevicesDelete+mobileDevicesDelete pMddResourceId_ pMddCustomerId_ =+    MobileDevicesDelete+    { _mddResourceId = pMddResourceId_+    , _mddCustomerId = pMddCustomerId_+    }++-- | Immutable id of Mobile Device+mddResourceId :: Lens' MobileDevicesDelete Text+mddResourceId+  = lens _mddResourceId+      (\ s a -> s{_mddResourceId = a})++-- | Immutable id of the Google Apps account+mddCustomerId :: Lens' MobileDevicesDelete Text+mddCustomerId+  = lens _mddCustomerId+      (\ s a -> s{_mddCustomerId = a})++instance GoogleRequest MobileDevicesDelete where+        type Rs MobileDevicesDelete = ()+        requestClient MobileDevicesDelete{..}+          = go _mddCustomerId _mddResourceId (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy MobileDevicesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/MobileDevices/Get.hs view
@@ -0,0 +1,114 @@+{-# 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.Directory.MobileDevices.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)+--+-- Retrieve Mobile Device+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.mobiledevices.get@.+module Network.Google.Resource.Directory.MobileDevices.Get+    (+    -- * REST Resource+      MobileDevicesGetResource++    -- * Creating a Request+    , mobileDevicesGet+    , MobileDevicesGet++    -- * Request Lenses+    , mdgResourceId+    , mdgCustomerId+    , mdgProjection+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.mobiledevices.get@ method which the+-- 'MobileDevicesGet' request conforms to.+type MobileDevicesGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "devices" :>+                 "mobile" :>+                   Capture "resourceId" Text :>+                     QueryParam "projection" MobileDevicesGetProjection :>+                       QueryParam "alt" AltJSON :> Get '[JSON] MobileDevice++-- | Retrieve Mobile Device+--+-- /See:/ 'mobileDevicesGet' smart constructor.+data MobileDevicesGet = MobileDevicesGet+    { _mdgResourceId :: !Text+    , _mdgCustomerId :: !Text+    , _mdgProjection :: !(Maybe MobileDevicesGetProjection)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MobileDevicesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdgResourceId'+--+-- * 'mdgCustomerId'+--+-- * 'mdgProjection'+mobileDevicesGet+    :: Text -- ^ 'mdgResourceId'+    -> Text -- ^ 'mdgCustomerId'+    -> MobileDevicesGet+mobileDevicesGet pMdgResourceId_ pMdgCustomerId_ =+    MobileDevicesGet+    { _mdgResourceId = pMdgResourceId_+    , _mdgCustomerId = pMdgCustomerId_+    , _mdgProjection = Nothing+    }++-- | Immutable id of Mobile Device+mdgResourceId :: Lens' MobileDevicesGet Text+mdgResourceId+  = lens _mdgResourceId+      (\ s a -> s{_mdgResourceId = a})++-- | Immutable id of the Google Apps account+mdgCustomerId :: Lens' MobileDevicesGet Text+mdgCustomerId+  = lens _mdgCustomerId+      (\ s a -> s{_mdgCustomerId = a})++-- | Restrict information returned to a set of selected fields.+mdgProjection :: Lens' MobileDevicesGet (Maybe MobileDevicesGetProjection)+mdgProjection+  = lens _mdgProjection+      (\ s a -> s{_mdgProjection = a})++instance GoogleRequest MobileDevicesGet where+        type Rs MobileDevicesGet = MobileDevice+        requestClient MobileDevicesGet{..}+          = go _mdgCustomerId _mdgResourceId _mdgProjection+              (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy MobileDevicesGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/MobileDevices/List.hs view
@@ -0,0 +1,165 @@+{-# 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.Directory.MobileDevices.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)+--+-- Retrieve all Mobile Devices of a customer (paginated)+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.mobiledevices.list@.+module Network.Google.Resource.Directory.MobileDevices.List+    (+    -- * REST Resource+      MobileDevicesListResource++    -- * Creating a Request+    , mobileDevicesList+    , MobileDevicesList++    -- * Request Lenses+    , mdlOrderBy+    , mdlCustomerId+    , mdlSortOrder+    , mdlQuery+    , mdlProjection+    , mdlPageToken+    , mdlMaxResults+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.mobiledevices.list@ method which the+-- 'MobileDevicesList' request conforms to.+type MobileDevicesListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "devices" :>+                 "mobile" :>+                   QueryParam "orderBy" MobileDevicesListOrderBy :>+                     QueryParam "sortOrder" MobileDevicesListSortOrder :>+                       QueryParam "query" Text :>+                         QueryParam "projection" MobileDevicesListProjection+                           :>+                           QueryParam "pageToken" Text :>+                             QueryParam "maxResults" (Textual Int32) :>+                               QueryParam "alt" AltJSON :>+                                 Get '[JSON] MobileDevices++-- | Retrieve all Mobile Devices of a customer (paginated)+--+-- /See:/ 'mobileDevicesList' smart constructor.+data MobileDevicesList = MobileDevicesList+    { _mdlOrderBy    :: !(Maybe MobileDevicesListOrderBy)+    , _mdlCustomerId :: !Text+    , _mdlSortOrder  :: !(Maybe MobileDevicesListSortOrder)+    , _mdlQuery      :: !(Maybe Text)+    , _mdlProjection :: !(Maybe MobileDevicesListProjection)+    , _mdlPageToken  :: !(Maybe Text)+    , _mdlMaxResults :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MobileDevicesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdlOrderBy'+--+-- * 'mdlCustomerId'+--+-- * 'mdlSortOrder'+--+-- * 'mdlQuery'+--+-- * 'mdlProjection'+--+-- * 'mdlPageToken'+--+-- * 'mdlMaxResults'+mobileDevicesList+    :: Text -- ^ 'mdlCustomerId'+    -> MobileDevicesList+mobileDevicesList pMdlCustomerId_ =+    MobileDevicesList+    { _mdlOrderBy = Nothing+    , _mdlCustomerId = pMdlCustomerId_+    , _mdlSortOrder = Nothing+    , _mdlQuery = Nothing+    , _mdlProjection = Nothing+    , _mdlPageToken = Nothing+    , _mdlMaxResults = Nothing+    }++-- | Column to use for sorting results+mdlOrderBy :: Lens' MobileDevicesList (Maybe MobileDevicesListOrderBy)+mdlOrderBy+  = lens _mdlOrderBy (\ s a -> s{_mdlOrderBy = a})++-- | Immutable id of the Google Apps account+mdlCustomerId :: Lens' MobileDevicesList Text+mdlCustomerId+  = lens _mdlCustomerId+      (\ s a -> s{_mdlCustomerId = a})++-- | Whether to return results in ascending or descending order. Only of use+-- when orderBy is also used+mdlSortOrder :: Lens' MobileDevicesList (Maybe MobileDevicesListSortOrder)+mdlSortOrder+  = lens _mdlSortOrder (\ s a -> s{_mdlSortOrder = a})++-- | Search string in the format given at+-- http:\/\/support.google.com\/a\/bin\/answer.py?hl=en&answer=1408863#search+mdlQuery :: Lens' MobileDevicesList (Maybe Text)+mdlQuery = lens _mdlQuery (\ s a -> s{_mdlQuery = a})++-- | Restrict information returned to a set of selected fields.+mdlProjection :: Lens' MobileDevicesList (Maybe MobileDevicesListProjection)+mdlProjection+  = lens _mdlProjection+      (\ s a -> s{_mdlProjection = a})++-- | Token to specify next page in the list+mdlPageToken :: Lens' MobileDevicesList (Maybe Text)+mdlPageToken+  = lens _mdlPageToken (\ s a -> s{_mdlPageToken = a})++-- | Maximum number of results to return. Default is 100+mdlMaxResults :: Lens' MobileDevicesList (Maybe Int32)+mdlMaxResults+  = lens _mdlMaxResults+      (\ s a -> s{_mdlMaxResults = a})+      . mapping _Coerce++instance GoogleRequest MobileDevicesList where+        type Rs MobileDevicesList = MobileDevices+        requestClient MobileDevicesList{..}+          = go _mdlCustomerId _mdlOrderBy _mdlSortOrder+              _mdlQuery+              _mdlProjection+              _mdlPageToken+              _mdlMaxResults+              (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy MobileDevicesListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Notifications/Delete.hs view
@@ -0,0 +1,100 @@+{-# 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.Directory.Notifications.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 notification+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.notifications.delete@.+module Network.Google.Resource.Directory.Notifications.Delete+    (+    -- * REST Resource+      NotificationsDeleteResource++    -- * Creating a Request+    , notificationsDelete+    , NotificationsDelete++    -- * Request Lenses+    , ndCustomer+    , ndNotificationId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.notifications.delete@ method which the+-- 'NotificationsDelete' request conforms to.+type NotificationsDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "notifications" :>+                 Capture "notificationId" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes a notification+--+-- /See:/ 'notificationsDelete' smart constructor.+data NotificationsDelete = NotificationsDelete+    { _ndCustomer       :: !Text+    , _ndNotificationId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NotificationsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ndCustomer'+--+-- * 'ndNotificationId'+notificationsDelete+    :: Text -- ^ 'ndCustomer'+    -> Text -- ^ 'ndNotificationId'+    -> NotificationsDelete+notificationsDelete pNdCustomer_ pNdNotificationId_ =+    NotificationsDelete+    { _ndCustomer = pNdCustomer_+    , _ndNotificationId = pNdNotificationId_+    }++-- | The unique ID for the customer\'s Google account. The customerId is also+-- returned as part of the Users resource.+ndCustomer :: Lens' NotificationsDelete Text+ndCustomer+  = lens _ndCustomer (\ s a -> s{_ndCustomer = a})++-- | The unique ID of the notification.+ndNotificationId :: Lens' NotificationsDelete Text+ndNotificationId+  = lens _ndNotificationId+      (\ s a -> s{_ndNotificationId = a})++instance GoogleRequest NotificationsDelete where+        type Rs NotificationsDelete = ()+        requestClient NotificationsDelete{..}+          = go _ndCustomer _ndNotificationId (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy NotificationsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Notifications/Get.hs view
@@ -0,0 +1,100 @@+{-# 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.Directory.Notifications.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)+--+-- Retrieves a notification.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.notifications.get@.+module Network.Google.Resource.Directory.Notifications.Get+    (+    -- * REST Resource+      NotificationsGetResource++    -- * Creating a Request+    , notificationsGet+    , NotificationsGet++    -- * Request Lenses+    , ngCustomer+    , ngNotificationId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.notifications.get@ method which the+-- 'NotificationsGet' request conforms to.+type NotificationsGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "notifications" :>+                 Capture "notificationId" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Notification++-- | Retrieves a notification.+--+-- /See:/ 'notificationsGet' smart constructor.+data NotificationsGet = NotificationsGet+    { _ngCustomer       :: !Text+    , _ngNotificationId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NotificationsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ngCustomer'+--+-- * 'ngNotificationId'+notificationsGet+    :: Text -- ^ 'ngCustomer'+    -> Text -- ^ 'ngNotificationId'+    -> NotificationsGet+notificationsGet pNgCustomer_ pNgNotificationId_ =+    NotificationsGet+    { _ngCustomer = pNgCustomer_+    , _ngNotificationId = pNgNotificationId_+    }++-- | The unique ID for the customer\'s Google account. The customerId is also+-- returned as part of the Users resource.+ngCustomer :: Lens' NotificationsGet Text+ngCustomer+  = lens _ngCustomer (\ s a -> s{_ngCustomer = a})++-- | The unique ID of the notification.+ngNotificationId :: Lens' NotificationsGet Text+ngNotificationId+  = lens _ngNotificationId+      (\ s a -> s{_ngNotificationId = a})++instance GoogleRequest NotificationsGet where+        type Rs NotificationsGet = Notification+        requestClient NotificationsGet{..}+          = go _ngCustomer _ngNotificationId (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy NotificationsGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Notifications/List.hs view
@@ -0,0 +1,123 @@+{-# 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.Directory.Notifications.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)+--+-- Retrieves a list of notifications.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.notifications.list@.+module Network.Google.Resource.Directory.Notifications.List+    (+    -- * REST Resource+      NotificationsListResource++    -- * Creating a Request+    , notificationsList+    , NotificationsList++    -- * Request Lenses+    , nlCustomer+    , nlLanguage+    , nlPageToken+    , nlMaxResults+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.notifications.list@ method which the+-- 'NotificationsList' request conforms to.+type NotificationsListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "notifications" :>+                 QueryParam "language" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] Notifications++-- | Retrieves a list of notifications.+--+-- /See:/ 'notificationsList' smart constructor.+data NotificationsList = NotificationsList+    { _nlCustomer   :: !Text+    , _nlLanguage   :: !(Maybe Text)+    , _nlPageToken  :: !(Maybe Text)+    , _nlMaxResults :: !(Maybe (Textual Word32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NotificationsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nlCustomer'+--+-- * 'nlLanguage'+--+-- * 'nlPageToken'+--+-- * 'nlMaxResults'+notificationsList+    :: Text -- ^ 'nlCustomer'+    -> NotificationsList+notificationsList pNlCustomer_ =+    NotificationsList+    { _nlCustomer = pNlCustomer_+    , _nlLanguage = Nothing+    , _nlPageToken = Nothing+    , _nlMaxResults = Nothing+    }++-- | The unique ID for the customer\'s Google account.+nlCustomer :: Lens' NotificationsList Text+nlCustomer+  = lens _nlCustomer (\ s a -> s{_nlCustomer = a})++-- | The ISO 639-1 code of the language notifications are returned in. The+-- default is English (en).+nlLanguage :: Lens' NotificationsList (Maybe Text)+nlLanguage+  = lens _nlLanguage (\ s a -> s{_nlLanguage = a})++-- | The token to specify the page of results to retrieve.+nlPageToken :: Lens' NotificationsList (Maybe Text)+nlPageToken+  = lens _nlPageToken (\ s a -> s{_nlPageToken = a})++-- | Maximum number of notifications to return per page. The default is 100.+nlMaxResults :: Lens' NotificationsList (Maybe Word32)+nlMaxResults+  = lens _nlMaxResults (\ s a -> s{_nlMaxResults = a})+      . mapping _Coerce++instance GoogleRequest NotificationsList where+        type Rs NotificationsList = Notifications+        requestClient NotificationsList{..}+          = go _nlCustomer _nlLanguage _nlPageToken+              _nlMaxResults+              (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy NotificationsListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Notifications/Patch.hs view
@@ -0,0 +1,113 @@+{-# 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.Directory.Notifications.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 a notification. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.notifications.patch@.+module Network.Google.Resource.Directory.Notifications.Patch+    (+    -- * REST Resource+      NotificationsPatchResource++    -- * Creating a Request+    , notificationsPatch+    , NotificationsPatch++    -- * Request Lenses+    , npPayload+    , npCustomer+    , npNotificationId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.notifications.patch@ method which the+-- 'NotificationsPatch' request conforms to.+type NotificationsPatchResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "notifications" :>+                 Capture "notificationId" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Notification :>+                       Patch '[JSON] Notification++-- | Updates a notification. This method supports patch semantics.+--+-- /See:/ 'notificationsPatch' smart constructor.+data NotificationsPatch = NotificationsPatch+    { _npPayload        :: !Notification+    , _npCustomer       :: !Text+    , _npNotificationId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NotificationsPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'npPayload'+--+-- * 'npCustomer'+--+-- * 'npNotificationId'+notificationsPatch+    :: Notification -- ^ 'npPayload'+    -> Text -- ^ 'npCustomer'+    -> Text -- ^ 'npNotificationId'+    -> NotificationsPatch+notificationsPatch pNpPayload_ pNpCustomer_ pNpNotificationId_ =+    NotificationsPatch+    { _npPayload = pNpPayload_+    , _npCustomer = pNpCustomer_+    , _npNotificationId = pNpNotificationId_+    }++-- | Multipart request metadata.+npPayload :: Lens' NotificationsPatch Notification+npPayload+  = lens _npPayload (\ s a -> s{_npPayload = a})++-- | The unique ID for the customer\'s Google account.+npCustomer :: Lens' NotificationsPatch Text+npCustomer+  = lens _npCustomer (\ s a -> s{_npCustomer = a})++-- | The unique ID of the notification.+npNotificationId :: Lens' NotificationsPatch Text+npNotificationId+  = lens _npNotificationId+      (\ s a -> s{_npNotificationId = a})++instance GoogleRequest NotificationsPatch where+        type Rs NotificationsPatch = Notification+        requestClient NotificationsPatch{..}+          = go _npCustomer _npNotificationId (Just AltJSON)+              _npPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy NotificationsPatchResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Notifications/Update.hs view
@@ -0,0 +1,113 @@+{-# 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.Directory.Notifications.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 notification.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.notifications.update@.+module Network.Google.Resource.Directory.Notifications.Update+    (+    -- * REST Resource+      NotificationsUpdateResource++    -- * Creating a Request+    , notificationsUpdate+    , NotificationsUpdate++    -- * Request Lenses+    , nuPayload+    , nuCustomer+    , nuNotificationId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.notifications.update@ method which the+-- 'NotificationsUpdate' request conforms to.+type NotificationsUpdateResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "notifications" :>+                 Capture "notificationId" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Notification :>+                       Put '[JSON] Notification++-- | Updates a notification.+--+-- /See:/ 'notificationsUpdate' smart constructor.+data NotificationsUpdate = NotificationsUpdate+    { _nuPayload        :: !Notification+    , _nuCustomer       :: !Text+    , _nuNotificationId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NotificationsUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nuPayload'+--+-- * 'nuCustomer'+--+-- * 'nuNotificationId'+notificationsUpdate+    :: Notification -- ^ 'nuPayload'+    -> Text -- ^ 'nuCustomer'+    -> Text -- ^ 'nuNotificationId'+    -> NotificationsUpdate+notificationsUpdate pNuPayload_ pNuCustomer_ pNuNotificationId_ =+    NotificationsUpdate+    { _nuPayload = pNuPayload_+    , _nuCustomer = pNuCustomer_+    , _nuNotificationId = pNuNotificationId_+    }++-- | Multipart request metadata.+nuPayload :: Lens' NotificationsUpdate Notification+nuPayload+  = lens _nuPayload (\ s a -> s{_nuPayload = a})++-- | The unique ID for the customer\'s Google account.+nuCustomer :: Lens' NotificationsUpdate Text+nuCustomer+  = lens _nuCustomer (\ s a -> s{_nuCustomer = a})++-- | The unique ID of the notification.+nuNotificationId :: Lens' NotificationsUpdate Text+nuNotificationId+  = lens _nuNotificationId+      (\ s a -> s{_nuNotificationId = a})++instance GoogleRequest NotificationsUpdate where+        type Rs NotificationsUpdate = Notification+        requestClient NotificationsUpdate{..}+          = go _nuCustomer _nuNotificationId (Just AltJSON)+              _nuPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy NotificationsUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Directory/OrgUnits/Delete.hs view
@@ -0,0 +1,100 @@+{-# 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.Directory.OrgUnits.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)+--+-- Remove Organization Unit+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.orgunits.delete@.+module Network.Google.Resource.Directory.OrgUnits.Delete+    (+    -- * REST Resource+      OrgUnitsDeleteResource++    -- * Creating a Request+    , orgUnitsDelete+    , OrgUnitsDelete++    -- * Request Lenses+    , oudOrgUnitPath+    , oudCustomerId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.orgunits.delete@ method which the+-- 'OrgUnitsDelete' request conforms to.+type OrgUnitsDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "orgunits" :>+                 Captures "orgUnitPath" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Remove Organization Unit+--+-- /See:/ 'orgUnitsDelete' smart constructor.+data OrgUnitsDelete = OrgUnitsDelete+    { _oudOrgUnitPath :: ![Text]+    , _oudCustomerId  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OrgUnitsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oudOrgUnitPath'+--+-- * 'oudCustomerId'+orgUnitsDelete+    :: [Text] -- ^ 'oudOrgUnitPath'+    -> Text -- ^ 'oudCustomerId'+    -> OrgUnitsDelete+orgUnitsDelete pOudOrgUnitPath_ pOudCustomerId_ =+    OrgUnitsDelete+    { _oudOrgUnitPath = _Coerce # pOudOrgUnitPath_+    , _oudCustomerId = pOudCustomerId_+    }++-- | Full path of the organization unit or its Id+oudOrgUnitPath :: Lens' OrgUnitsDelete [Text]+oudOrgUnitPath+  = lens _oudOrgUnitPath+      (\ s a -> s{_oudOrgUnitPath = a})+      . _Coerce++-- | Immutable id of the Google Apps account+oudCustomerId :: Lens' OrgUnitsDelete Text+oudCustomerId+  = lens _oudCustomerId+      (\ s a -> s{_oudCustomerId = a})++instance GoogleRequest OrgUnitsDelete where+        type Rs OrgUnitsDelete = ()+        requestClient OrgUnitsDelete{..}+          = go _oudCustomerId _oudOrgUnitPath (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy OrgUnitsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/OrgUnits/Get.hs view
@@ -0,0 +1,100 @@+{-# 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.Directory.OrgUnits.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)+--+-- Retrieve Organization Unit+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.orgunits.get@.+module Network.Google.Resource.Directory.OrgUnits.Get+    (+    -- * REST Resource+      OrgUnitsGetResource++    -- * Creating a Request+    , orgUnitsGet+    , OrgUnitsGet++    -- * Request Lenses+    , ougOrgUnitPath+    , ougCustomerId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.orgunits.get@ method which the+-- 'OrgUnitsGet' request conforms to.+type OrgUnitsGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "orgunits" :>+                 Captures "orgUnitPath" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] OrgUnit++-- | Retrieve Organization Unit+--+-- /See:/ 'orgUnitsGet' smart constructor.+data OrgUnitsGet = OrgUnitsGet+    { _ougOrgUnitPath :: ![Text]+    , _ougCustomerId  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OrgUnitsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ougOrgUnitPath'+--+-- * 'ougCustomerId'+orgUnitsGet+    :: [Text] -- ^ 'ougOrgUnitPath'+    -> Text -- ^ 'ougCustomerId'+    -> OrgUnitsGet+orgUnitsGet pOugOrgUnitPath_ pOugCustomerId_ =+    OrgUnitsGet+    { _ougOrgUnitPath = _Coerce # pOugOrgUnitPath_+    , _ougCustomerId = pOugCustomerId_+    }++-- | Full path of the organization unit or its Id+ougOrgUnitPath :: Lens' OrgUnitsGet [Text]+ougOrgUnitPath+  = lens _ougOrgUnitPath+      (\ s a -> s{_ougOrgUnitPath = a})+      . _Coerce++-- | Immutable id of the Google Apps account+ougCustomerId :: Lens' OrgUnitsGet Text+ougCustomerId+  = lens _ougCustomerId+      (\ s a -> s{_ougCustomerId = a})++instance GoogleRequest OrgUnitsGet where+        type Rs OrgUnitsGet = OrgUnit+        requestClient OrgUnitsGet{..}+          = go _ougCustomerId _ougOrgUnitPath (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy OrgUnitsGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/OrgUnits/Insert.hs view
@@ -0,0 +1,98 @@+{-# 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.Directory.OrgUnits.Insert+-- 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)+--+-- Add Organization Unit+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.orgunits.insert@.+module Network.Google.Resource.Directory.OrgUnits.Insert+    (+    -- * REST Resource+      OrgUnitsInsertResource++    -- * Creating a Request+    , orgUnitsInsert+    , OrgUnitsInsert++    -- * Request Lenses+    , ouiPayload+    , ouiCustomerId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.orgunits.insert@ method which the+-- 'OrgUnitsInsert' request conforms to.+type OrgUnitsInsertResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "orgunits" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] OrgUnit :> Post '[JSON] OrgUnit++-- | Add Organization Unit+--+-- /See:/ 'orgUnitsInsert' smart constructor.+data OrgUnitsInsert = OrgUnitsInsert+    { _ouiPayload    :: !OrgUnit+    , _ouiCustomerId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OrgUnitsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ouiPayload'+--+-- * 'ouiCustomerId'+orgUnitsInsert+    :: OrgUnit -- ^ 'ouiPayload'+    -> Text -- ^ 'ouiCustomerId'+    -> OrgUnitsInsert+orgUnitsInsert pOuiPayload_ pOuiCustomerId_ =+    OrgUnitsInsert+    { _ouiPayload = pOuiPayload_+    , _ouiCustomerId = pOuiCustomerId_+    }++-- | Multipart request metadata.+ouiPayload :: Lens' OrgUnitsInsert OrgUnit+ouiPayload+  = lens _ouiPayload (\ s a -> s{_ouiPayload = a})++-- | Immutable id of the Google Apps account+ouiCustomerId :: Lens' OrgUnitsInsert Text+ouiCustomerId+  = lens _ouiCustomerId+      (\ s a -> s{_ouiCustomerId = a})++instance GoogleRequest OrgUnitsInsert where+        type Rs OrgUnitsInsert = OrgUnit+        requestClient OrgUnitsInsert{..}+          = go _ouiCustomerId (Just AltJSON) _ouiPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy OrgUnitsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Directory/OrgUnits/List.hs view
@@ -0,0 +1,109 @@+{-# 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.Directory.OrgUnits.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)+--+-- Retrieve all Organization Units+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.orgunits.list@.+module Network.Google.Resource.Directory.OrgUnits.List+    (+    -- * REST Resource+      OrgUnitsListResource++    -- * Creating a Request+    , orgUnitsList+    , OrgUnitsList++    -- * Request Lenses+    , oulOrgUnitPath+    , oulCustomerId+    , oulType+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.orgunits.list@ method which the+-- 'OrgUnitsList' request conforms to.+type OrgUnitsListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "orgunits" :>+                 QueryParam "orgUnitPath" Text :>+                   QueryParam "type" OrgUnitsListType :>+                     QueryParam "alt" AltJSON :> Get '[JSON] OrgUnits++-- | Retrieve all Organization Units+--+-- /See:/ 'orgUnitsList' smart constructor.+data OrgUnitsList = OrgUnitsList+    { _oulOrgUnitPath :: !Text+    , _oulCustomerId  :: !Text+    , _oulType        :: !(Maybe OrgUnitsListType)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OrgUnitsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oulOrgUnitPath'+--+-- * 'oulCustomerId'+--+-- * 'oulType'+orgUnitsList+    :: Text -- ^ 'oulCustomerId'+    -> OrgUnitsList+orgUnitsList pOulCustomerId_ =+    OrgUnitsList+    { _oulOrgUnitPath = ""+    , _oulCustomerId = pOulCustomerId_+    , _oulType = Nothing+    }++-- | the URL-encoded organization unit\'s path or its Id+oulOrgUnitPath :: Lens' OrgUnitsList Text+oulOrgUnitPath+  = lens _oulOrgUnitPath+      (\ s a -> s{_oulOrgUnitPath = a})++-- | Immutable id of the Google Apps account+oulCustomerId :: Lens' OrgUnitsList Text+oulCustomerId+  = lens _oulCustomerId+      (\ s a -> s{_oulCustomerId = a})++-- | Whether to return all sub-organizations or just immediate children+oulType :: Lens' OrgUnitsList (Maybe OrgUnitsListType)+oulType = lens _oulType (\ s a -> s{_oulType = a})++instance GoogleRequest OrgUnitsList where+        type Rs OrgUnitsList = OrgUnits+        requestClient OrgUnitsList{..}+          = go _oulCustomerId (Just _oulOrgUnitPath) _oulType+              (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy OrgUnitsListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/OrgUnits/Patch.hs view
@@ -0,0 +1,113 @@+{-# 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.Directory.OrgUnits.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)+--+-- Update Organization Unit. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.orgunits.patch@.+module Network.Google.Resource.Directory.OrgUnits.Patch+    (+    -- * REST Resource+      OrgUnitsPatchResource++    -- * Creating a Request+    , orgUnitsPatch+    , OrgUnitsPatch++    -- * Request Lenses+    , oupPayload+    , oupOrgUnitPath+    , oupCustomerId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.orgunits.patch@ method which the+-- 'OrgUnitsPatch' request conforms to.+type OrgUnitsPatchResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "orgunits" :>+                 Captures "orgUnitPath" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] OrgUnit :> Patch '[JSON] OrgUnit++-- | Update Organization Unit. This method supports patch semantics.+--+-- /See:/ 'orgUnitsPatch' smart constructor.+data OrgUnitsPatch = OrgUnitsPatch+    { _oupPayload     :: !OrgUnit+    , _oupOrgUnitPath :: ![Text]+    , _oupCustomerId  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OrgUnitsPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oupPayload'+--+-- * 'oupOrgUnitPath'+--+-- * 'oupCustomerId'+orgUnitsPatch+    :: OrgUnit -- ^ 'oupPayload'+    -> [Text] -- ^ 'oupOrgUnitPath'+    -> Text -- ^ 'oupCustomerId'+    -> OrgUnitsPatch+orgUnitsPatch pOupPayload_ pOupOrgUnitPath_ pOupCustomerId_ =+    OrgUnitsPatch+    { _oupPayload = pOupPayload_+    , _oupOrgUnitPath = _Coerce # pOupOrgUnitPath_+    , _oupCustomerId = pOupCustomerId_+    }++-- | Multipart request metadata.+oupPayload :: Lens' OrgUnitsPatch OrgUnit+oupPayload+  = lens _oupPayload (\ s a -> s{_oupPayload = a})++-- | Full path of the organization unit or its Id+oupOrgUnitPath :: Lens' OrgUnitsPatch [Text]+oupOrgUnitPath+  = lens _oupOrgUnitPath+      (\ s a -> s{_oupOrgUnitPath = a})+      . _Coerce++-- | Immutable id of the Google Apps account+oupCustomerId :: Lens' OrgUnitsPatch Text+oupCustomerId+  = lens _oupCustomerId+      (\ s a -> s{_oupCustomerId = a})++instance GoogleRequest OrgUnitsPatch where+        type Rs OrgUnitsPatch = OrgUnit+        requestClient OrgUnitsPatch{..}+          = go _oupCustomerId _oupOrgUnitPath (Just AltJSON)+              _oupPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy OrgUnitsPatchResource)+                      mempty
+ gen/Network/Google/Resource/Directory/OrgUnits/Update.hs view
@@ -0,0 +1,113 @@+{-# 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.Directory.OrgUnits.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)+--+-- Update Organization Unit+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.orgunits.update@.+module Network.Google.Resource.Directory.OrgUnits.Update+    (+    -- * REST Resource+      OrgUnitsUpdateResource++    -- * Creating a Request+    , orgUnitsUpdate+    , OrgUnitsUpdate++    -- * Request Lenses+    , ouuPayload+    , ouuOrgUnitPath+    , ouuCustomerId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.orgunits.update@ method which the+-- 'OrgUnitsUpdate' request conforms to.+type OrgUnitsUpdateResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "orgunits" :>+                 Captures "orgUnitPath" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] OrgUnit :> Put '[JSON] OrgUnit++-- | Update Organization Unit+--+-- /See:/ 'orgUnitsUpdate' smart constructor.+data OrgUnitsUpdate = OrgUnitsUpdate+    { _ouuPayload     :: !OrgUnit+    , _ouuOrgUnitPath :: ![Text]+    , _ouuCustomerId  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OrgUnitsUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ouuPayload'+--+-- * 'ouuOrgUnitPath'+--+-- * 'ouuCustomerId'+orgUnitsUpdate+    :: OrgUnit -- ^ 'ouuPayload'+    -> [Text] -- ^ 'ouuOrgUnitPath'+    -> Text -- ^ 'ouuCustomerId'+    -> OrgUnitsUpdate+orgUnitsUpdate pOuuPayload_ pOuuOrgUnitPath_ pOuuCustomerId_ =+    OrgUnitsUpdate+    { _ouuPayload = pOuuPayload_+    , _ouuOrgUnitPath = _Coerce # pOuuOrgUnitPath_+    , _ouuCustomerId = pOuuCustomerId_+    }++-- | Multipart request metadata.+ouuPayload :: Lens' OrgUnitsUpdate OrgUnit+ouuPayload+  = lens _ouuPayload (\ s a -> s{_ouuPayload = a})++-- | Full path of the organization unit or its Id+ouuOrgUnitPath :: Lens' OrgUnitsUpdate [Text]+ouuOrgUnitPath+  = lens _ouuOrgUnitPath+      (\ s a -> s{_ouuOrgUnitPath = a})+      . _Coerce++-- | Immutable id of the Google Apps account+ouuCustomerId :: Lens' OrgUnitsUpdate Text+ouuCustomerId+  = lens _ouuCustomerId+      (\ s a -> s{_ouuCustomerId = a})++instance GoogleRequest OrgUnitsUpdate where+        type Rs OrgUnitsUpdate = OrgUnit+        requestClient OrgUnitsUpdate{..}+          = go _ouuCustomerId _ouuOrgUnitPath (Just AltJSON)+              _ouuPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy OrgUnitsUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Privileges/List.hs view
@@ -0,0 +1,86 @@+{-# 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.Directory.Privileges.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)+--+-- Retrieves a paginated list of all privileges for a customer.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.privileges.list@.+module Network.Google.Resource.Directory.Privileges.List+    (+    -- * REST Resource+      PrivilegesListResource++    -- * Creating a Request+    , privilegesList+    , PrivilegesList++    -- * Request Lenses+    , plCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.privileges.list@ method which the+-- 'PrivilegesList' request conforms to.+type PrivilegesListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "roles" :>+                 "ALL" :>+                   "privileges" :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Privileges++-- | Retrieves a paginated list of all privileges for a customer.+--+-- /See:/ 'privilegesList' smart constructor.+newtype PrivilegesList = PrivilegesList+    { _plCustomer :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PrivilegesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plCustomer'+privilegesList+    :: Text -- ^ 'plCustomer'+    -> PrivilegesList+privilegesList pPlCustomer_ =+    PrivilegesList+    { _plCustomer = pPlCustomer_+    }++-- | Immutable ID of the Google Apps account.+plCustomer :: Lens' PrivilegesList Text+plCustomer+  = lens _plCustomer (\ s a -> s{_plCustomer = a})++instance GoogleRequest PrivilegesList where+        type Rs PrivilegesList = Privileges+        requestClient PrivilegesList{..}+          = go _plCustomer (Just AltJSON) directoryService+          where go+                  = buildClient (Proxy :: Proxy PrivilegesListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/RoleAssignments/Delete.hs view
@@ -0,0 +1,99 @@+{-# 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.Directory.RoleAssignments.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 role assignment.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.roleAssignments.delete@.+module Network.Google.Resource.Directory.RoleAssignments.Delete+    (+    -- * REST Resource+      RoleAssignmentsDeleteResource++    -- * Creating a Request+    , roleAssignmentsDelete+    , RoleAssignmentsDelete++    -- * Request Lenses+    , radCustomer+    , radRoleAssignmentId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.roleAssignments.delete@ method which the+-- 'RoleAssignmentsDelete' request conforms to.+type RoleAssignmentsDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "roleassignments" :>+                 Capture "roleAssignmentId" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes a role assignment.+--+-- /See:/ 'roleAssignmentsDelete' smart constructor.+data RoleAssignmentsDelete = RoleAssignmentsDelete+    { _radCustomer         :: !Text+    , _radRoleAssignmentId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RoleAssignmentsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'radCustomer'+--+-- * 'radRoleAssignmentId'+roleAssignmentsDelete+    :: Text -- ^ 'radCustomer'+    -> Text -- ^ 'radRoleAssignmentId'+    -> RoleAssignmentsDelete+roleAssignmentsDelete pRadCustomer_ pRadRoleAssignmentId_ =+    RoleAssignmentsDelete+    { _radCustomer = pRadCustomer_+    , _radRoleAssignmentId = pRadRoleAssignmentId_+    }++-- | Immutable ID of the Google Apps account.+radCustomer :: Lens' RoleAssignmentsDelete Text+radCustomer+  = lens _radCustomer (\ s a -> s{_radCustomer = a})++-- | Immutable ID of the role assignment.+radRoleAssignmentId :: Lens' RoleAssignmentsDelete Text+radRoleAssignmentId+  = lens _radRoleAssignmentId+      (\ s a -> s{_radRoleAssignmentId = a})++instance GoogleRequest RoleAssignmentsDelete where+        type Rs RoleAssignmentsDelete = ()+        requestClient RoleAssignmentsDelete{..}+          = go _radCustomer _radRoleAssignmentId (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy RoleAssignmentsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/RoleAssignments/Get.hs view
@@ -0,0 +1,100 @@+{-# 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.Directory.RoleAssignments.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)+--+-- Retrieve a role assignment.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.roleAssignments.get@.+module Network.Google.Resource.Directory.RoleAssignments.Get+    (+    -- * REST Resource+      RoleAssignmentsGetResource++    -- * Creating a Request+    , roleAssignmentsGet+    , RoleAssignmentsGet++    -- * Request Lenses+    , ragCustomer+    , ragRoleAssignmentId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.roleAssignments.get@ method which the+-- 'RoleAssignmentsGet' request conforms to.+type RoleAssignmentsGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "roleassignments" :>+                 Capture "roleAssignmentId" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] RoleAssignment++-- | Retrieve a role assignment.+--+-- /See:/ 'roleAssignmentsGet' smart constructor.+data RoleAssignmentsGet = RoleAssignmentsGet+    { _ragCustomer         :: !Text+    , _ragRoleAssignmentId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RoleAssignmentsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ragCustomer'+--+-- * 'ragRoleAssignmentId'+roleAssignmentsGet+    :: Text -- ^ 'ragCustomer'+    -> Text -- ^ 'ragRoleAssignmentId'+    -> RoleAssignmentsGet+roleAssignmentsGet pRagCustomer_ pRagRoleAssignmentId_ =+    RoleAssignmentsGet+    { _ragCustomer = pRagCustomer_+    , _ragRoleAssignmentId = pRagRoleAssignmentId_+    }++-- | Immutable ID of the Google Apps account.+ragCustomer :: Lens' RoleAssignmentsGet Text+ragCustomer+  = lens _ragCustomer (\ s a -> s{_ragCustomer = a})++-- | Immutable ID of the role assignment.+ragRoleAssignmentId :: Lens' RoleAssignmentsGet Text+ragRoleAssignmentId+  = lens _ragRoleAssignmentId+      (\ s a -> s{_ragRoleAssignmentId = a})++instance GoogleRequest RoleAssignmentsGet where+        type Rs RoleAssignmentsGet = RoleAssignment+        requestClient RoleAssignmentsGet{..}+          = go _ragCustomer _ragRoleAssignmentId (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy RoleAssignmentsGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/RoleAssignments/Insert.hs view
@@ -0,0 +1,99 @@+{-# 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.Directory.RoleAssignments.Insert+-- 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 role assignment.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.roleAssignments.insert@.+module Network.Google.Resource.Directory.RoleAssignments.Insert+    (+    -- * REST Resource+      RoleAssignmentsInsertResource++    -- * Creating a Request+    , roleAssignmentsInsert+    , RoleAssignmentsInsert++    -- * Request Lenses+    , raiPayload+    , raiCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.roleAssignments.insert@ method which the+-- 'RoleAssignmentsInsert' request conforms to.+type RoleAssignmentsInsertResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "roleassignments" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] RoleAssignment :>+                     Post '[JSON] RoleAssignment++-- | Creates a role assignment.+--+-- /See:/ 'roleAssignmentsInsert' smart constructor.+data RoleAssignmentsInsert = RoleAssignmentsInsert+    { _raiPayload  :: !RoleAssignment+    , _raiCustomer :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RoleAssignmentsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'raiPayload'+--+-- * 'raiCustomer'+roleAssignmentsInsert+    :: RoleAssignment -- ^ 'raiPayload'+    -> Text -- ^ 'raiCustomer'+    -> RoleAssignmentsInsert+roleAssignmentsInsert pRaiPayload_ pRaiCustomer_ =+    RoleAssignmentsInsert+    { _raiPayload = pRaiPayload_+    , _raiCustomer = pRaiCustomer_+    }++-- | Multipart request metadata.+raiPayload :: Lens' RoleAssignmentsInsert RoleAssignment+raiPayload+  = lens _raiPayload (\ s a -> s{_raiPayload = a})++-- | Immutable ID of the Google Apps account.+raiCustomer :: Lens' RoleAssignmentsInsert Text+raiCustomer+  = lens _raiCustomer (\ s a -> s{_raiCustomer = a})++instance GoogleRequest RoleAssignmentsInsert where+        type Rs RoleAssignmentsInsert = RoleAssignment+        requestClient RoleAssignmentsInsert{..}+          = go _raiCustomer (Just AltJSON) _raiPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy RoleAssignmentsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Directory/RoleAssignments/List.hs view
@@ -0,0 +1,139 @@+{-# 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.Directory.RoleAssignments.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)+--+-- Retrieves a paginated list of all roleAssignments.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.roleAssignments.list@.+module Network.Google.Resource.Directory.RoleAssignments.List+    (+    -- * REST Resource+      RoleAssignmentsListResource++    -- * Creating a Request+    , roleAssignmentsList+    , RoleAssignmentsList++    -- * Request Lenses+    , ralRoleId+    , ralCustomer+    , ralPageToken+    , ralUserKey+    , ralMaxResults+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.roleAssignments.list@ method which the+-- 'RoleAssignmentsList' request conforms to.+type RoleAssignmentsListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "roleassignments" :>+                 QueryParam "roleId" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "userKey" Text :>+                       QueryParam "maxResults" (Textual Int32) :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] RoleAssignments++-- | Retrieves a paginated list of all roleAssignments.+--+-- /See:/ 'roleAssignmentsList' smart constructor.+data RoleAssignmentsList = RoleAssignmentsList+    { _ralRoleId     :: !(Maybe Text)+    , _ralCustomer   :: !Text+    , _ralPageToken  :: !(Maybe Text)+    , _ralUserKey    :: !(Maybe Text)+    , _ralMaxResults :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RoleAssignmentsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ralRoleId'+--+-- * 'ralCustomer'+--+-- * 'ralPageToken'+--+-- * 'ralUserKey'+--+-- * 'ralMaxResults'+roleAssignmentsList+    :: Text -- ^ 'ralCustomer'+    -> RoleAssignmentsList+roleAssignmentsList pRalCustomer_ =+    RoleAssignmentsList+    { _ralRoleId = Nothing+    , _ralCustomer = pRalCustomer_+    , _ralPageToken = Nothing+    , _ralUserKey = Nothing+    , _ralMaxResults = Nothing+    }++-- | Immutable ID of a role. If included in the request, returns only role+-- assignments containing this role ID.+ralRoleId :: Lens' RoleAssignmentsList (Maybe Text)+ralRoleId+  = lens _ralRoleId (\ s a -> s{_ralRoleId = a})++-- | Immutable ID of the Google Apps account.+ralCustomer :: Lens' RoleAssignmentsList Text+ralCustomer+  = lens _ralCustomer (\ s a -> s{_ralCustomer = a})++-- | Token to specify the next page in the list.+ralPageToken :: Lens' RoleAssignmentsList (Maybe Text)+ralPageToken+  = lens _ralPageToken (\ s a -> s{_ralPageToken = a})++-- | The user\'s primary email address, alias email address, or unique user+-- ID. If included in the request, returns role assignments only for this+-- user.+ralUserKey :: Lens' RoleAssignmentsList (Maybe Text)+ralUserKey+  = lens _ralUserKey (\ s a -> s{_ralUserKey = a})++-- | Maximum number of results to return.+ralMaxResults :: Lens' RoleAssignmentsList (Maybe Int32)+ralMaxResults+  = lens _ralMaxResults+      (\ s a -> s{_ralMaxResults = a})+      . mapping _Coerce++instance GoogleRequest RoleAssignmentsList where+        type Rs RoleAssignmentsList = RoleAssignments+        requestClient RoleAssignmentsList{..}+          = go _ralCustomer _ralRoleId _ralPageToken+              _ralUserKey+              _ralMaxResults+              (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy RoleAssignmentsListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Roles/Delete.hs view
@@ -0,0 +1,96 @@+{-# 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.Directory.Roles.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 role.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.roles.delete@.+module Network.Google.Resource.Directory.Roles.Delete+    (+    -- * REST Resource+      RolesDeleteResource++    -- * Creating a Request+    , rolesDelete+    , RolesDelete++    -- * Request Lenses+    , rdRoleId+    , rdCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.roles.delete@ method which the+-- 'RolesDelete' request conforms to.+type RolesDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "roles" :>+                 Capture "roleId" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes a role.+--+-- /See:/ 'rolesDelete' smart constructor.+data RolesDelete = RolesDelete+    { _rdRoleId   :: !Text+    , _rdCustomer :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RolesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdRoleId'+--+-- * 'rdCustomer'+rolesDelete+    :: Text -- ^ 'rdRoleId'+    -> Text -- ^ 'rdCustomer'+    -> RolesDelete+rolesDelete pRdRoleId_ pRdCustomer_ =+    RolesDelete+    { _rdRoleId = pRdRoleId_+    , _rdCustomer = pRdCustomer_+    }++-- | Immutable ID of the role.+rdRoleId :: Lens' RolesDelete Text+rdRoleId = lens _rdRoleId (\ s a -> s{_rdRoleId = a})++-- | Immutable ID of the Google Apps account.+rdCustomer :: Lens' RolesDelete Text+rdCustomer+  = lens _rdCustomer (\ s a -> s{_rdCustomer = a})++instance GoogleRequest RolesDelete where+        type Rs RolesDelete = ()+        requestClient RolesDelete{..}+          = go _rdCustomer _rdRoleId (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy RolesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Roles/Get.hs view
@@ -0,0 +1,96 @@+{-# 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.Directory.Roles.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)+--+-- Retrieves a role.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.roles.get@.+module Network.Google.Resource.Directory.Roles.Get+    (+    -- * REST Resource+      RolesGetResource++    -- * Creating a Request+    , rolesGet+    , RolesGet++    -- * Request Lenses+    , rgRoleId+    , rgCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.roles.get@ method which the+-- 'RolesGet' request conforms to.+type RolesGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "roles" :>+                 Capture "roleId" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Role++-- | Retrieves a role.+--+-- /See:/ 'rolesGet' smart constructor.+data RolesGet = RolesGet+    { _rgRoleId   :: !Text+    , _rgCustomer :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RolesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rgRoleId'+--+-- * 'rgCustomer'+rolesGet+    :: Text -- ^ 'rgRoleId'+    -> Text -- ^ 'rgCustomer'+    -> RolesGet+rolesGet pRgRoleId_ pRgCustomer_ =+    RolesGet+    { _rgRoleId = pRgRoleId_+    , _rgCustomer = pRgCustomer_+    }++-- | Immutable ID of the role.+rgRoleId :: Lens' RolesGet Text+rgRoleId = lens _rgRoleId (\ s a -> s{_rgRoleId = a})++-- | Immutable ID of the Google Apps account.+rgCustomer :: Lens' RolesGet Text+rgCustomer+  = lens _rgCustomer (\ s a -> s{_rgCustomer = a})++instance GoogleRequest RolesGet where+        type Rs RolesGet = Role+        requestClient RolesGet{..}+          = go _rgCustomer _rgRoleId (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy RolesGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Roles/Insert.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Roles.Insert+-- 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 role.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.roles.insert@.+module Network.Google.Resource.Directory.Roles.Insert+    (+    -- * REST Resource+      RolesInsertResource++    -- * Creating a Request+    , rolesInsert+    , RolesInsert++    -- * Request Lenses+    , riPayload+    , riCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.roles.insert@ method which the+-- 'RolesInsert' request conforms to.+type RolesInsertResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "roles" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Role :> Post '[JSON] Role++-- | Creates a role.+--+-- /See:/ 'rolesInsert' smart constructor.+data RolesInsert = RolesInsert+    { _riPayload  :: !Role+    , _riCustomer :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RolesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'riPayload'+--+-- * 'riCustomer'+rolesInsert+    :: Role -- ^ 'riPayload'+    -> Text -- ^ 'riCustomer'+    -> RolesInsert+rolesInsert pRiPayload_ pRiCustomer_ =+    RolesInsert+    { _riPayload = pRiPayload_+    , _riCustomer = pRiCustomer_+    }++-- | Multipart request metadata.+riPayload :: Lens' RolesInsert Role+riPayload+  = lens _riPayload (\ s a -> s{_riPayload = a})++-- | Immutable ID of the Google Apps account.+riCustomer :: Lens' RolesInsert Text+riCustomer+  = lens _riCustomer (\ s a -> s{_riCustomer = a})++instance GoogleRequest RolesInsert where+        type Rs RolesInsert = Role+        requestClient RolesInsert{..}+          = go _riCustomer (Just AltJSON) _riPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy RolesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Roles/List.hs view
@@ -0,0 +1,109 @@+{-# 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.Directory.Roles.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)+--+-- Retrieves a paginated list of all the roles in a domain.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.roles.list@.+module Network.Google.Resource.Directory.Roles.List+    (+    -- * REST Resource+      RolesListResource++    -- * Creating a Request+    , rolesList+    , RolesList++    -- * Request Lenses+    , rlCustomer+    , rlPageToken+    , rlMaxResults+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.roles.list@ method which the+-- 'RolesList' request conforms to.+type RolesListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "roles" :>+                 QueryParam "pageToken" Text :>+                   QueryParam "maxResults" (Textual Int32) :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Roles++-- | Retrieves a paginated list of all the roles in a domain.+--+-- /See:/ 'rolesList' smart constructor.+data RolesList = RolesList+    { _rlCustomer   :: !Text+    , _rlPageToken  :: !(Maybe Text)+    , _rlMaxResults :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RolesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rlCustomer'+--+-- * 'rlPageToken'+--+-- * 'rlMaxResults'+rolesList+    :: Text -- ^ 'rlCustomer'+    -> RolesList+rolesList pRlCustomer_ =+    RolesList+    { _rlCustomer = pRlCustomer_+    , _rlPageToken = Nothing+    , _rlMaxResults = Nothing+    }++-- | Immutable id of the Google Apps account.+rlCustomer :: Lens' RolesList Text+rlCustomer+  = lens _rlCustomer (\ s a -> s{_rlCustomer = a})++-- | Token to specify the next page in the list.+rlPageToken :: Lens' RolesList (Maybe Text)+rlPageToken+  = lens _rlPageToken (\ s a -> s{_rlPageToken = a})++-- | Maximum number of results to return.+rlMaxResults :: Lens' RolesList (Maybe Int32)+rlMaxResults+  = lens _rlMaxResults (\ s a -> s{_rlMaxResults = a})+      . mapping _Coerce++instance GoogleRequest RolesList where+        type Rs RolesList = Roles+        requestClient RolesList{..}+          = go _rlCustomer _rlPageToken _rlMaxResults+              (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy RolesListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Roles/Patch.hs view
@@ -0,0 +1,108 @@+{-# 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.Directory.Roles.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 a role. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.roles.patch@.+module Network.Google.Resource.Directory.Roles.Patch+    (+    -- * REST Resource+      RolesPatchResource++    -- * Creating a Request+    , rolesPatch+    , RolesPatch++    -- * Request Lenses+    , rpPayload+    , rpRoleId+    , rpCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.roles.patch@ method which the+-- 'RolesPatch' request conforms to.+type RolesPatchResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "roles" :>+                 Capture "roleId" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Role :> Patch '[JSON] Role++-- | Updates a role. This method supports patch semantics.+--+-- /See:/ 'rolesPatch' smart constructor.+data RolesPatch = RolesPatch+    { _rpPayload  :: !Role+    , _rpRoleId   :: !Text+    , _rpCustomer :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RolesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rpPayload'+--+-- * 'rpRoleId'+--+-- * 'rpCustomer'+rolesPatch+    :: Role -- ^ 'rpPayload'+    -> Text -- ^ 'rpRoleId'+    -> Text -- ^ 'rpCustomer'+    -> RolesPatch+rolesPatch pRpPayload_ pRpRoleId_ pRpCustomer_ =+    RolesPatch+    { _rpPayload = pRpPayload_+    , _rpRoleId = pRpRoleId_+    , _rpCustomer = pRpCustomer_+    }++-- | Multipart request metadata.+rpPayload :: Lens' RolesPatch Role+rpPayload+  = lens _rpPayload (\ s a -> s{_rpPayload = a})++-- | Immutable ID of the role.+rpRoleId :: Lens' RolesPatch Text+rpRoleId = lens _rpRoleId (\ s a -> s{_rpRoleId = a})++-- | Immutable ID of the Google Apps account.+rpCustomer :: Lens' RolesPatch Text+rpCustomer+  = lens _rpCustomer (\ s a -> s{_rpCustomer = a})++instance GoogleRequest RolesPatch where+        type Rs RolesPatch = Role+        requestClient RolesPatch{..}+          = go _rpCustomer _rpRoleId (Just AltJSON) _rpPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy RolesPatchResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Roles/Update.hs view
@@ -0,0 +1,108 @@+{-# 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.Directory.Roles.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 role.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.roles.update@.+module Network.Google.Resource.Directory.Roles.Update+    (+    -- * REST Resource+      RolesUpdateResource++    -- * Creating a Request+    , rolesUpdate+    , RolesUpdate++    -- * Request Lenses+    , ruPayload+    , ruRoleId+    , ruCustomer+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.roles.update@ method which the+-- 'RolesUpdate' request conforms to.+type RolesUpdateResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customer" Text :>+               "roles" :>+                 Capture "roleId" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Role :> Put '[JSON] Role++-- | Updates a role.+--+-- /See:/ 'rolesUpdate' smart constructor.+data RolesUpdate = RolesUpdate+    { _ruPayload  :: !Role+    , _ruRoleId   :: !Text+    , _ruCustomer :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RolesUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ruPayload'+--+-- * 'ruRoleId'+--+-- * 'ruCustomer'+rolesUpdate+    :: Role -- ^ 'ruPayload'+    -> Text -- ^ 'ruRoleId'+    -> Text -- ^ 'ruCustomer'+    -> RolesUpdate+rolesUpdate pRuPayload_ pRuRoleId_ pRuCustomer_ =+    RolesUpdate+    { _ruPayload = pRuPayload_+    , _ruRoleId = pRuRoleId_+    , _ruCustomer = pRuCustomer_+    }++-- | Multipart request metadata.+ruPayload :: Lens' RolesUpdate Role+ruPayload+  = lens _ruPayload (\ s a -> s{_ruPayload = a})++-- | Immutable ID of the role.+ruRoleId :: Lens' RolesUpdate Text+ruRoleId = lens _ruRoleId (\ s a -> s{_ruRoleId = a})++-- | Immutable ID of the Google Apps account.+ruCustomer :: Lens' RolesUpdate Text+ruCustomer+  = lens _ruCustomer (\ s a -> s{_ruCustomer = a})++instance GoogleRequest RolesUpdate where+        type Rs RolesUpdate = Role+        requestClient RolesUpdate{..}+          = go _ruCustomer _ruRoleId (Just AltJSON) _ruPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy RolesUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Schemas/Delete.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Schemas.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)+--+-- Delete schema+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.schemas.delete@.+module Network.Google.Resource.Directory.Schemas.Delete+    (+    -- * REST Resource+      SchemasDeleteResource++    -- * Creating a Request+    , schemasDelete+    , SchemasDelete++    -- * Request Lenses+    , sdCustomerId+    , sdSchemaKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.schemas.delete@ method which the+-- 'SchemasDelete' request conforms to.+type SchemasDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "schemas" :>+                 Capture "schemaKey" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Delete schema+--+-- /See:/ 'schemasDelete' smart constructor.+data SchemasDelete = SchemasDelete+    { _sdCustomerId :: !Text+    , _sdSchemaKey  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SchemasDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdCustomerId'+--+-- * 'sdSchemaKey'+schemasDelete+    :: Text -- ^ 'sdCustomerId'+    -> Text -- ^ 'sdSchemaKey'+    -> SchemasDelete+schemasDelete pSdCustomerId_ pSdSchemaKey_ =+    SchemasDelete+    { _sdCustomerId = pSdCustomerId_+    , _sdSchemaKey = pSdSchemaKey_+    }++-- | Immutable id of the Google Apps account+sdCustomerId :: Lens' SchemasDelete Text+sdCustomerId+  = lens _sdCustomerId (\ s a -> s{_sdCustomerId = a})++-- | Name or immutable Id of the schema+sdSchemaKey :: Lens' SchemasDelete Text+sdSchemaKey+  = lens _sdSchemaKey (\ s a -> s{_sdSchemaKey = a})++instance GoogleRequest SchemasDelete where+        type Rs SchemasDelete = ()+        requestClient SchemasDelete{..}+          = go _sdCustomerId _sdSchemaKey (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy SchemasDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Schemas/Get.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Schemas.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)+--+-- Retrieve schema+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.schemas.get@.+module Network.Google.Resource.Directory.Schemas.Get+    (+    -- * REST Resource+      SchemasGetResource++    -- * Creating a Request+    , schemasGet+    , SchemasGet++    -- * Request Lenses+    , sgCustomerId+    , sgSchemaKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.schemas.get@ method which the+-- 'SchemasGet' request conforms to.+type SchemasGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "schemas" :>+                 Capture "schemaKey" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Schema++-- | Retrieve schema+--+-- /See:/ 'schemasGet' smart constructor.+data SchemasGet = SchemasGet+    { _sgCustomerId :: !Text+    , _sgSchemaKey  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SchemasGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgCustomerId'+--+-- * 'sgSchemaKey'+schemasGet+    :: Text -- ^ 'sgCustomerId'+    -> Text -- ^ 'sgSchemaKey'+    -> SchemasGet+schemasGet pSgCustomerId_ pSgSchemaKey_ =+    SchemasGet+    { _sgCustomerId = pSgCustomerId_+    , _sgSchemaKey = pSgSchemaKey_+    }++-- | Immutable id of the Google Apps account+sgCustomerId :: Lens' SchemasGet Text+sgCustomerId+  = lens _sgCustomerId (\ s a -> s{_sgCustomerId = a})++-- | Name or immutable Id of the schema+sgSchemaKey :: Lens' SchemasGet Text+sgSchemaKey+  = lens _sgSchemaKey (\ s a -> s{_sgSchemaKey = a})++instance GoogleRequest SchemasGet where+        type Rs SchemasGet = Schema+        requestClient SchemasGet{..}+          = go _sgCustomerId _sgSchemaKey (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy SchemasGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Schemas/Insert.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Schemas.Insert+-- 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)+--+-- Create schema.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.schemas.insert@.+module Network.Google.Resource.Directory.Schemas.Insert+    (+    -- * REST Resource+      SchemasInsertResource++    -- * Creating a Request+    , schemasInsert+    , SchemasInsert++    -- * Request Lenses+    , siPayload+    , siCustomerId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.schemas.insert@ method which the+-- 'SchemasInsert' request conforms to.+type SchemasInsertResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "schemas" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Schema :> Post '[JSON] Schema++-- | Create schema.+--+-- /See:/ 'schemasInsert' smart constructor.+data SchemasInsert = SchemasInsert+    { _siPayload    :: !Schema+    , _siCustomerId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SchemasInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siPayload'+--+-- * 'siCustomerId'+schemasInsert+    :: Schema -- ^ 'siPayload'+    -> Text -- ^ 'siCustomerId'+    -> SchemasInsert+schemasInsert pSiPayload_ pSiCustomerId_ =+    SchemasInsert+    { _siPayload = pSiPayload_+    , _siCustomerId = pSiCustomerId_+    }++-- | Multipart request metadata.+siPayload :: Lens' SchemasInsert Schema+siPayload+  = lens _siPayload (\ s a -> s{_siPayload = a})++-- | Immutable id of the Google Apps account+siCustomerId :: Lens' SchemasInsert Text+siCustomerId+  = lens _siCustomerId (\ s a -> s{_siCustomerId = a})++instance GoogleRequest SchemasInsert where+        type Rs SchemasInsert = Schema+        requestClient SchemasInsert{..}+          = go _siCustomerId (Just AltJSON) _siPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy SchemasInsertResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Schemas/List.hs view
@@ -0,0 +1,84 @@+{-# 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.Directory.Schemas.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)+--+-- Retrieve all schemas for a customer+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.schemas.list@.+module Network.Google.Resource.Directory.Schemas.List+    (+    -- * REST Resource+      SchemasListResource++    -- * Creating a Request+    , schemasList+    , SchemasList++    -- * Request Lenses+    , slCustomerId+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.schemas.list@ method which the+-- 'SchemasList' request conforms to.+type SchemasListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "schemas" :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Schemas++-- | Retrieve all schemas for a customer+--+-- /See:/ 'schemasList' smart constructor.+newtype SchemasList = SchemasList+    { _slCustomerId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SchemasList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'slCustomerId'+schemasList+    :: Text -- ^ 'slCustomerId'+    -> SchemasList+schemasList pSlCustomerId_ =+    SchemasList+    { _slCustomerId = pSlCustomerId_+    }++-- | Immutable id of the Google Apps account+slCustomerId :: Lens' SchemasList Text+slCustomerId+  = lens _slCustomerId (\ s a -> s{_slCustomerId = a})++instance GoogleRequest SchemasList where+        type Rs SchemasList = Schemas+        requestClient SchemasList{..}+          = go _slCustomerId (Just AltJSON) directoryService+          where go+                  = buildClient (Proxy :: Proxy SchemasListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Schemas/Patch.hs view
@@ -0,0 +1,110 @@+{-# 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.Directory.Schemas.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)+--+-- Update schema. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.schemas.patch@.+module Network.Google.Resource.Directory.Schemas.Patch+    (+    -- * REST Resource+      SchemasPatchResource++    -- * Creating a Request+    , schemasPatch+    , SchemasPatch++    -- * Request Lenses+    , spPayload+    , spCustomerId+    , spSchemaKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.schemas.patch@ method which the+-- 'SchemasPatch' request conforms to.+type SchemasPatchResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "schemas" :>+                 Capture "schemaKey" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Schema :> Patch '[JSON] Schema++-- | Update schema. This method supports patch semantics.+--+-- /See:/ 'schemasPatch' smart constructor.+data SchemasPatch = SchemasPatch+    { _spPayload    :: !Schema+    , _spCustomerId :: !Text+    , _spSchemaKey  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SchemasPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'spPayload'+--+-- * 'spCustomerId'+--+-- * 'spSchemaKey'+schemasPatch+    :: Schema -- ^ 'spPayload'+    -> Text -- ^ 'spCustomerId'+    -> Text -- ^ 'spSchemaKey'+    -> SchemasPatch+schemasPatch pSpPayload_ pSpCustomerId_ pSpSchemaKey_ =+    SchemasPatch+    { _spPayload = pSpPayload_+    , _spCustomerId = pSpCustomerId_+    , _spSchemaKey = pSpSchemaKey_+    }++-- | Multipart request metadata.+spPayload :: Lens' SchemasPatch Schema+spPayload+  = lens _spPayload (\ s a -> s{_spPayload = a})++-- | Immutable id of the Google Apps account+spCustomerId :: Lens' SchemasPatch Text+spCustomerId+  = lens _spCustomerId (\ s a -> s{_spCustomerId = a})++-- | Name or immutable Id of the schema.+spSchemaKey :: Lens' SchemasPatch Text+spSchemaKey+  = lens _spSchemaKey (\ s a -> s{_spSchemaKey = a})++instance GoogleRequest SchemasPatch where+        type Rs SchemasPatch = Schema+        requestClient SchemasPatch{..}+          = go _spCustomerId _spSchemaKey (Just AltJSON)+              _spPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy SchemasPatchResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Schemas/Update.hs view
@@ -0,0 +1,110 @@+{-# 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.Directory.Schemas.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)+--+-- Update schema+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.schemas.update@.+module Network.Google.Resource.Directory.Schemas.Update+    (+    -- * REST Resource+      SchemasUpdateResource++    -- * Creating a Request+    , schemasUpdate+    , SchemasUpdate++    -- * Request Lenses+    , suPayload+    , suCustomerId+    , suSchemaKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.schemas.update@ method which the+-- 'SchemasUpdate' request conforms to.+type SchemasUpdateResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "customer" :>+             Capture "customerId" Text :>+               "schemas" :>+                 Capture "schemaKey" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Schema :> Put '[JSON] Schema++-- | Update schema+--+-- /See:/ 'schemasUpdate' smart constructor.+data SchemasUpdate = SchemasUpdate+    { _suPayload    :: !Schema+    , _suCustomerId :: !Text+    , _suSchemaKey  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SchemasUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'suPayload'+--+-- * 'suCustomerId'+--+-- * 'suSchemaKey'+schemasUpdate+    :: Schema -- ^ 'suPayload'+    -> Text -- ^ 'suCustomerId'+    -> Text -- ^ 'suSchemaKey'+    -> SchemasUpdate+schemasUpdate pSuPayload_ pSuCustomerId_ pSuSchemaKey_ =+    SchemasUpdate+    { _suPayload = pSuPayload_+    , _suCustomerId = pSuCustomerId_+    , _suSchemaKey = pSuSchemaKey_+    }++-- | Multipart request metadata.+suPayload :: Lens' SchemasUpdate Schema+suPayload+  = lens _suPayload (\ s a -> s{_suPayload = a})++-- | Immutable id of the Google Apps account+suCustomerId :: Lens' SchemasUpdate Text+suCustomerId+  = lens _suCustomerId (\ s a -> s{_suCustomerId = a})++-- | Name or immutable Id of the schema.+suSchemaKey :: Lens' SchemasUpdate Text+suSchemaKey+  = lens _suSchemaKey (\ s a -> s{_suSchemaKey = a})++instance GoogleRequest SchemasUpdate where+        type Rs SchemasUpdate = Schema+        requestClient SchemasUpdate{..}+          = go _suCustomerId _suSchemaKey (Just AltJSON)+              _suPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy SchemasUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Tokens/Delete.hs view
@@ -0,0 +1,98 @@+{-# 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.Directory.Tokens.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)+--+-- Delete all access tokens issued by a user for an application.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.tokens.delete@.+module Network.Google.Resource.Directory.Tokens.Delete+    (+    -- * REST Resource+      TokensDeleteResource++    -- * Creating a Request+    , tokensDelete+    , TokensDelete++    -- * Request Lenses+    , tdClientId+    , tdUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.tokens.delete@ method which the+-- 'TokensDelete' request conforms to.+type TokensDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "tokens" :>+                 Capture "clientId" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Delete all access tokens issued by a user for an application.+--+-- /See:/ 'tokensDelete' smart constructor.+data TokensDelete = TokensDelete+    { _tdClientId :: !Text+    , _tdUserKey  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TokensDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdClientId'+--+-- * 'tdUserKey'+tokensDelete+    :: Text -- ^ 'tdClientId'+    -> Text -- ^ 'tdUserKey'+    -> TokensDelete+tokensDelete pTdClientId_ pTdUserKey_ =+    TokensDelete+    { _tdClientId = pTdClientId_+    , _tdUserKey = pTdUserKey_+    }++-- | The Client ID of the application the token is issued to.+tdClientId :: Lens' TokensDelete Text+tdClientId+  = lens _tdClientId (\ s a -> s{_tdClientId = a})++-- | Identifies the user in the API request. The value can be the user\'s+-- primary email address, alias email address, or unique user ID.+tdUserKey :: Lens' TokensDelete Text+tdUserKey+  = lens _tdUserKey (\ s a -> s{_tdUserKey = a})++instance GoogleRequest TokensDelete where+        type Rs TokensDelete = ()+        requestClient TokensDelete{..}+          = go _tdUserKey _tdClientId (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy TokensDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Tokens/Get.hs view
@@ -0,0 +1,98 @@+{-# 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.Directory.Tokens.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)+--+-- Get information about an access token issued by a user.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.tokens.get@.+module Network.Google.Resource.Directory.Tokens.Get+    (+    -- * REST Resource+      TokensGetResource++    -- * Creating a Request+    , tokensGet+    , TokensGet++    -- * Request Lenses+    , tgClientId+    , tgUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.tokens.get@ method which the+-- 'TokensGet' request conforms to.+type TokensGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "tokens" :>+                 Capture "clientId" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Token++-- | Get information about an access token issued by a user.+--+-- /See:/ 'tokensGet' smart constructor.+data TokensGet = TokensGet+    { _tgClientId :: !Text+    , _tgUserKey  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TokensGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tgClientId'+--+-- * 'tgUserKey'+tokensGet+    :: Text -- ^ 'tgClientId'+    -> Text -- ^ 'tgUserKey'+    -> TokensGet+tokensGet pTgClientId_ pTgUserKey_ =+    TokensGet+    { _tgClientId = pTgClientId_+    , _tgUserKey = pTgUserKey_+    }++-- | The Client ID of the application the token is issued to.+tgClientId :: Lens' TokensGet Text+tgClientId+  = lens _tgClientId (\ s a -> s{_tgClientId = a})++-- | Identifies the user in the API request. The value can be the user\'s+-- primary email address, alias email address, or unique user ID.+tgUserKey :: Lens' TokensGet Text+tgUserKey+  = lens _tgUserKey (\ s a -> s{_tgUserKey = a})++instance GoogleRequest TokensGet where+        type Rs TokensGet = Token+        requestClient TokensGet{..}+          = go _tgUserKey _tgClientId (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy TokensGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Tokens/List.hs view
@@ -0,0 +1,87 @@+{-# 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.Directory.Tokens.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 the set of tokens specified user has issued to 3rd party+-- applications.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.tokens.list@.+module Network.Google.Resource.Directory.Tokens.List+    (+    -- * REST Resource+      TokensListResource++    -- * Creating a Request+    , tokensList+    , TokensList++    -- * Request Lenses+    , tlUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.tokens.list@ method which the+-- 'TokensList' request conforms to.+type TokensListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "tokens" :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Tokens++-- | Returns the set of tokens specified user has issued to 3rd party+-- applications.+--+-- /See:/ 'tokensList' smart constructor.+newtype TokensList = TokensList+    { _tlUserKey :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TokensList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tlUserKey'+tokensList+    :: Text -- ^ 'tlUserKey'+    -> TokensList+tokensList pTlUserKey_ =+    TokensList+    { _tlUserKey = pTlUserKey_+    }++-- | Identifies the user in the API request. The value can be the user\'s+-- primary email address, alias email address, or unique user ID.+tlUserKey :: Lens' TokensList Text+tlUserKey+  = lens _tlUserKey (\ s a -> s{_tlUserKey = a})++instance GoogleRequest TokensList where+        type Rs TokensList = Tokens+        requestClient TokensList{..}+          = go _tlUserKey (Just AltJSON) directoryService+          where go+                  = buildClient (Proxy :: Proxy TokensListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Aliases/Delete.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Users.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)+--+-- Remove a alias for the user+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.aliases.delete@.+module Network.Google.Resource.Directory.Users.Aliases.Delete+    (+    -- * REST Resource+      UsersAliasesDeleteResource++    -- * Creating a Request+    , usersAliasesDelete+    , UsersAliasesDelete++    -- * Request Lenses+    , uadAlias+    , uadUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.aliases.delete@ method which the+-- 'UsersAliasesDelete' request conforms to.+type UsersAliasesDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "aliases" :>+                 Capture "alias" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Remove a alias for the user+--+-- /See:/ 'usersAliasesDelete' smart constructor.+data UsersAliasesDelete = UsersAliasesDelete+    { _uadAlias   :: !Text+    , _uadUserKey :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersAliasesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uadAlias'+--+-- * 'uadUserKey'+usersAliasesDelete+    :: Text -- ^ 'uadAlias'+    -> Text -- ^ 'uadUserKey'+    -> UsersAliasesDelete+usersAliasesDelete pUadAlias_ pUadUserKey_ =+    UsersAliasesDelete+    { _uadAlias = pUadAlias_+    , _uadUserKey = pUadUserKey_+    }++-- | The alias to be removed+uadAlias :: Lens' UsersAliasesDelete Text+uadAlias = lens _uadAlias (\ s a -> s{_uadAlias = a})++-- | Email or immutable Id of the user+uadUserKey :: Lens' UsersAliasesDelete Text+uadUserKey+  = lens _uadUserKey (\ s a -> s{_uadUserKey = a})++instance GoogleRequest UsersAliasesDelete where+        type Rs UsersAliasesDelete = ()+        requestClient UsersAliasesDelete{..}+          = go _uadUserKey _uadAlias (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersAliasesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Aliases/Insert.hs view
@@ -0,0 +1,98 @@+{-# 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.Directory.Users.Aliases.Insert+-- 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)+--+-- Add a alias for the user+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.aliases.insert@.+module Network.Google.Resource.Directory.Users.Aliases.Insert+    (+    -- * REST Resource+      UsersAliasesInsertResource++    -- * Creating a Request+    , usersAliasesInsert+    , UsersAliasesInsert++    -- * Request Lenses+    , uaiPayload+    , uaiUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.aliases.insert@ method which the+-- 'UsersAliasesInsert' request conforms to.+type UsersAliasesInsertResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "aliases" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Alias :> Post '[JSON] Alias++-- | Add a alias for the user+--+-- /See:/ 'usersAliasesInsert' smart constructor.+data UsersAliasesInsert = UsersAliasesInsert+    { _uaiPayload :: !Alias+    , _uaiUserKey :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersAliasesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uaiPayload'+--+-- * 'uaiUserKey'+usersAliasesInsert+    :: Alias -- ^ 'uaiPayload'+    -> Text -- ^ 'uaiUserKey'+    -> UsersAliasesInsert+usersAliasesInsert pUaiPayload_ pUaiUserKey_ =+    UsersAliasesInsert+    { _uaiPayload = pUaiPayload_+    , _uaiUserKey = pUaiUserKey_+    }++-- | Multipart request metadata.+uaiPayload :: Lens' UsersAliasesInsert Alias+uaiPayload+  = lens _uaiPayload (\ s a -> s{_uaiPayload = a})++-- | Email or immutable Id of the user+uaiUserKey :: Lens' UsersAliasesInsert Text+uaiUserKey+  = lens _uaiUserKey (\ s a -> s{_uaiUserKey = a})++instance GoogleRequest UsersAliasesInsert where+        type Rs UsersAliasesInsert = Alias+        requestClient UsersAliasesInsert{..}+          = go _uaiUserKey (Just AltJSON) _uaiPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersAliasesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Aliases/List.hs view
@@ -0,0 +1,96 @@+{-# 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.Directory.Users.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)+--+-- List all aliases for a user+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.aliases.list@.+module Network.Google.Resource.Directory.Users.Aliases.List+    (+    -- * REST Resource+      UsersAliasesListResource++    -- * Creating a Request+    , usersAliasesList+    , UsersAliasesList++    -- * Request Lenses+    , ualEvent+    , ualUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.aliases.list@ method which the+-- 'UsersAliasesList' request conforms to.+type UsersAliasesListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "aliases" :>+                 QueryParam "event" UsersAliasesListEvent :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Aliases++-- | List all aliases for a user+--+-- /See:/ 'usersAliasesList' smart constructor.+data UsersAliasesList = UsersAliasesList+    { _ualEvent   :: !(Maybe UsersAliasesListEvent)+    , _ualUserKey :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersAliasesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ualEvent'+--+-- * 'ualUserKey'+usersAliasesList+    :: Text -- ^ 'ualUserKey'+    -> UsersAliasesList+usersAliasesList pUalUserKey_ =+    UsersAliasesList+    { _ualEvent = Nothing+    , _ualUserKey = pUalUserKey_+    }++-- | Event on which subscription is intended (if subscribing)+ualEvent :: Lens' UsersAliasesList (Maybe UsersAliasesListEvent)+ualEvent = lens _ualEvent (\ s a -> s{_ualEvent = a})++-- | Email or immutable Id of the user+ualUserKey :: Lens' UsersAliasesList Text+ualUserKey+  = lens _ualUserKey (\ s a -> s{_ualUserKey = a})++instance GoogleRequest UsersAliasesList where+        type Rs UsersAliasesList = Aliases+        requestClient UsersAliasesList{..}+          = go _ualUserKey _ualEvent (Just AltJSON)+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersAliasesListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Aliases/Watch.hs view
@@ -0,0 +1,109 @@+{-# 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.Directory.Users.Aliases.Watch+-- 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)+--+-- Watch for changes in user aliases list+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.aliases.watch@.+module Network.Google.Resource.Directory.Users.Aliases.Watch+    (+    -- * REST Resource+      UsersAliasesWatchResource++    -- * Creating a Request+    , usersAliasesWatch+    , UsersAliasesWatch++    -- * Request Lenses+    , uawEvent+    , uawPayload+    , uawUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.aliases.watch@ method which the+-- 'UsersAliasesWatch' request conforms to.+type UsersAliasesWatchResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "aliases" :>+                 "watch" :>+                   QueryParam "event" UsersAliasesWatchEvent :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Channel :> Post '[JSON] Channel++-- | Watch for changes in user aliases list+--+-- /See:/ 'usersAliasesWatch' smart constructor.+data UsersAliasesWatch = UsersAliasesWatch+    { _uawEvent   :: !(Maybe UsersAliasesWatchEvent)+    , _uawPayload :: !Channel+    , _uawUserKey :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersAliasesWatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uawEvent'+--+-- * 'uawPayload'+--+-- * 'uawUserKey'+usersAliasesWatch+    :: Channel -- ^ 'uawPayload'+    -> Text -- ^ 'uawUserKey'+    -> UsersAliasesWatch+usersAliasesWatch pUawPayload_ pUawUserKey_ =+    UsersAliasesWatch+    { _uawEvent = Nothing+    , _uawPayload = pUawPayload_+    , _uawUserKey = pUawUserKey_+    }++-- | Event on which subscription is intended (if subscribing)+uawEvent :: Lens' UsersAliasesWatch (Maybe UsersAliasesWatchEvent)+uawEvent = lens _uawEvent (\ s a -> s{_uawEvent = a})++-- | Multipart request metadata.+uawPayload :: Lens' UsersAliasesWatch Channel+uawPayload+  = lens _uawPayload (\ s a -> s{_uawPayload = a})++-- | Email or immutable Id of the user+uawUserKey :: Lens' UsersAliasesWatch Text+uawUserKey+  = lens _uawUserKey (\ s a -> s{_uawUserKey = a})++instance GoogleRequest UsersAliasesWatch where+        type Rs UsersAliasesWatch = Channel+        requestClient UsersAliasesWatch{..}+          = go _uawUserKey _uawEvent (Just AltJSON) _uawPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersAliasesWatchResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Delete.hs view
@@ -0,0 +1,83 @@+{-# 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.Directory.Users.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)+--+-- Delete user+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.delete@.+module Network.Google.Resource.Directory.Users.Delete+    (+    -- * REST Resource+      UsersDeleteResource++    -- * Creating a Request+    , usersDelete+    , UsersDelete++    -- * Request Lenses+    , udUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.delete@ method which the+-- 'UsersDelete' request conforms to.+type UsersDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Delete user+--+-- /See:/ 'usersDelete' smart constructor.+newtype UsersDelete = UsersDelete+    { _udUserKey :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udUserKey'+usersDelete+    :: Text -- ^ 'udUserKey'+    -> UsersDelete+usersDelete pUdUserKey_ =+    UsersDelete+    { _udUserKey = pUdUserKey_+    }++-- | Email or immutable Id of the user+udUserKey :: Lens' UsersDelete Text+udUserKey+  = lens _udUserKey (\ s a -> s{_udUserKey = a})++instance GoogleRequest UsersDelete where+        type Rs UsersDelete = ()+        requestClient UsersDelete{..}+          = go _udUserKey (Just AltJSON) directoryService+          where go+                  = buildClient (Proxy :: Proxy UsersDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Get.hs view
@@ -0,0 +1,121 @@+{-# 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.Directory.Users.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)+--+-- retrieve user+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.get@.+module Network.Google.Resource.Directory.Users.Get+    (+    -- * REST Resource+      UsersGetResource++    -- * Creating a Request+    , usersGet+    , UsersGet++    -- * Request Lenses+    , ugViewType+    , ugCustomFieldMask+    , ugProjection+    , ugUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.get@ method which the+-- 'UsersGet' request conforms to.+type UsersGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               QueryParam "viewType" UsersGetViewType :>+                 QueryParam "customFieldMask" Text :>+                   QueryParam "projection" UsersGetProjection :>+                     QueryParam "alt" AltJSON :> Get '[JSON] User++-- | retrieve user+--+-- /See:/ 'usersGet' smart constructor.+data UsersGet = UsersGet+    { _ugViewType        :: !UsersGetViewType+    , _ugCustomFieldMask :: !(Maybe Text)+    , _ugProjection      :: !UsersGetProjection+    , _ugUserKey         :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ugViewType'+--+-- * 'ugCustomFieldMask'+--+-- * 'ugProjection'+--+-- * 'ugUserKey'+usersGet+    :: Text -- ^ 'ugUserKey'+    -> UsersGet+usersGet pUgUserKey_ =+    UsersGet+    { _ugViewType = UGVTAdminView+    , _ugCustomFieldMask = Nothing+    , _ugProjection = UGPBasic+    , _ugUserKey = pUgUserKey_+    }++-- | Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user.+ugViewType :: Lens' UsersGet UsersGetViewType+ugViewType+  = lens _ugViewType (\ s a -> s{_ugViewType = a})++-- | Comma-separated list of schema names. All fields from these schemas are+-- fetched. This should only be set when projection=custom.+ugCustomFieldMask :: Lens' UsersGet (Maybe Text)+ugCustomFieldMask+  = lens _ugCustomFieldMask+      (\ s a -> s{_ugCustomFieldMask = a})++-- | What subset of fields to fetch for this user.+ugProjection :: Lens' UsersGet UsersGetProjection+ugProjection+  = lens _ugProjection (\ s a -> s{_ugProjection = a})++-- | Email or immutable Id of the user+ugUserKey :: Lens' UsersGet Text+ugUserKey+  = lens _ugUserKey (\ s a -> s{_ugUserKey = a})++instance GoogleRequest UsersGet where+        type Rs UsersGet = User+        requestClient UsersGet{..}+          = go _ugUserKey (Just _ugViewType) _ugCustomFieldMask+              (Just _ugProjection)+              (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy UsersGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Insert.hs view
@@ -0,0 +1,83 @@+{-# 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.Directory.Users.Insert+-- 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)+--+-- create user.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.insert@.+module Network.Google.Resource.Directory.Users.Insert+    (+    -- * REST Resource+      UsersInsertResource++    -- * Creating a Request+    , usersInsert+    , UsersInsert++    -- * Request Lenses+    , uiPayload+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.insert@ method which the+-- 'UsersInsert' request conforms to.+type UsersInsertResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             QueryParam "alt" AltJSON :>+               ReqBody '[JSON] User :> Post '[JSON] User++-- | create user.+--+-- /See:/ 'usersInsert' smart constructor.+newtype UsersInsert = UsersInsert+    { _uiPayload :: User+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uiPayload'+usersInsert+    :: User -- ^ 'uiPayload'+    -> UsersInsert+usersInsert pUiPayload_ =+    UsersInsert+    { _uiPayload = pUiPayload_+    }++-- | Multipart request metadata.+uiPayload :: Lens' UsersInsert User+uiPayload+  = lens _uiPayload (\ s a -> s{_uiPayload = a})++instance GoogleRequest UsersInsert where+        type Rs UsersInsert = User+        requestClient UsersInsert{..}+          = go (Just AltJSON) _uiPayload directoryService+          where go+                  = buildClient (Proxy :: Proxy UsersInsertResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/List.hs view
@@ -0,0 +1,220 @@+{-# 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.Directory.Users.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)+--+-- Retrieve either deleted users or all users in a domain (paginated)+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.list@.+module Network.Google.Resource.Directory.Users.List+    (+    -- * REST Resource+      UsersListResource++    -- * Creating a Request+    , usersList+    , UsersList++    -- * Request Lenses+    , ulEvent+    , ulOrderBy+    , ulViewType+    , ulCustomFieldMask+    , ulDomain+    , ulShowDeleted+    , ulSortOrder+    , ulCustomer+    , ulQuery+    , ulProjection+    , ulPageToken+    , ulMaxResults+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.list@ method which the+-- 'UsersList' request conforms to.+type UsersListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             QueryParam "event" UsersListEvent :>+               QueryParam "orderBy" UsersListOrderBy :>+                 QueryParam "viewType" UsersListViewType :>+                   QueryParam "customFieldMask" Text :>+                     QueryParam "domain" Text :>+                       QueryParam "showDeleted" Text :>+                         QueryParam "sortOrder" UsersListSortOrder :>+                           QueryParam "customer" Text :>+                             QueryParam "query" Text :>+                               QueryParam "projection" UsersListProjection :>+                                 QueryParam "pageToken" Text :>+                                   QueryParam "maxResults" (Textual Int32) :>+                                     QueryParam "alt" AltJSON :>+                                       Get '[JSON] Users++-- | Retrieve either deleted users or all users in a domain (paginated)+--+-- /See:/ 'usersList' smart constructor.+data UsersList = UsersList+    { _ulEvent           :: !(Maybe UsersListEvent)+    , _ulOrderBy         :: !(Maybe UsersListOrderBy)+    , _ulViewType        :: !UsersListViewType+    , _ulCustomFieldMask :: !(Maybe Text)+    , _ulDomain          :: !(Maybe Text)+    , _ulShowDeleted     :: !(Maybe Text)+    , _ulSortOrder       :: !(Maybe UsersListSortOrder)+    , _ulCustomer        :: !(Maybe Text)+    , _ulQuery           :: !(Maybe Text)+    , _ulProjection      :: !UsersListProjection+    , _ulPageToken       :: !(Maybe Text)+    , _ulMaxResults      :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ulEvent'+--+-- * 'ulOrderBy'+--+-- * 'ulViewType'+--+-- * 'ulCustomFieldMask'+--+-- * 'ulDomain'+--+-- * 'ulShowDeleted'+--+-- * 'ulSortOrder'+--+-- * 'ulCustomer'+--+-- * 'ulQuery'+--+-- * 'ulProjection'+--+-- * 'ulPageToken'+--+-- * 'ulMaxResults'+usersList+    :: UsersList+usersList =+    UsersList+    { _ulEvent = Nothing+    , _ulOrderBy = Nothing+    , _ulViewType = AdminView+    , _ulCustomFieldMask = Nothing+    , _ulDomain = Nothing+    , _ulShowDeleted = Nothing+    , _ulSortOrder = Nothing+    , _ulCustomer = Nothing+    , _ulQuery = Nothing+    , _ulProjection = ULPBasic+    , _ulPageToken = Nothing+    , _ulMaxResults = Nothing+    }++-- | Event on which subscription is intended (if subscribing)+ulEvent :: Lens' UsersList (Maybe UsersListEvent)+ulEvent = lens _ulEvent (\ s a -> s{_ulEvent = a})++-- | Column to use for sorting results+ulOrderBy :: Lens' UsersList (Maybe UsersListOrderBy)+ulOrderBy+  = lens _ulOrderBy (\ s a -> s{_ulOrderBy = a})++-- | Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user.+ulViewType :: Lens' UsersList UsersListViewType+ulViewType+  = lens _ulViewType (\ s a -> s{_ulViewType = a})++-- | Comma-separated list of schema names. All fields from these schemas are+-- fetched. This should only be set when projection=custom.+ulCustomFieldMask :: Lens' UsersList (Maybe Text)+ulCustomFieldMask+  = lens _ulCustomFieldMask+      (\ s a -> s{_ulCustomFieldMask = a})++-- | Name of the domain. Fill this field to get users from only this domain.+-- To return all users in a multi-domain fill customer field instead.+ulDomain :: Lens' UsersList (Maybe Text)+ulDomain = lens _ulDomain (\ s a -> s{_ulDomain = a})++-- | If set to true retrieves the list of deleted users. Default is false+ulShowDeleted :: Lens' UsersList (Maybe Text)+ulShowDeleted+  = lens _ulShowDeleted+      (\ s a -> s{_ulShowDeleted = a})++-- | Whether to return results in ascending or descending order.+ulSortOrder :: Lens' UsersList (Maybe UsersListSortOrder)+ulSortOrder+  = lens _ulSortOrder (\ s a -> s{_ulSortOrder = a})++-- | Immutable id of the Google Apps account. In case of multi-domain, to+-- fetch all users for a customer, fill this field instead of domain.+ulCustomer :: Lens' UsersList (Maybe Text)+ulCustomer+  = lens _ulCustomer (\ s a -> s{_ulCustomer = a})++-- | Query string search. Should be of the form \"\". Complete documentation+-- is at+-- https:\/\/developers.google.com\/admin-sdk\/directory\/v1\/guides\/search-users+ulQuery :: Lens' UsersList (Maybe Text)+ulQuery = lens _ulQuery (\ s a -> s{_ulQuery = a})++-- | What subset of fields to fetch for this user.+ulProjection :: Lens' UsersList UsersListProjection+ulProjection+  = lens _ulProjection (\ s a -> s{_ulProjection = a})++-- | Token to specify next page in the list+ulPageToken :: Lens' UsersList (Maybe Text)+ulPageToken+  = lens _ulPageToken (\ s a -> s{_ulPageToken = a})++-- | Maximum number of results to return. Default is 100. Max allowed is 500+ulMaxResults :: Lens' UsersList (Maybe Int32)+ulMaxResults+  = lens _ulMaxResults (\ s a -> s{_ulMaxResults = a})+      . mapping _Coerce++instance GoogleRequest UsersList where+        type Rs UsersList = Users+        requestClient UsersList{..}+          = go _ulEvent _ulOrderBy (Just _ulViewType)+              _ulCustomFieldMask+              _ulDomain+              _ulShowDeleted+              _ulSortOrder+              _ulCustomer+              _ulQuery+              (Just _ulProjection)+              _ulPageToken+              _ulMaxResults+              (Just AltJSON)+              directoryService+          where go+                  = buildClient (Proxy :: Proxy UsersListResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/MakeAdmin.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Users.MakeAdmin+-- 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)+--+-- change admin status of a user+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.makeAdmin@.+module Network.Google.Resource.Directory.Users.MakeAdmin+    (+    -- * REST Resource+      UsersMakeAdminResource++    -- * Creating a Request+    , usersMakeAdmin+    , UsersMakeAdmin++    -- * Request Lenses+    , umaPayload+    , umaUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.makeAdmin@ method which the+-- 'UsersMakeAdmin' request conforms to.+type UsersMakeAdminResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "makeAdmin" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] UserMakeAdmin :> Post '[JSON] ()++-- | change admin status of a user+--+-- /See:/ 'usersMakeAdmin' smart constructor.+data UsersMakeAdmin = UsersMakeAdmin+    { _umaPayload :: !UserMakeAdmin+    , _umaUserKey :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersMakeAdmin' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umaPayload'+--+-- * 'umaUserKey'+usersMakeAdmin+    :: UserMakeAdmin -- ^ 'umaPayload'+    -> Text -- ^ 'umaUserKey'+    -> UsersMakeAdmin+usersMakeAdmin pUmaPayload_ pUmaUserKey_ =+    UsersMakeAdmin+    { _umaPayload = pUmaPayload_+    , _umaUserKey = pUmaUserKey_+    }++-- | Multipart request metadata.+umaPayload :: Lens' UsersMakeAdmin UserMakeAdmin+umaPayload+  = lens _umaPayload (\ s a -> s{_umaPayload = a})++-- | Email or immutable Id of the user as admin+umaUserKey :: Lens' UsersMakeAdmin Text+umaUserKey+  = lens _umaUserKey (\ s a -> s{_umaUserKey = a})++instance GoogleRequest UsersMakeAdmin where+        type Rs UsersMakeAdmin = ()+        requestClient UsersMakeAdmin{..}+          = go _umaUserKey (Just AltJSON) _umaPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy UsersMakeAdminResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Patch.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Users.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)+--+-- update user. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.patch@.+module Network.Google.Resource.Directory.Users.Patch+    (+    -- * REST Resource+      UsersPatchResource++    -- * Creating a Request+    , usersPatch+    , UsersPatch++    -- * Request Lenses+    , upPayload+    , upUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.patch@ method which the+-- 'UsersPatch' request conforms to.+type UsersPatchResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] User :> Patch '[JSON] User++-- | update user. This method supports patch semantics.+--+-- /See:/ 'usersPatch' smart constructor.+data UsersPatch = UsersPatch+    { _upPayload :: !User+    , _upUserKey :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upPayload'+--+-- * 'upUserKey'+usersPatch+    :: User -- ^ 'upPayload'+    -> Text -- ^ 'upUserKey'+    -> UsersPatch+usersPatch pUpPayload_ pUpUserKey_ =+    UsersPatch+    { _upPayload = pUpPayload_+    , _upUserKey = pUpUserKey_+    }++-- | Multipart request metadata.+upPayload :: Lens' UsersPatch User+upPayload+  = lens _upPayload (\ s a -> s{_upPayload = a})++-- | Email or immutable Id of the user. If Id, it should match with id of+-- user object+upUserKey :: Lens' UsersPatch Text+upUserKey+  = lens _upUserKey (\ s a -> s{_upUserKey = a})++instance GoogleRequest UsersPatch where+        type Rs UsersPatch = User+        requestClient UsersPatch{..}+          = go _upUserKey (Just AltJSON) _upPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy UsersPatchResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Photos/Delete.hs view
@@ -0,0 +1,86 @@+{-# 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.Directory.Users.Photos.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)+--+-- Remove photos for the user+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.photos.delete@.+module Network.Google.Resource.Directory.Users.Photos.Delete+    (+    -- * REST Resource+      UsersPhotosDeleteResource++    -- * Creating a Request+    , usersPhotosDelete+    , UsersPhotosDelete++    -- * Request Lenses+    , updUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.photos.delete@ method which the+-- 'UsersPhotosDelete' request conforms to.+type UsersPhotosDeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "photos" :>+                 "thumbnail" :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Remove photos for the user+--+-- /See:/ 'usersPhotosDelete' smart constructor.+newtype UsersPhotosDelete = UsersPhotosDelete+    { _updUserKey :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersPhotosDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'updUserKey'+usersPhotosDelete+    :: Text -- ^ 'updUserKey'+    -> UsersPhotosDelete+usersPhotosDelete pUpdUserKey_ =+    UsersPhotosDelete+    { _updUserKey = pUpdUserKey_+    }++-- | Email or immutable Id of the user+updUserKey :: Lens' UsersPhotosDelete Text+updUserKey+  = lens _updUserKey (\ s a -> s{_updUserKey = a})++instance GoogleRequest UsersPhotosDelete where+        type Rs UsersPhotosDelete = ()+        requestClient UsersPhotosDelete{..}+          = go _updUserKey (Just AltJSON) directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersPhotosDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Photos/Get.hs view
@@ -0,0 +1,85 @@+{-# 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.Directory.Users.Photos.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)+--+-- Retrieve photo of a user+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.photos.get@.+module Network.Google.Resource.Directory.Users.Photos.Get+    (+    -- * REST Resource+      UsersPhotosGetResource++    -- * Creating a Request+    , usersPhotosGet+    , UsersPhotosGet++    -- * Request Lenses+    , upgUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.photos.get@ method which the+-- 'UsersPhotosGet' request conforms to.+type UsersPhotosGetResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "photos" :>+                 "thumbnail" :>+                   QueryParam "alt" AltJSON :> Get '[JSON] UserPhoto++-- | Retrieve photo of a user+--+-- /See:/ 'usersPhotosGet' smart constructor.+newtype UsersPhotosGet = UsersPhotosGet+    { _upgUserKey :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersPhotosGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upgUserKey'+usersPhotosGet+    :: Text -- ^ 'upgUserKey'+    -> UsersPhotosGet+usersPhotosGet pUpgUserKey_ =+    UsersPhotosGet+    { _upgUserKey = pUpgUserKey_+    }++-- | Email or immutable Id of the user+upgUserKey :: Lens' UsersPhotosGet Text+upgUserKey+  = lens _upgUserKey (\ s a -> s{_upgUserKey = a})++instance GoogleRequest UsersPhotosGet where+        type Rs UsersPhotosGet = UserPhoto+        requestClient UsersPhotosGet{..}+          = go _upgUserKey (Just AltJSON) directoryService+          where go+                  = buildClient (Proxy :: Proxy UsersPhotosGetResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Photos/Patch.hs view
@@ -0,0 +1,99 @@+{-# 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.Directory.Users.Photos.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)+--+-- Add a photo for the user. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.photos.patch@.+module Network.Google.Resource.Directory.Users.Photos.Patch+    (+    -- * REST Resource+      UsersPhotosPatchResource++    -- * Creating a Request+    , usersPhotosPatch+    , UsersPhotosPatch++    -- * Request Lenses+    , uppPayload+    , uppUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.photos.patch@ method which the+-- 'UsersPhotosPatch' request conforms to.+type UsersPhotosPatchResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "photos" :>+                 "thumbnail" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] UserPhoto :> Patch '[JSON] UserPhoto++-- | Add a photo for the user. This method supports patch semantics.+--+-- /See:/ 'usersPhotosPatch' smart constructor.+data UsersPhotosPatch = UsersPhotosPatch+    { _uppPayload :: !UserPhoto+    , _uppUserKey :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersPhotosPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uppPayload'+--+-- * 'uppUserKey'+usersPhotosPatch+    :: UserPhoto -- ^ 'uppPayload'+    -> Text -- ^ 'uppUserKey'+    -> UsersPhotosPatch+usersPhotosPatch pUppPayload_ pUppUserKey_ =+    UsersPhotosPatch+    { _uppPayload = pUppPayload_+    , _uppUserKey = pUppUserKey_+    }++-- | Multipart request metadata.+uppPayload :: Lens' UsersPhotosPatch UserPhoto+uppPayload+  = lens _uppPayload (\ s a -> s{_uppPayload = a})++-- | Email or immutable Id of the user+uppUserKey :: Lens' UsersPhotosPatch Text+uppUserKey+  = lens _uppUserKey (\ s a -> s{_uppUserKey = a})++instance GoogleRequest UsersPhotosPatch where+        type Rs UsersPhotosPatch = UserPhoto+        requestClient UsersPhotosPatch{..}+          = go _uppUserKey (Just AltJSON) _uppPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersPhotosPatchResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Photos/Update.hs view
@@ -0,0 +1,99 @@+{-# 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.Directory.Users.Photos.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)+--+-- Add a photo for the user+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.photos.update@.+module Network.Google.Resource.Directory.Users.Photos.Update+    (+    -- * REST Resource+      UsersPhotosUpdateResource++    -- * Creating a Request+    , usersPhotosUpdate+    , UsersPhotosUpdate++    -- * Request Lenses+    , upuPayload+    , upuUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.photos.update@ method which the+-- 'UsersPhotosUpdate' request conforms to.+type UsersPhotosUpdateResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "photos" :>+                 "thumbnail" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] UserPhoto :> Put '[JSON] UserPhoto++-- | Add a photo for the user+--+-- /See:/ 'usersPhotosUpdate' smart constructor.+data UsersPhotosUpdate = UsersPhotosUpdate+    { _upuPayload :: !UserPhoto+    , _upuUserKey :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersPhotosUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upuPayload'+--+-- * 'upuUserKey'+usersPhotosUpdate+    :: UserPhoto -- ^ 'upuPayload'+    -> Text -- ^ 'upuUserKey'+    -> UsersPhotosUpdate+usersPhotosUpdate pUpuPayload_ pUpuUserKey_ =+    UsersPhotosUpdate+    { _upuPayload = pUpuPayload_+    , _upuUserKey = pUpuUserKey_+    }++-- | Multipart request metadata.+upuPayload :: Lens' UsersPhotosUpdate UserPhoto+upuPayload+  = lens _upuPayload (\ s a -> s{_upuPayload = a})++-- | Email or immutable Id of the user+upuUserKey :: Lens' UsersPhotosUpdate Text+upuUserKey+  = lens _upuUserKey (\ s a -> s{_upuUserKey = a})++instance GoogleRequest UsersPhotosUpdate where+        type Rs UsersPhotosUpdate = UserPhoto+        requestClient UsersPhotosUpdate{..}+          = go _upuUserKey (Just AltJSON) _upuPayload+              directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersPhotosUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Undelete.hs view
@@ -0,0 +1,97 @@+{-# 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.Directory.Users.Undelete+-- 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)+--+-- Undelete a deleted user+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.undelete@.+module Network.Google.Resource.Directory.Users.Undelete+    (+    -- * REST Resource+      UsersUndeleteResource++    -- * Creating a Request+    , usersUndelete+    , UsersUndelete++    -- * Request Lenses+    , uuPayload+    , uuUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.undelete@ method which the+-- 'UsersUndelete' request conforms to.+type UsersUndeleteResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "undelete" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] UserUndelete :> Post '[JSON] ()++-- | Undelete a deleted user+--+-- /See:/ 'usersUndelete' smart constructor.+data UsersUndelete = UsersUndelete+    { _uuPayload :: !UserUndelete+    , _uuUserKey :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersUndelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uuPayload'+--+-- * 'uuUserKey'+usersUndelete+    :: UserUndelete -- ^ 'uuPayload'+    -> Text -- ^ 'uuUserKey'+    -> UsersUndelete+usersUndelete pUuPayload_ pUuUserKey_ =+    UsersUndelete+    { _uuPayload = pUuPayload_+    , _uuUserKey = pUuUserKey_+    }++-- | Multipart request metadata.+uuPayload :: Lens' UsersUndelete UserUndelete+uuPayload+  = lens _uuPayload (\ s a -> s{_uuPayload = a})++-- | The immutable id of the user+uuUserKey :: Lens' UsersUndelete Text+uuUserKey+  = lens _uuUserKey (\ s a -> s{_uuUserKey = a})++instance GoogleRequest UsersUndelete where+        type Rs UsersUndelete = ()+        requestClient UsersUndelete{..}+          = go _uuUserKey (Just AltJSON) _uuPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy UsersUndeleteResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Update.hs view
@@ -0,0 +1,95 @@+{-# 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.Directory.Users.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)+--+-- update user+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.update@.+module Network.Google.Resource.Directory.Users.Update+    (+    -- * REST Resource+      UsersUpdateResource++    -- * Creating a Request+    , usersUpdate+    , UsersUpdate++    -- * Request Lenses+    , uPayload+    , uUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.update@ method which the+-- 'UsersUpdate' request conforms to.+type UsersUpdateResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] User :> Put '[JSON] User++-- | update user+--+-- /See:/ 'usersUpdate' smart constructor.+data UsersUpdate = UsersUpdate+    { _uPayload :: !User+    , _uUserKey :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uPayload'+--+-- * 'uUserKey'+usersUpdate+    :: User -- ^ 'uPayload'+    -> Text -- ^ 'uUserKey'+    -> UsersUpdate+usersUpdate pUPayload_ pUUserKey_ =+    UsersUpdate+    { _uPayload = pUPayload_+    , _uUserKey = pUUserKey_+    }++-- | Multipart request metadata.+uPayload :: Lens' UsersUpdate User+uPayload = lens _uPayload (\ s a -> s{_uPayload = a})++-- | Email or immutable Id of the user. If Id, it should match with id of+-- user object+uUserKey :: Lens' UsersUpdate Text+uUserKey = lens _uUserKey (\ s a -> s{_uUserKey = a})++instance GoogleRequest UsersUpdate where+        type Rs UsersUpdate = User+        requestClient UsersUpdate{..}+          = go _uUserKey (Just AltJSON) _uPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy UsersUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Directory/Users/Watch.hs view
@@ -0,0 +1,234 @@+{-# 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.Directory.Users.Watch+-- 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)+--+-- Watch for changes in users list+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.users.watch@.+module Network.Google.Resource.Directory.Users.Watch+    (+    -- * REST Resource+      UsersWatchResource++    -- * Creating a Request+    , usersWatch+    , UsersWatch++    -- * Request Lenses+    , uwEvent+    , uwOrderBy+    , uwViewType+    , uwCustomFieldMask+    , uwDomain+    , uwShowDeleted+    , uwPayload+    , uwSortOrder+    , uwCustomer+    , uwQuery+    , uwProjection+    , uwPageToken+    , uwMaxResults+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.users.watch@ method which the+-- 'UsersWatch' request conforms to.+type UsersWatchResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             "watch" :>+               QueryParam "event" UsersWatchEvent :>+                 QueryParam "orderBy" UsersWatchOrderBy :>+                   QueryParam "viewType" UsersWatchViewType :>+                     QueryParam "customFieldMask" Text :>+                       QueryParam "domain" Text :>+                         QueryParam "showDeleted" Text :>+                           QueryParam "sortOrder" UsersWatchSortOrder :>+                             QueryParam "customer" Text :>+                               QueryParam "query" Text :>+                                 QueryParam "projection" UsersWatchProjection :>+                                   QueryParam "pageToken" Text :>+                                     QueryParam "maxResults" (Textual Int32) :>+                                       QueryParam "alt" AltJSON :>+                                         ReqBody '[JSON] Channel :>+                                           Post '[JSON] Channel++-- | Watch for changes in users list+--+-- /See:/ 'usersWatch' smart constructor.+data UsersWatch = UsersWatch+    { _uwEvent           :: !(Maybe UsersWatchEvent)+    , _uwOrderBy         :: !(Maybe UsersWatchOrderBy)+    , _uwViewType        :: !UsersWatchViewType+    , _uwCustomFieldMask :: !(Maybe Text)+    , _uwDomain          :: !(Maybe Text)+    , _uwShowDeleted     :: !(Maybe Text)+    , _uwPayload         :: !Channel+    , _uwSortOrder       :: !(Maybe UsersWatchSortOrder)+    , _uwCustomer        :: !(Maybe Text)+    , _uwQuery           :: !(Maybe Text)+    , _uwProjection      :: !UsersWatchProjection+    , _uwPageToken       :: !(Maybe Text)+    , _uwMaxResults      :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersWatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uwEvent'+--+-- * 'uwOrderBy'+--+-- * 'uwViewType'+--+-- * 'uwCustomFieldMask'+--+-- * 'uwDomain'+--+-- * 'uwShowDeleted'+--+-- * 'uwPayload'+--+-- * 'uwSortOrder'+--+-- * 'uwCustomer'+--+-- * 'uwQuery'+--+-- * 'uwProjection'+--+-- * 'uwPageToken'+--+-- * 'uwMaxResults'+usersWatch+    :: Channel -- ^ 'uwPayload'+    -> UsersWatch+usersWatch pUwPayload_ =+    UsersWatch+    { _uwEvent = Nothing+    , _uwOrderBy = Nothing+    , _uwViewType = UWVTAdminView+    , _uwCustomFieldMask = Nothing+    , _uwDomain = Nothing+    , _uwShowDeleted = Nothing+    , _uwPayload = pUwPayload_+    , _uwSortOrder = Nothing+    , _uwCustomer = Nothing+    , _uwQuery = Nothing+    , _uwProjection = UWPBasic+    , _uwPageToken = Nothing+    , _uwMaxResults = Nothing+    }++-- | Event on which subscription is intended (if subscribing)+uwEvent :: Lens' UsersWatch (Maybe UsersWatchEvent)+uwEvent = lens _uwEvent (\ s a -> s{_uwEvent = a})++-- | Column to use for sorting results+uwOrderBy :: Lens' UsersWatch (Maybe UsersWatchOrderBy)+uwOrderBy+  = lens _uwOrderBy (\ s a -> s{_uwOrderBy = a})++-- | Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user.+uwViewType :: Lens' UsersWatch UsersWatchViewType+uwViewType+  = lens _uwViewType (\ s a -> s{_uwViewType = a})++-- | Comma-separated list of schema names. All fields from these schemas are+-- fetched. This should only be set when projection=custom.+uwCustomFieldMask :: Lens' UsersWatch (Maybe Text)+uwCustomFieldMask+  = lens _uwCustomFieldMask+      (\ s a -> s{_uwCustomFieldMask = a})++-- | Name of the domain. Fill this field to get users from only this domain.+-- To return all users in a multi-domain fill customer field instead.+uwDomain :: Lens' UsersWatch (Maybe Text)+uwDomain = lens _uwDomain (\ s a -> s{_uwDomain = a})++-- | If set to true retrieves the list of deleted users. Default is false+uwShowDeleted :: Lens' UsersWatch (Maybe Text)+uwShowDeleted+  = lens _uwShowDeleted+      (\ s a -> s{_uwShowDeleted = a})++-- | Multipart request metadata.+uwPayload :: Lens' UsersWatch Channel+uwPayload+  = lens _uwPayload (\ s a -> s{_uwPayload = a})++-- | Whether to return results in ascending or descending order.+uwSortOrder :: Lens' UsersWatch (Maybe UsersWatchSortOrder)+uwSortOrder+  = lens _uwSortOrder (\ s a -> s{_uwSortOrder = a})++-- | Immutable id of the Google Apps account. In case of multi-domain, to+-- fetch all users for a customer, fill this field instead of domain.+uwCustomer :: Lens' UsersWatch (Maybe Text)+uwCustomer+  = lens _uwCustomer (\ s a -> s{_uwCustomer = a})++-- | Query string search. Should be of the form \"\". Complete documentation+-- is at+-- https:\/\/developers.google.com\/admin-sdk\/directory\/v1\/guides\/search-users+uwQuery :: Lens' UsersWatch (Maybe Text)+uwQuery = lens _uwQuery (\ s a -> s{_uwQuery = a})++-- | What subset of fields to fetch for this user.+uwProjection :: Lens' UsersWatch UsersWatchProjection+uwProjection+  = lens _uwProjection (\ s a -> s{_uwProjection = a})++-- | Token to specify next page in the list+uwPageToken :: Lens' UsersWatch (Maybe Text)+uwPageToken+  = lens _uwPageToken (\ s a -> s{_uwPageToken = a})++-- | Maximum number of results to return. Default is 100. Max allowed is 500+uwMaxResults :: Lens' UsersWatch (Maybe Int32)+uwMaxResults+  = lens _uwMaxResults (\ s a -> s{_uwMaxResults = a})+      . mapping _Coerce++instance GoogleRequest UsersWatch where+        type Rs UsersWatch = Channel+        requestClient UsersWatch{..}+          = go _uwEvent _uwOrderBy (Just _uwViewType)+              _uwCustomFieldMask+              _uwDomain+              _uwShowDeleted+              _uwSortOrder+              _uwCustomer+              _uwQuery+              (Just _uwProjection)+              _uwPageToken+              _uwMaxResults+              (Just AltJSON)+              _uwPayload+              directoryService+          where go+                  = buildClient (Proxy :: Proxy UsersWatchResource)+                      mempty
+ gen/Network/Google/Resource/Directory/VerificationCodes/Generate.hs view
@@ -0,0 +1,87 @@+{-# 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.Directory.VerificationCodes.Generate+-- 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)+--+-- Generate new backup verification codes for the user.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.verificationCodes.generate@.+module Network.Google.Resource.Directory.VerificationCodes.Generate+    (+    -- * REST Resource+      VerificationCodesGenerateResource++    -- * Creating a Request+    , verificationCodesGenerate+    , VerificationCodesGenerate++    -- * Request Lenses+    , vcgUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.verificationCodes.generate@ method which the+-- 'VerificationCodesGenerate' request conforms to.+type VerificationCodesGenerateResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "verificationCodes" :>+                 "generate" :>+                   QueryParam "alt" AltJSON :> Post '[JSON] ()++-- | Generate new backup verification codes for the user.+--+-- /See:/ 'verificationCodesGenerate' smart constructor.+newtype VerificationCodesGenerate = VerificationCodesGenerate+    { _vcgUserKey :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VerificationCodesGenerate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vcgUserKey'+verificationCodesGenerate+    :: Text -- ^ 'vcgUserKey'+    -> VerificationCodesGenerate+verificationCodesGenerate pVcgUserKey_ =+    VerificationCodesGenerate+    { _vcgUserKey = pVcgUserKey_+    }++-- | Email or immutable Id of the user+vcgUserKey :: Lens' VerificationCodesGenerate Text+vcgUserKey+  = lens _vcgUserKey (\ s a -> s{_vcgUserKey = a})++instance GoogleRequest VerificationCodesGenerate+         where+        type Rs VerificationCodesGenerate = ()+        requestClient VerificationCodesGenerate{..}+          = go _vcgUserKey (Just AltJSON) directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy VerificationCodesGenerateResource)+                      mempty
+ gen/Network/Google/Resource/Directory/VerificationCodes/Invalidate.hs view
@@ -0,0 +1,87 @@+{-# 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.Directory.VerificationCodes.Invalidate+-- 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)+--+-- Invalidate the current backup verification codes for the user.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.verificationCodes.invalidate@.+module Network.Google.Resource.Directory.VerificationCodes.Invalidate+    (+    -- * REST Resource+      VerificationCodesInvalidateResource++    -- * Creating a Request+    , verificationCodesInvalidate+    , VerificationCodesInvalidate++    -- * Request Lenses+    , vciUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.verificationCodes.invalidate@ method which the+-- 'VerificationCodesInvalidate' request conforms to.+type VerificationCodesInvalidateResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "verificationCodes" :>+                 "invalidate" :>+                   QueryParam "alt" AltJSON :> Post '[JSON] ()++-- | Invalidate the current backup verification codes for the user.+--+-- /See:/ 'verificationCodesInvalidate' smart constructor.+newtype VerificationCodesInvalidate = VerificationCodesInvalidate+    { _vciUserKey :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VerificationCodesInvalidate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vciUserKey'+verificationCodesInvalidate+    :: Text -- ^ 'vciUserKey'+    -> VerificationCodesInvalidate+verificationCodesInvalidate pVciUserKey_ =+    VerificationCodesInvalidate+    { _vciUserKey = pVciUserKey_+    }++-- | Email or immutable Id of the user+vciUserKey :: Lens' VerificationCodesInvalidate Text+vciUserKey+  = lens _vciUserKey (\ s a -> s{_vciUserKey = a})++instance GoogleRequest VerificationCodesInvalidate+         where+        type Rs VerificationCodesInvalidate = ()+        requestClient VerificationCodesInvalidate{..}+          = go _vciUserKey (Just AltJSON) directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy VerificationCodesInvalidateResource)+                      mempty
+ gen/Network/Google/Resource/Directory/VerificationCodes/List.hs view
@@ -0,0 +1,89 @@+{-# 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.Directory.VerificationCodes.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 the current set of valid backup verification codes for the+-- specified user.+--+-- /See:/ <https://developers.google.com/admin-sdk/directory/ Admin Directory API Reference> for @directory.verificationCodes.list@.+module Network.Google.Resource.Directory.VerificationCodes.List+    (+    -- * REST Resource+      VerificationCodesListResource++    -- * Creating a Request+    , verificationCodesList+    , VerificationCodesList++    -- * Request Lenses+    , vclUserKey+    ) where++import           Network.Google.Directory.Types+import           Network.Google.Prelude++-- | A resource alias for @directory.verificationCodes.list@ method which the+-- 'VerificationCodesList' request conforms to.+type VerificationCodesListResource =+     "admin" :>+       "directory" :>+         "v1" :>+           "users" :>+             Capture "userKey" Text :>+               "verificationCodes" :>+                 QueryParam "alt" AltJSON :>+                   Get '[JSON] VerificationCodes++-- | Returns the current set of valid backup verification codes for the+-- specified user.+--+-- /See:/ 'verificationCodesList' smart constructor.+newtype VerificationCodesList = VerificationCodesList+    { _vclUserKey :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VerificationCodesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vclUserKey'+verificationCodesList+    :: Text -- ^ 'vclUserKey'+    -> VerificationCodesList+verificationCodesList pVclUserKey_ =+    VerificationCodesList+    { _vclUserKey = pVclUserKey_+    }++-- | Identifies the user in the API request. The value can be the user\'s+-- primary email address, alias email address, or unique user ID.+vclUserKey :: Lens' VerificationCodesList Text+vclUserKey+  = lens _vclUserKey (\ s a -> s{_vclUserKey = a})++instance GoogleRequest VerificationCodesList where+        type Rs VerificationCodesList = VerificationCodes+        requestClient VerificationCodesList{..}+          = go _vclUserKey (Just AltJSON) directoryService+          where go+                  = buildClient+                      (Proxy :: Proxy VerificationCodesListResource)+                      mempty
+ gogol-admin-directory.cabal view
@@ -0,0 +1,136 @@+name:                  gogol-admin-directory+version:               0.0.1+synopsis:              Google Admin Directory 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:+    The Admin SDK Directory API lets you view and manage enterprise+    resources such as users and groups, administrative notifications,+    security features, and more.+    .+    /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 @directory_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.Directory+        , Network.Google.Directory.Types+        , Network.Google.Resource.Admin.Channels.Stop+        , Network.Google.Resource.Directory.Asps.Delete+        , Network.Google.Resource.Directory.Asps.Get+        , Network.Google.Resource.Directory.Asps.List+        , Network.Google.Resource.Directory.ChromeosDevices.Get+        , Network.Google.Resource.Directory.ChromeosDevices.List+        , Network.Google.Resource.Directory.ChromeosDevices.Patch+        , Network.Google.Resource.Directory.ChromeosDevices.Update+        , Network.Google.Resource.Directory.Customers.Get+        , Network.Google.Resource.Directory.Customers.Patch+        , Network.Google.Resource.Directory.Customers.Update+        , Network.Google.Resource.Directory.DomainAliases.Delete+        , Network.Google.Resource.Directory.DomainAliases.Get+        , Network.Google.Resource.Directory.DomainAliases.Insert+        , Network.Google.Resource.Directory.DomainAliases.List+        , Network.Google.Resource.Directory.Domains.Delete+        , Network.Google.Resource.Directory.Domains.Get+        , Network.Google.Resource.Directory.Domains.Insert+        , Network.Google.Resource.Directory.Domains.List+        , Network.Google.Resource.Directory.Groups.Aliases.Delete+        , Network.Google.Resource.Directory.Groups.Aliases.Insert+        , Network.Google.Resource.Directory.Groups.Aliases.List+        , Network.Google.Resource.Directory.Groups.Delete+        , Network.Google.Resource.Directory.Groups.Get+        , Network.Google.Resource.Directory.Groups.Insert+        , Network.Google.Resource.Directory.Groups.List+        , Network.Google.Resource.Directory.Groups.Patch+        , Network.Google.Resource.Directory.Groups.Update+        , Network.Google.Resource.Directory.Members.Delete+        , Network.Google.Resource.Directory.Members.Get+        , Network.Google.Resource.Directory.Members.Insert+        , Network.Google.Resource.Directory.Members.List+        , Network.Google.Resource.Directory.Members.Patch+        , Network.Google.Resource.Directory.Members.Update+        , Network.Google.Resource.Directory.MobileDevices.Action+        , Network.Google.Resource.Directory.MobileDevices.Delete+        , Network.Google.Resource.Directory.MobileDevices.Get+        , Network.Google.Resource.Directory.MobileDevices.List+        , Network.Google.Resource.Directory.Notifications.Delete+        , Network.Google.Resource.Directory.Notifications.Get+        , Network.Google.Resource.Directory.Notifications.List+        , Network.Google.Resource.Directory.Notifications.Patch+        , Network.Google.Resource.Directory.Notifications.Update+        , Network.Google.Resource.Directory.OrgUnits.Delete+        , Network.Google.Resource.Directory.OrgUnits.Get+        , Network.Google.Resource.Directory.OrgUnits.Insert+        , Network.Google.Resource.Directory.OrgUnits.List+        , Network.Google.Resource.Directory.OrgUnits.Patch+        , Network.Google.Resource.Directory.OrgUnits.Update+        , Network.Google.Resource.Directory.Privileges.List+        , Network.Google.Resource.Directory.RoleAssignments.Delete+        , Network.Google.Resource.Directory.RoleAssignments.Get+        , Network.Google.Resource.Directory.RoleAssignments.Insert+        , Network.Google.Resource.Directory.RoleAssignments.List+        , Network.Google.Resource.Directory.Roles.Delete+        , Network.Google.Resource.Directory.Roles.Get+        , Network.Google.Resource.Directory.Roles.Insert+        , Network.Google.Resource.Directory.Roles.List+        , Network.Google.Resource.Directory.Roles.Patch+        , Network.Google.Resource.Directory.Roles.Update+        , Network.Google.Resource.Directory.Schemas.Delete+        , Network.Google.Resource.Directory.Schemas.Get+        , Network.Google.Resource.Directory.Schemas.Insert+        , Network.Google.Resource.Directory.Schemas.List+        , Network.Google.Resource.Directory.Schemas.Patch+        , Network.Google.Resource.Directory.Schemas.Update+        , Network.Google.Resource.Directory.Tokens.Delete+        , Network.Google.Resource.Directory.Tokens.Get+        , Network.Google.Resource.Directory.Tokens.List+        , Network.Google.Resource.Directory.Users.Aliases.Delete+        , Network.Google.Resource.Directory.Users.Aliases.Insert+        , Network.Google.Resource.Directory.Users.Aliases.List+        , Network.Google.Resource.Directory.Users.Aliases.Watch+        , Network.Google.Resource.Directory.Users.Delete+        , Network.Google.Resource.Directory.Users.Get+        , Network.Google.Resource.Directory.Users.Insert+        , Network.Google.Resource.Directory.Users.List+        , Network.Google.Resource.Directory.Users.MakeAdmin+        , Network.Google.Resource.Directory.Users.Patch+        , Network.Google.Resource.Directory.Users.Photos.Delete+        , Network.Google.Resource.Directory.Users.Photos.Get+        , Network.Google.Resource.Directory.Users.Photos.Patch+        , Network.Google.Resource.Directory.Users.Photos.Update+        , Network.Google.Resource.Directory.Users.Undelete+        , Network.Google.Resource.Directory.Users.Update+        , Network.Google.Resource.Directory.Users.Watch+        , Network.Google.Resource.Directory.VerificationCodes.Generate+        , Network.Google.Resource.Directory.VerificationCodes.Invalidate+        , Network.Google.Resource.Directory.VerificationCodes.List++    other-modules:+          Network.Google.Directory.Types.Product+        , Network.Google.Directory.Types.Sum++    build-depends:+          gogol-core == 0.0.1.*+        , base       >= 4.7 && < 5