packages feed

gogol-cloudidentity (empty) → 0.4.0

raw patch · 21 files changed

+3671/−0 lines, 21 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-cloudidentity++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.3.0`+++## Description++A client library for the Google Cloud Identity.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.+++## Licence++`gogol-cloudidentity` 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/CloudIdentity.hs view
@@ -0,0 +1,199 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.CloudIdentity+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- API for provisioning and managing identity resources.+--+-- /See:/ <https://cloud.google.com/identity/ Cloud Identity API Reference>+module Network.Google.CloudIdentity+    (+    -- * Service Configuration+      cloudIdentityService++    -- * API Declaration+    , CloudIdentityAPI++    -- * Resources++    -- ** cloudidentity.groups.create+    , module Network.Google.Resource.CloudIdentity.Groups.Create++    -- ** cloudidentity.groups.delete+    , module Network.Google.Resource.CloudIdentity.Groups.Delete++    -- ** cloudidentity.groups.get+    , module Network.Google.Resource.CloudIdentity.Groups.Get++    -- ** cloudidentity.groups.list+    , module Network.Google.Resource.CloudIdentity.Groups.List++    -- ** cloudidentity.groups.lookup+    , module Network.Google.Resource.CloudIdentity.Groups.Lookup++    -- ** cloudidentity.groups.memberships.create+    , module Network.Google.Resource.CloudIdentity.Groups.Memberships.Create++    -- ** cloudidentity.groups.memberships.delete+    , module Network.Google.Resource.CloudIdentity.Groups.Memberships.Delete++    -- ** cloudidentity.groups.memberships.get+    , module Network.Google.Resource.CloudIdentity.Groups.Memberships.Get++    -- ** cloudidentity.groups.memberships.list+    , module Network.Google.Resource.CloudIdentity.Groups.Memberships.List++    -- ** cloudidentity.groups.memberships.lookup+    , module Network.Google.Resource.CloudIdentity.Groups.Memberships.Lookup++    -- ** cloudidentity.groups.patch+    , module Network.Google.Resource.CloudIdentity.Groups.Patch++    -- ** cloudidentity.groups.search+    , module Network.Google.Resource.CloudIdentity.Groups.Search++    -- * Types++    -- ** LookupMembershipNameResponse+    , LookupMembershipNameResponse+    , lookupMembershipNameResponse+    , lmnrName++    -- ** Status+    , Status+    , status+    , sDetails+    , sCode+    , sMessage++    -- ** Group+    , Group+    , group'+    , gParent+    , gGroupKey+    , gUpdateTime+    , gName+    , gDisplayName+    , gLabels+    , gDescription+    , gCreateTime++    -- ** Membership+    , Membership+    , membership+    , mRoles+    , mUpdateTime+    , mName+    , mPreferredMemberKey+    , mCreateTime++    -- ** Operation+    , Operation+    , operation+    , oDone+    , oError+    , oResponse+    , oName+    , oMetadata++    -- ** ListGroupsResponse+    , ListGroupsResponse+    , listGroupsResponse+    , lgrGroups+    , lgrNextPageToken++    -- ** StatusDetailsItem+    , StatusDetailsItem+    , statusDetailsItem+    , sdiAddtional++    -- ** MembershipRole+    , MembershipRole+    , membershipRole+    , mrName++    -- ** LookupGroupNameResponse+    , LookupGroupNameResponse+    , lookupGroupNameResponse+    , lgnrName++    -- ** SearchGroupsResponse+    , SearchGroupsResponse+    , searchGroupsResponse+    , sgrGroups+    , sgrNextPageToken++    -- ** EntityKey+    , EntityKey+    , entityKey+    , ekNamespace+    , ekId++    -- ** Xgafv+    , Xgafv (..)++    -- ** GroupLabels+    , GroupLabels+    , groupLabels+    , glAddtional++    -- ** ListMembershipsResponse+    , ListMembershipsResponse+    , listMembershipsResponse+    , lmrNextPageToken+    , lmrMemberships++    -- ** OperationMetadata+    , OperationMetadata+    , operationMetadata+    , omAddtional++    -- ** OperationResponse+    , OperationResponse+    , operationResponse+    , orAddtional+    ) where++import           Network.Google.CloudIdentity.Types+import           Network.Google.Prelude+import           Network.Google.Resource.CloudIdentity.Groups.Create+import           Network.Google.Resource.CloudIdentity.Groups.Delete+import           Network.Google.Resource.CloudIdentity.Groups.Get+import           Network.Google.Resource.CloudIdentity.Groups.List+import           Network.Google.Resource.CloudIdentity.Groups.Lookup+import           Network.Google.Resource.CloudIdentity.Groups.Memberships.Create+import           Network.Google.Resource.CloudIdentity.Groups.Memberships.Delete+import           Network.Google.Resource.CloudIdentity.Groups.Memberships.Get+import           Network.Google.Resource.CloudIdentity.Groups.Memberships.List+import           Network.Google.Resource.CloudIdentity.Groups.Memberships.Lookup+import           Network.Google.Resource.CloudIdentity.Groups.Patch+import           Network.Google.Resource.CloudIdentity.Groups.Search++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Cloud Identity API service.+type CloudIdentityAPI =+     GroupsMembershipsListResource :<|>+       GroupsMembershipsGetResource+       :<|> GroupsMembershipsCreateResource+       :<|> GroupsMembershipsLookupResource+       :<|> GroupsMembershipsDeleteResource+       :<|> GroupsListResource+       :<|> GroupsPatchResource+       :<|> GroupsGetResource+       :<|> GroupsCreateResource+       :<|> GroupsLookupResource+       :<|> GroupsSearchResource+       :<|> GroupsDeleteResource
+ gen/Network/Google/CloudIdentity/Types.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.CloudIdentity.Types+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.CloudIdentity.Types+    (+    -- * Service Configuration+      cloudIdentityService++    -- * LookupMembershipNameResponse+    , LookupMembershipNameResponse+    , lookupMembershipNameResponse+    , lmnrName++    -- * Status+    , Status+    , status+    , sDetails+    , sCode+    , sMessage++    -- * Group+    , Group+    , group'+    , gParent+    , gGroupKey+    , gUpdateTime+    , gName+    , gDisplayName+    , gLabels+    , gDescription+    , gCreateTime++    -- * Membership+    , Membership+    , membership+    , mRoles+    , mUpdateTime+    , mName+    , mPreferredMemberKey+    , mCreateTime++    -- * Operation+    , Operation+    , operation+    , oDone+    , oError+    , oResponse+    , oName+    , oMetadata++    -- * ListGroupsResponse+    , ListGroupsResponse+    , listGroupsResponse+    , lgrGroups+    , lgrNextPageToken++    -- * StatusDetailsItem+    , StatusDetailsItem+    , statusDetailsItem+    , sdiAddtional++    -- * MembershipRole+    , MembershipRole+    , membershipRole+    , mrName++    -- * LookupGroupNameResponse+    , LookupGroupNameResponse+    , lookupGroupNameResponse+    , lgnrName++    -- * SearchGroupsResponse+    , SearchGroupsResponse+    , searchGroupsResponse+    , sgrGroups+    , sgrNextPageToken++    -- * EntityKey+    , EntityKey+    , entityKey+    , ekNamespace+    , ekId++    -- * Xgafv+    , Xgafv (..)++    -- * GroupLabels+    , GroupLabels+    , groupLabels+    , glAddtional++    -- * ListMembershipsResponse+    , ListMembershipsResponse+    , listMembershipsResponse+    , lmrNextPageToken+    , lmrMemberships++    -- * OperationMetadata+    , OperationMetadata+    , operationMetadata+    , omAddtional++    -- * OperationResponse+    , OperationResponse+    , operationResponse+    , orAddtional+    ) where++import           Network.Google.CloudIdentity.Types.Product+import           Network.Google.CloudIdentity.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v1' of the Cloud Identity API. This contains the host and root path used as a starting point for constructing service requests.+cloudIdentityService :: ServiceConfig+cloudIdentityService+  = defaultService (ServiceId "cloudidentity:v1")+      "cloudidentity.googleapis.com"
+ gen/Network/Google/CloudIdentity/Types/Product.hs view
@@ -0,0 +1,882 @@+{-# 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.CloudIdentity.Types.Product+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.CloudIdentity.Types.Product where++import           Network.Google.CloudIdentity.Types.Sum+import           Network.Google.Prelude++--+-- /See:/ 'lookupMembershipNameResponse' smart constructor.+newtype LookupMembershipNameResponse = LookupMembershipNameResponse'+    { _lmnrName :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LookupMembershipNameResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lmnrName'+lookupMembershipNameResponse+    :: LookupMembershipNameResponse+lookupMembershipNameResponse =+    LookupMembershipNameResponse'+    { _lmnrName = Nothing+    }++-- | [Resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of the+-- Membership being looked up. Format:+-- \`groups\/{group_id}\/memberships\/{member_id}\`, where \`group_id\` is+-- the unique ID assigned to the Group to which Membership belongs to, and+-- \`member_id\` is the unique ID assigned to the member.+lmnrName :: Lens' LookupMembershipNameResponse (Maybe Text)+lmnrName = lens _lmnrName (\ s a -> s{_lmnrName = a})++instance FromJSON LookupMembershipNameResponse where+        parseJSON+          = withObject "LookupMembershipNameResponse"+              (\ o ->+                 LookupMembershipNameResponse' <$> (o .:? "name"))++instance ToJSON LookupMembershipNameResponse where+        toJSON LookupMembershipNameResponse'{..}+          = object (catMaybes [("name" .=) <$> _lmnrName])++-- | The \`Status\` type defines a logical error model that is suitable for+-- different programming environments, including REST APIs and RPC APIs. It+-- is used by [gRPC](https:\/\/github.com\/grpc). The error model is+-- designed to be: - Simple to use and understand for most users - Flexible+-- enough to meet unexpected needs # Overview The \`Status\` message+-- contains three pieces of data: error code, error message, and error+-- details. The error code should be an enum value of google.rpc.Code, but+-- it may accept additional error codes if needed. The error message should+-- be a developer-facing English message that helps developers *understand*+-- and *resolve* the error. If a localized user-facing error message is+-- needed, put the localized message in the error details or localize it in+-- the client. The optional error details may contain arbitrary information+-- about the error. There is a predefined set of error detail types in the+-- package \`google.rpc\` that can be used for common error conditions. #+-- Language mapping The \`Status\` message is the logical representation of+-- the error model, but it is not necessarily the actual wire format. When+-- the \`Status\` message is exposed in different client libraries and+-- different wire protocols, it can be mapped differently. For example, it+-- will likely be mapped to some exceptions in Java, but more likely mapped+-- to some error codes in C. # Other uses The error model and the+-- \`Status\` message can be used in a variety of environments, either with+-- or without APIs, to provide a consistent developer experience across+-- different environments. Example uses of this error model include: -+-- Partial errors. If a service needs to return partial errors to the+-- client, it may embed the \`Status\` in the normal response to indicate+-- the partial errors. - Workflow errors. A typical workflow has multiple+-- steps. Each step may have a \`Status\` message for error reporting. -+-- Batch operations. If a client uses batch request and batch response, the+-- \`Status\` message should be used directly inside batch response, one+-- for each error sub-response. - Asynchronous operations. If an API call+-- embeds asynchronous operation results in its response, the status of+-- those operations should be represented directly using the \`Status\`+-- message. - Logging. If some API errors are stored in logs, the message+-- \`Status\` could be used directly after any stripping needed for+-- security\/privacy reasons.+--+-- /See:/ 'status' smart constructor.+data Status = Status'+    { _sDetails :: !(Maybe [StatusDetailsItem])+    , _sCode    :: !(Maybe (Textual Int32))+    , _sMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Status' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sDetails'+--+-- * 'sCode'+--+-- * 'sMessage'+status+    :: Status+status =+    Status'+    { _sDetails = Nothing+    , _sCode = Nothing+    , _sMessage = Nothing+    }++-- | A list of messages that carry the error details. There is a common set+-- of message types for APIs to use.+sDetails :: Lens' Status [StatusDetailsItem]+sDetails+  = lens _sDetails (\ s a -> s{_sDetails = a}) .+      _Default+      . _Coerce++-- | The status code, which should be an enum value of google.rpc.Code.+sCode :: Lens' Status (Maybe Int32)+sCode+  = lens _sCode (\ s a -> s{_sCode = a}) .+      mapping _Coerce++-- | A developer-facing error message, which should be in English. Any+-- user-facing error message should be localized and sent in the+-- google.rpc.Status.details field, or localized by the client.+sMessage :: Lens' Status (Maybe Text)+sMessage = lens _sMessage (\ s a -> s{_sMessage = a})++instance FromJSON Status where+        parseJSON+          = withObject "Status"+              (\ o ->+                 Status' <$>+                   (o .:? "details" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON Status where+        toJSON Status'{..}+          = object+              (catMaybes+                 [("details" .=) <$> _sDetails,+                  ("code" .=) <$> _sCode,+                  ("message" .=) <$> _sMessage])++-- | Resource representing a Group.+--+-- /See:/ 'group'' smart constructor.+data Group = Group'+    { _gParent      :: !(Maybe Text)+    , _gGroupKey    :: !(Maybe EntityKey)+    , _gUpdateTime  :: !(Maybe DateTime')+    , _gName        :: !(Maybe Text)+    , _gDisplayName :: !(Maybe Text)+    , _gLabels      :: !(Maybe GroupLabels)+    , _gDescription :: !(Maybe Text)+    , _gCreateTime  :: !(Maybe DateTime')+    } 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:+--+-- * 'gParent'+--+-- * 'gGroupKey'+--+-- * 'gUpdateTime'+--+-- * 'gName'+--+-- * 'gDisplayName'+--+-- * 'gLabels'+--+-- * 'gDescription'+--+-- * 'gCreateTime'+group'+    :: Group+group' =+    Group'+    { _gParent = Nothing+    , _gGroupKey = Nothing+    , _gUpdateTime = Nothing+    , _gName = Nothing+    , _gDisplayName = Nothing+    , _gLabels = Nothing+    , _gDescription = Nothing+    , _gCreateTime = Nothing+    }++-- | The entity under which this Group resides in Cloud Identity resource+-- hierarchy. Must be set when creating a Group, read-only afterwards.+-- Currently allowed types: \`identitysources\`.+gParent :: Lens' Group (Maybe Text)+gParent = lens _gParent (\ s a -> s{_gParent = a})++-- | EntityKey of the Group. Must be set when creating a Group, read-only+-- afterwards.+gGroupKey :: Lens' Group (Maybe EntityKey)+gGroupKey+  = lens _gGroupKey (\ s a -> s{_gGroupKey = a})++-- | The time when the Group was last updated. Output only.+gUpdateTime :: Lens' Group (Maybe UTCTime)+gUpdateTime+  = lens _gUpdateTime (\ s a -> s{_gUpdateTime = a}) .+      mapping _DateTime++-- | [Resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of the+-- Group in the format: \`groups\/{group_id}\`, where group_id is the+-- unique ID assigned to the Group. Must be left blank while creating a+-- Group.+gName :: Lens' Group (Maybe Text)+gName = lens _gName (\ s a -> s{_gName = a})++-- | The Group\'s display name.+gDisplayName :: Lens' Group (Maybe Text)+gDisplayName+  = lens _gDisplayName (\ s a -> s{_gDisplayName = a})++-- | \`Required\`. Labels for Group resource. For creating Groups under a+-- namespace, set label key to \'labels\/system\/groups\/external\' and+-- label value as empty.+gLabels :: Lens' Group (Maybe GroupLabels)+gLabels = lens _gLabels (\ s a -> s{_gLabels = a})++-- | An extended description to help users determine the purpose of a Group.+-- For example, you can include information about who should join the+-- Group, the types of messages to send to the Group, links to FAQs about+-- the Group, or related Groups. Maximum length is 4,096 characters.+gDescription :: Lens' Group (Maybe Text)+gDescription+  = lens _gDescription (\ s a -> s{_gDescription = a})++-- | The time when the Group was created. Output only.+gCreateTime :: Lens' Group (Maybe UTCTime)+gCreateTime+  = lens _gCreateTime (\ s a -> s{_gCreateTime = a}) .+      mapping _DateTime++instance FromJSON Group where+        parseJSON+          = withObject "Group"+              (\ o ->+                 Group' <$>+                   (o .:? "parent") <*> (o .:? "groupKey") <*>+                     (o .:? "updateTime")+                     <*> (o .:? "name")+                     <*> (o .:? "displayName")+                     <*> (o .:? "labels")+                     <*> (o .:? "description")+                     <*> (o .:? "createTime"))++instance ToJSON Group where+        toJSON Group'{..}+          = object+              (catMaybes+                 [("parent" .=) <$> _gParent,+                  ("groupKey" .=) <$> _gGroupKey,+                  ("updateTime" .=) <$> _gUpdateTime,+                  ("name" .=) <$> _gName,+                  ("displayName" .=) <$> _gDisplayName,+                  ("labels" .=) <$> _gLabels,+                  ("description" .=) <$> _gDescription,+                  ("createTime" .=) <$> _gCreateTime])++-- | Resource representing a Membership within a Group+--+-- /See:/ 'membership' smart constructor.+data Membership = Membership'+    { _mRoles              :: !(Maybe [MembershipRole])+    , _mUpdateTime         :: !(Maybe DateTime')+    , _mName               :: !(Maybe Text)+    , _mPreferredMemberKey :: !(Maybe EntityKey)+    , _mCreateTime         :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Membership' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mRoles'+--+-- * 'mUpdateTime'+--+-- * 'mName'+--+-- * 'mPreferredMemberKey'+--+-- * 'mCreateTime'+membership+    :: Membership+membership =+    Membership'+    { _mRoles = Nothing+    , _mUpdateTime = Nothing+    , _mName = Nothing+    , _mPreferredMemberKey = Nothing+    , _mCreateTime = Nothing+    }++-- | Roles for a member within the Group. Currently supported+-- MembershipRoles: \`\"MEMBER\"\`.+mRoles :: Lens' Membership [MembershipRole]+mRoles+  = lens _mRoles (\ s a -> s{_mRoles = a}) . _Default .+      _Coerce++-- | Last updated timestamp of the Membership. Output only.+mUpdateTime :: Lens' Membership (Maybe UTCTime)+mUpdateTime+  = lens _mUpdateTime (\ s a -> s{_mUpdateTime = a}) .+      mapping _DateTime++-- | [Resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of the+-- Membership in the format:+-- \`groups\/{group_id}\/memberships\/{member_id}\`, where group_id is the+-- unique ID assigned to the Group to which Membership belongs to, and+-- member_id is the unique ID assigned to the member Must be left blank+-- while creating a Membership.+mName :: Lens' Membership (Maybe Text)+mName = lens _mName (\ s a -> s{_mName = a})++-- | EntityKey of the entity to be added as the member. Must be set while+-- creating a Membership, read-only afterwards. Currently allowed entity+-- types: \`Users\`, \`Groups\`.+mPreferredMemberKey :: Lens' Membership (Maybe EntityKey)+mPreferredMemberKey+  = lens _mPreferredMemberKey+      (\ s a -> s{_mPreferredMemberKey = a})++-- | Creation timestamp of the Membership. Output only.+mCreateTime :: Lens' Membership (Maybe UTCTime)+mCreateTime+  = lens _mCreateTime (\ s a -> s{_mCreateTime = a}) .+      mapping _DateTime++instance FromJSON Membership where+        parseJSON+          = withObject "Membership"+              (\ o ->+                 Membership' <$>+                   (o .:? "roles" .!= mempty) <*> (o .:? "updateTime")+                     <*> (o .:? "name")+                     <*> (o .:? "preferredMemberKey")+                     <*> (o .:? "createTime"))++instance ToJSON Membership where+        toJSON Membership'{..}+          = object+              (catMaybes+                 [("roles" .=) <$> _mRoles,+                  ("updateTime" .=) <$> _mUpdateTime,+                  ("name" .=) <$> _mName,+                  ("preferredMemberKey" .=) <$> _mPreferredMemberKey,+                  ("createTime" .=) <$> _mCreateTime])++-- | This resource represents a long-running operation that is the result of+-- a network API call.+--+-- /See:/ 'operation' smart constructor.+data Operation = Operation'+    { _oDone     :: !(Maybe Bool)+    , _oError    :: !(Maybe Status)+    , _oResponse :: !(Maybe OperationResponse)+    , _oName     :: !(Maybe Text)+    , _oMetadata :: !(Maybe OperationMetadata)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Operation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oDone'+--+-- * 'oError'+--+-- * 'oResponse'+--+-- * 'oName'+--+-- * 'oMetadata'+operation+    :: Operation+operation =+    Operation'+    { _oDone = Nothing+    , _oError = Nothing+    , _oResponse = Nothing+    , _oName = Nothing+    , _oMetadata = Nothing+    }++-- | If the value is \`false\`, it means the operation is still in progress.+-- If \`true\`, the operation is completed, and either \`error\` or+-- \`response\` is available.+oDone :: Lens' Operation (Maybe Bool)+oDone = lens _oDone (\ s a -> s{_oDone = a})++-- | The error result of the operation in case of failure or cancellation.+oError :: Lens' Operation (Maybe Status)+oError = lens _oError (\ s a -> s{_oError = a})++-- | The normal response of the operation in case of success. If the original+-- method returns no data on success, such as \`Delete\`, the response is+-- \`google.protobuf.Empty\`. If the original method is standard+-- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource.+-- For other methods, the response should have the type \`XxxResponse\`,+-- where \`Xxx\` is the original method name. For example, if the original+-- method name is \`TakeSnapshot()\`, the inferred response type is+-- \`TakeSnapshotResponse\`.+oResponse :: Lens' Operation (Maybe OperationResponse)+oResponse+  = lens _oResponse (\ s a -> s{_oResponse = a})++-- | The server-assigned name, which is only unique within the same service+-- that originally returns it. If you use the default HTTP mapping, the+-- \`name\` should have the format of \`operations\/some\/unique\/name\`.+oName :: Lens' Operation (Maybe Text)+oName = lens _oName (\ s a -> s{_oName = a})++-- | Service-specific metadata associated with the operation. It typically+-- contains progress information and common metadata such as create time.+-- Some services might not provide such metadata. Any method that returns a+-- long-running operation should document the metadata type, if any.+oMetadata :: Lens' Operation (Maybe OperationMetadata)+oMetadata+  = lens _oMetadata (\ s a -> s{_oMetadata = a})++instance FromJSON Operation where+        parseJSON+          = withObject "Operation"+              (\ o ->+                 Operation' <$>+                   (o .:? "done") <*> (o .:? "error") <*>+                     (o .:? "response")+                     <*> (o .:? "name")+                     <*> (o .:? "metadata"))++instance ToJSON Operation where+        toJSON Operation'{..}+          = object+              (catMaybes+                 [("done" .=) <$> _oDone, ("error" .=) <$> _oError,+                  ("response" .=) <$> _oResponse,+                  ("name" .=) <$> _oName,+                  ("metadata" .=) <$> _oMetadata])++-- | Response message for ListGroups operation.+--+-- /See:/ 'listGroupsResponse' smart constructor.+data ListGroupsResponse = ListGroupsResponse'+    { _lgrGroups        :: !(Maybe [Group])+    , _lgrNextPageToken :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListGroupsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lgrGroups'+--+-- * 'lgrNextPageToken'+listGroupsResponse+    :: ListGroupsResponse+listGroupsResponse =+    ListGroupsResponse'+    { _lgrGroups = Nothing+    , _lgrNextPageToken = Nothing+    }++-- | Groups returned in response to list request. The results are not sorted.+lgrGroups :: Lens' ListGroupsResponse [Group]+lgrGroups+  = lens _lgrGroups (\ s a -> s{_lgrGroups = a}) .+      _Default+      . _Coerce++-- | Token to retrieve the next page of results, or empty if there are no+-- more results available for listing.+lgrNextPageToken :: Lens' ListGroupsResponse (Maybe Text)+lgrNextPageToken+  = lens _lgrNextPageToken+      (\ s a -> s{_lgrNextPageToken = a})++instance FromJSON ListGroupsResponse where+        parseJSON+          = withObject "ListGroupsResponse"+              (\ o ->+                 ListGroupsResponse' <$>+                   (o .:? "groups" .!= mempty) <*>+                     (o .:? "nextPageToken"))++instance ToJSON ListGroupsResponse where+        toJSON ListGroupsResponse'{..}+          = object+              (catMaybes+                 [("groups" .=) <$> _lgrGroups,+                  ("nextPageToken" .=) <$> _lgrNextPageToken])++--+-- /See:/ 'statusDetailsItem' smart constructor.+newtype StatusDetailsItem = StatusDetailsItem'+    { _sdiAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'StatusDetailsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdiAddtional'+statusDetailsItem+    :: HashMap Text JSONValue -- ^ 'sdiAddtional'+    -> StatusDetailsItem+statusDetailsItem pSdiAddtional_ =+    StatusDetailsItem'+    { _sdiAddtional = _Coerce # pSdiAddtional_+    }++-- | Properties of the object. Contains field \'type with type URL.+sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)+sdiAddtional+  = lens _sdiAddtional (\ s a -> s{_sdiAddtional = a})+      . _Coerce++instance FromJSON StatusDetailsItem where+        parseJSON+          = withObject "StatusDetailsItem"+              (\ o -> StatusDetailsItem' <$> (parseJSONObject o))++instance ToJSON StatusDetailsItem where+        toJSON = toJSON . _sdiAddtional++-- | Resource representing a role within a Membership.+--+-- /See:/ 'membershipRole' smart constructor.+newtype MembershipRole = MembershipRole'+    { _mrName :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MembershipRole' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mrName'+membershipRole+    :: MembershipRole+membershipRole =+    MembershipRole'+    { _mrName = Nothing+    }++-- | MembershipRole in string format. Currently supported MembershipRoles:+-- \`\"MEMBER\"\`.+mrName :: Lens' MembershipRole (Maybe Text)+mrName = lens _mrName (\ s a -> s{_mrName = a})++instance FromJSON MembershipRole where+        parseJSON+          = withObject "MembershipRole"+              (\ o -> MembershipRole' <$> (o .:? "name"))++instance ToJSON MembershipRole where+        toJSON MembershipRole'{..}+          = object (catMaybes [("name" .=) <$> _mrName])++--+-- /See:/ 'lookupGroupNameResponse' smart constructor.+newtype LookupGroupNameResponse = LookupGroupNameResponse'+    { _lgnrName :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LookupGroupNameResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lgnrName'+lookupGroupNameResponse+    :: LookupGroupNameResponse+lookupGroupNameResponse =+    LookupGroupNameResponse'+    { _lgnrName = Nothing+    }++-- | [Resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of the+-- Group in the format: \`groups\/{group_id}\`, where \`group_id\` is the+-- unique ID assigned to the Group.+lgnrName :: Lens' LookupGroupNameResponse (Maybe Text)+lgnrName = lens _lgnrName (\ s a -> s{_lgnrName = a})++instance FromJSON LookupGroupNameResponse where+        parseJSON+          = withObject "LookupGroupNameResponse"+              (\ o -> LookupGroupNameResponse' <$> (o .:? "name"))++instance ToJSON LookupGroupNameResponse where+        toJSON LookupGroupNameResponse'{..}+          = object (catMaybes [("name" .=) <$> _lgnrName])++--+-- /See:/ 'searchGroupsResponse' smart constructor.+data SearchGroupsResponse = SearchGroupsResponse'+    { _sgrGroups        :: !(Maybe [Group])+    , _sgrNextPageToken :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SearchGroupsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgrGroups'+--+-- * 'sgrNextPageToken'+searchGroupsResponse+    :: SearchGroupsResponse+searchGroupsResponse =+    SearchGroupsResponse'+    { _sgrGroups = Nothing+    , _sgrNextPageToken = Nothing+    }++-- | List of Groups satisfying the search query.+sgrGroups :: Lens' SearchGroupsResponse [Group]+sgrGroups+  = lens _sgrGroups (\ s a -> s{_sgrGroups = a}) .+      _Default+      . _Coerce++-- | Token to retrieve the next page of results, or empty if there are no+-- more results available for specified query.+sgrNextPageToken :: Lens' SearchGroupsResponse (Maybe Text)+sgrNextPageToken+  = lens _sgrNextPageToken+      (\ s a -> s{_sgrNextPageToken = a})++instance FromJSON SearchGroupsResponse where+        parseJSON+          = withObject "SearchGroupsResponse"+              (\ o ->+                 SearchGroupsResponse' <$>+                   (o .:? "groups" .!= mempty) <*>+                     (o .:? "nextPageToken"))++instance ToJSON SearchGroupsResponse where+        toJSON SearchGroupsResponse'{..}+          = object+              (catMaybes+                 [("groups" .=) <$> _sgrGroups,+                  ("nextPageToken" .=) <$> _sgrNextPageToken])++-- | An EntityKey uniquely identifies an Entity. Namespaces are used to+-- provide isolation for IDs. A single ID can be reused across namespaces+-- but the combination of a namespace and an ID must be unique.+--+-- /See:/ 'entityKey' smart constructor.+data EntityKey = EntityKey'+    { _ekNamespace :: !(Maybe Text)+    , _ekId        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EntityKey' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ekNamespace'+--+-- * 'ekId'+entityKey+    :: EntityKey+entityKey =+    EntityKey'+    { _ekNamespace = Nothing+    , _ekId = Nothing+    }++-- | Namespaces provide isolation for IDs, so an ID only needs to be unique+-- within its namespace. Namespaces are currently only created as part of+-- IdentitySource creation from Admin Console. A namespace+-- \`\"identitysources\/{identity_source_id}\"\` is created corresponding+-- to every Identity Source \`identity_source_id\`.+ekNamespace :: Lens' EntityKey (Maybe Text)+ekNamespace+  = lens _ekNamespace (\ s a -> s{_ekNamespace = a})++-- | The ID of the entity within the given namespace. The ID must be unique+-- within its namespace.+ekId :: Lens' EntityKey (Maybe Text)+ekId = lens _ekId (\ s a -> s{_ekId = a})++instance FromJSON EntityKey where+        parseJSON+          = withObject "EntityKey"+              (\ o ->+                 EntityKey' <$> (o .:? "namespace") <*> (o .:? "id"))++instance ToJSON EntityKey where+        toJSON EntityKey'{..}+          = object+              (catMaybes+                 [("namespace" .=) <$> _ekNamespace,+                  ("id" .=) <$> _ekId])++-- | \`Required\`. Labels for Group resource. For creating Groups under a+-- namespace, set label key to \'labels\/system\/groups\/external\' and+-- label value as empty.+--+-- /See:/ 'groupLabels' smart constructor.+newtype GroupLabels = GroupLabels'+    { _glAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupLabels' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'glAddtional'+groupLabels+    :: HashMap Text Text -- ^ 'glAddtional'+    -> GroupLabels+groupLabels pGlAddtional_ =+    GroupLabels'+    { _glAddtional = _Coerce # pGlAddtional_+    }++glAddtional :: Lens' GroupLabels (HashMap Text Text)+glAddtional+  = lens _glAddtional (\ s a -> s{_glAddtional = a}) .+      _Coerce++instance FromJSON GroupLabels where+        parseJSON+          = withObject "GroupLabels"+              (\ o -> GroupLabels' <$> (parseJSONObject o))++instance ToJSON GroupLabels where+        toJSON = toJSON . _glAddtional++--+-- /See:/ 'listMembershipsResponse' smart constructor.+data ListMembershipsResponse = ListMembershipsResponse'+    { _lmrNextPageToken :: !(Maybe Text)+    , _lmrMemberships   :: !(Maybe [Membership])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListMembershipsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lmrNextPageToken'+--+-- * 'lmrMemberships'+listMembershipsResponse+    :: ListMembershipsResponse+listMembershipsResponse =+    ListMembershipsResponse'+    { _lmrNextPageToken = Nothing+    , _lmrMemberships = Nothing+    }++-- | Token to retrieve the next page of results, or empty if there are no+-- more results available for listing.+lmrNextPageToken :: Lens' ListMembershipsResponse (Maybe Text)+lmrNextPageToken+  = lens _lmrNextPageToken+      (\ s a -> s{_lmrNextPageToken = a})++-- | List of Memberships.+lmrMemberships :: Lens' ListMembershipsResponse [Membership]+lmrMemberships+  = lens _lmrMemberships+      (\ s a -> s{_lmrMemberships = a})+      . _Default+      . _Coerce++instance FromJSON ListMembershipsResponse where+        parseJSON+          = withObject "ListMembershipsResponse"+              (\ o ->+                 ListMembershipsResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "memberships" .!= mempty))++instance ToJSON ListMembershipsResponse where+        toJSON ListMembershipsResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _lmrNextPageToken,+                  ("memberships" .=) <$> _lmrMemberships])++-- | Service-specific metadata associated with the operation. It typically+-- contains progress information and common metadata such as create time.+-- Some services might not provide such metadata. Any method that returns a+-- long-running operation should document the metadata type, if any.+--+-- /See:/ 'operationMetadata' smart constructor.+newtype OperationMetadata = OperationMetadata'+    { _omAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'omAddtional'+operationMetadata+    :: HashMap Text JSONValue -- ^ 'omAddtional'+    -> OperationMetadata+operationMetadata pOmAddtional_ =+    OperationMetadata'+    { _omAddtional = _Coerce # pOmAddtional_+    }++-- | Properties of the object. Contains field \'type with type URL.+omAddtional :: Lens' OperationMetadata (HashMap Text JSONValue)+omAddtional+  = lens _omAddtional (\ s a -> s{_omAddtional = a}) .+      _Coerce++instance FromJSON OperationMetadata where+        parseJSON+          = withObject "OperationMetadata"+              (\ o -> OperationMetadata' <$> (parseJSONObject o))++instance ToJSON OperationMetadata where+        toJSON = toJSON . _omAddtional++-- | The normal response of the operation in case of success. If the original+-- method returns no data on success, such as \`Delete\`, the response is+-- \`google.protobuf.Empty\`. If the original method is standard+-- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource.+-- For other methods, the response should have the type \`XxxResponse\`,+-- where \`Xxx\` is the original method name. For example, if the original+-- method name is \`TakeSnapshot()\`, the inferred response type is+-- \`TakeSnapshotResponse\`.+--+-- /See:/ 'operationResponse' smart constructor.+newtype OperationResponse = OperationResponse'+    { _orAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'orAddtional'+operationResponse+    :: HashMap Text JSONValue -- ^ 'orAddtional'+    -> OperationResponse+operationResponse pOrAddtional_ =+    OperationResponse'+    { _orAddtional = _Coerce # pOrAddtional_+    }++-- | Properties of the object. Contains field \'type with type URL.+orAddtional :: Lens' OperationResponse (HashMap Text JSONValue)+orAddtional+  = lens _orAddtional (\ s a -> s{_orAddtional = a}) .+      _Coerce++instance FromJSON OperationResponse where+        parseJSON+          = withObject "OperationResponse"+              (\ o -> OperationResponse' <$> (parseJSONObject o))++instance ToJSON OperationResponse where+        toJSON = toJSON . _orAddtional
+ gen/Network/Google/CloudIdentity/Types/Sum.hs view
@@ -0,0 +1,48 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.CloudIdentity.Types.Sum+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.CloudIdentity.Types.Sum where++import           Network.Google.Prelude hiding (Bytes)++-- | V1 error format.+data Xgafv+    = X1+      -- ^ @1@+      -- v1 error format+    | X2+      -- ^ @2@+      -- v2 error format+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable Xgafv++instance FromHttpApiData Xgafv where+    parseQueryParam = \case+        "1" -> Right X1+        "2" -> Right X2+        x -> Left ("Unable to parse Xgafv from: " <> x)++instance ToHttpApiData Xgafv where+    toQueryParam = \case+        X1 -> "1"+        X2 -> "2"++instance FromJSON Xgafv where+    parseJSON = parseJSONText "Xgafv"++instance ToJSON Xgafv where+    toJSON = toJSONText
+ gen/Network/Google/Resource/CloudIdentity/Groups/Create.hs view
@@ -0,0 +1,143 @@+{-# 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.CloudIdentity.Groups.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a Group.+--+-- /See:/ <https://cloud.google.com/identity/ Cloud Identity API Reference> for @cloudidentity.groups.create@.+module Network.Google.Resource.CloudIdentity.Groups.Create+    (+    -- * REST Resource+      GroupsCreateResource++    -- * Creating a Request+    , groupsCreate+    , GroupsCreate++    -- * Request Lenses+    , gcXgafv+    , gcUploadProtocol+    , gcAccessToken+    , gcUploadType+    , gcPayload+    , gcCallback+    ) where++import           Network.Google.CloudIdentity.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudidentity.groups.create@ method which the+-- 'GroupsCreate' request conforms to.+type GroupsCreateResource =+     "v1" :>+       "groups" :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Group :> Post '[JSON] Operation++-- | Creates a Group.+--+-- /See:/ 'groupsCreate' smart constructor.+data GroupsCreate = GroupsCreate'+    { _gcXgafv          :: !(Maybe Xgafv)+    , _gcUploadProtocol :: !(Maybe Text)+    , _gcAccessToken    :: !(Maybe Text)+    , _gcUploadType     :: !(Maybe Text)+    , _gcPayload        :: !Group+    , _gcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gcXgafv'+--+-- * 'gcUploadProtocol'+--+-- * 'gcAccessToken'+--+-- * 'gcUploadType'+--+-- * 'gcPayload'+--+-- * 'gcCallback'+groupsCreate+    :: Group -- ^ 'gcPayload'+    -> GroupsCreate+groupsCreate pGcPayload_ =+    GroupsCreate'+    { _gcXgafv = Nothing+    , _gcUploadProtocol = Nothing+    , _gcAccessToken = Nothing+    , _gcUploadType = Nothing+    , _gcPayload = pGcPayload_+    , _gcCallback = Nothing+    }++-- | V1 error format.+gcXgafv :: Lens' GroupsCreate (Maybe Xgafv)+gcXgafv = lens _gcXgafv (\ s a -> s{_gcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+gcUploadProtocol :: Lens' GroupsCreate (Maybe Text)+gcUploadProtocol+  = lens _gcUploadProtocol+      (\ s a -> s{_gcUploadProtocol = a})++-- | OAuth access token.+gcAccessToken :: Lens' GroupsCreate (Maybe Text)+gcAccessToken+  = lens _gcAccessToken+      (\ s a -> s{_gcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+gcUploadType :: Lens' GroupsCreate (Maybe Text)+gcUploadType+  = lens _gcUploadType (\ s a -> s{_gcUploadType = a})++-- | Multipart request metadata.+gcPayload :: Lens' GroupsCreate Group+gcPayload+  = lens _gcPayload (\ s a -> s{_gcPayload = a})++-- | JSONP+gcCallback :: Lens' GroupsCreate (Maybe Text)+gcCallback+  = lens _gcCallback (\ s a -> s{_gcCallback = a})++instance GoogleRequest GroupsCreate where+        type Rs GroupsCreate = Operation+        type Scopes GroupsCreate = '[]+        requestClient GroupsCreate'{..}+          = go _gcXgafv _gcUploadProtocol _gcAccessToken+              _gcUploadType+              _gcCallback+              (Just AltJSON)+              _gcPayload+              cloudIdentityService+          where go+                  = buildClient (Proxy :: Proxy GroupsCreateResource)+                      mempty
+ gen/Network/Google/Resource/CloudIdentity/Groups/Delete.hs view
@@ -0,0 +1,144 @@+{-# 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.CloudIdentity.Groups.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a Group.+--+-- /See:/ <https://cloud.google.com/identity/ Cloud Identity API Reference> for @cloudidentity.groups.delete@.+module Network.Google.Resource.CloudIdentity.Groups.Delete+    (+    -- * REST Resource+      GroupsDeleteResource++    -- * Creating a Request+    , groupsDelete+    , GroupsDelete++    -- * Request Lenses+    , gdXgafv+    , gdUploadProtocol+    , gdAccessToken+    , gdUploadType+    , gdName+    , gdCallback+    ) where++import           Network.Google.CloudIdentity.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudidentity.groups.delete@ method which the+-- 'GroupsDelete' request conforms to.+type GroupsDeleteResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes a Group.+--+-- /See:/ 'groupsDelete' smart constructor.+data GroupsDelete = GroupsDelete'+    { _gdXgafv          :: !(Maybe Xgafv)+    , _gdUploadProtocol :: !(Maybe Text)+    , _gdAccessToken    :: !(Maybe Text)+    , _gdUploadType     :: !(Maybe Text)+    , _gdName           :: !Text+    , _gdCallback       :: !(Maybe 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:+--+-- * 'gdXgafv'+--+-- * 'gdUploadProtocol'+--+-- * 'gdAccessToken'+--+-- * 'gdUploadType'+--+-- * 'gdName'+--+-- * 'gdCallback'+groupsDelete+    :: Text -- ^ 'gdName'+    -> GroupsDelete+groupsDelete pGdName_ =+    GroupsDelete'+    { _gdXgafv = Nothing+    , _gdUploadProtocol = Nothing+    , _gdAccessToken = Nothing+    , _gdUploadType = Nothing+    , _gdName = pGdName_+    , _gdCallback = Nothing+    }++-- | V1 error format.+gdXgafv :: Lens' GroupsDelete (Maybe Xgafv)+gdXgafv = lens _gdXgafv (\ s a -> s{_gdXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+gdUploadProtocol :: Lens' GroupsDelete (Maybe Text)+gdUploadProtocol+  = lens _gdUploadProtocol+      (\ s a -> s{_gdUploadProtocol = a})++-- | OAuth access token.+gdAccessToken :: Lens' GroupsDelete (Maybe Text)+gdAccessToken+  = lens _gdAccessToken+      (\ s a -> s{_gdAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+gdUploadType :: Lens' GroupsDelete (Maybe Text)+gdUploadType+  = lens _gdUploadType (\ s a -> s{_gdUploadType = a})++-- | [Resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of the+-- Group in the format: \`groups\/{group_id}\`, where \`group_id\` is the+-- unique ID assigned to the Group.+gdName :: Lens' GroupsDelete Text+gdName = lens _gdName (\ s a -> s{_gdName = a})++-- | JSONP+gdCallback :: Lens' GroupsDelete (Maybe Text)+gdCallback+  = lens _gdCallback (\ s a -> s{_gdCallback = a})++instance GoogleRequest GroupsDelete where+        type Rs GroupsDelete = Operation+        type Scopes GroupsDelete = '[]+        requestClient GroupsDelete'{..}+          = go _gdName _gdXgafv _gdUploadProtocol+              _gdAccessToken+              _gdUploadType+              _gdCallback+              (Just AltJSON)+              cloudIdentityService+          where go+                  = buildClient (Proxy :: Proxy GroupsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/CloudIdentity/Groups/Get.hs view
@@ -0,0 +1,144 @@+{-# 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.CloudIdentity.Groups.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a Group.+--+-- /See:/ <https://cloud.google.com/identity/ Cloud Identity API Reference> for @cloudidentity.groups.get@.+module Network.Google.Resource.CloudIdentity.Groups.Get+    (+    -- * REST Resource+      GroupsGetResource++    -- * Creating a Request+    , groupsGet+    , GroupsGet++    -- * Request Lenses+    , ggXgafv+    , ggUploadProtocol+    , ggAccessToken+    , ggUploadType+    , ggName+    , ggCallback+    ) where++import           Network.Google.CloudIdentity.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudidentity.groups.get@ method which the+-- 'GroupsGet' request conforms to.+type GroupsGetResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Group++-- | Retrieves a Group.+--+-- /See:/ 'groupsGet' smart constructor.+data GroupsGet = GroupsGet'+    { _ggXgafv          :: !(Maybe Xgafv)+    , _ggUploadProtocol :: !(Maybe Text)+    , _ggAccessToken    :: !(Maybe Text)+    , _ggUploadType     :: !(Maybe Text)+    , _ggName           :: !Text+    , _ggCallback       :: !(Maybe 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:+--+-- * 'ggXgafv'+--+-- * 'ggUploadProtocol'+--+-- * 'ggAccessToken'+--+-- * 'ggUploadType'+--+-- * 'ggName'+--+-- * 'ggCallback'+groupsGet+    :: Text -- ^ 'ggName'+    -> GroupsGet+groupsGet pGgName_ =+    GroupsGet'+    { _ggXgafv = Nothing+    , _ggUploadProtocol = Nothing+    , _ggAccessToken = Nothing+    , _ggUploadType = Nothing+    , _ggName = pGgName_+    , _ggCallback = Nothing+    }++-- | V1 error format.+ggXgafv :: Lens' GroupsGet (Maybe Xgafv)+ggXgafv = lens _ggXgafv (\ s a -> s{_ggXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ggUploadProtocol :: Lens' GroupsGet (Maybe Text)+ggUploadProtocol+  = lens _ggUploadProtocol+      (\ s a -> s{_ggUploadProtocol = a})++-- | OAuth access token.+ggAccessToken :: Lens' GroupsGet (Maybe Text)+ggAccessToken+  = lens _ggAccessToken+      (\ s a -> s{_ggAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ggUploadType :: Lens' GroupsGet (Maybe Text)+ggUploadType+  = lens _ggUploadType (\ s a -> s{_ggUploadType = a})++-- | [Resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of the+-- Group in the format: \`groups\/{group_id}\`, where \`group_id\` is the+-- unique ID assigned to the Group.+ggName :: Lens' GroupsGet Text+ggName = lens _ggName (\ s a -> s{_ggName = a})++-- | JSONP+ggCallback :: Lens' GroupsGet (Maybe Text)+ggCallback+  = lens _ggCallback (\ s a -> s{_ggCallback = a})++instance GoogleRequest GroupsGet where+        type Rs GroupsGet = Group+        type Scopes GroupsGet = '[]+        requestClient GroupsGet'{..}+          = go _ggName _ggXgafv _ggUploadProtocol+              _ggAccessToken+              _ggUploadType+              _ggCallback+              (Just AltJSON)+              cloudIdentityService+          where go+                  = buildClient (Proxy :: Proxy GroupsGetResource)+                      mempty
+ gen/Network/Google/Resource/CloudIdentity/Groups/List.hs view
@@ -0,0 +1,182 @@+{-# 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.CloudIdentity.Groups.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List groups within a customer or a domain.+--+-- /See:/ <https://cloud.google.com/identity/ Cloud Identity API Reference> for @cloudidentity.groups.list@.+module Network.Google.Resource.CloudIdentity.Groups.List+    (+    -- * REST Resource+      GroupsListResource++    -- * Creating a Request+    , groupsList+    , GroupsList++    -- * Request Lenses+    , gllParent+    , gllXgafv+    , gllUploadProtocol+    , gllAccessToken+    , gllUploadType+    , gllView+    , gllPageToken+    , gllPageSize+    , gllCallback+    ) where++import           Network.Google.CloudIdentity.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudidentity.groups.list@ method which the+-- 'GroupsList' request conforms to.+type GroupsListResource =+     "v1" :>+       "groups" :>+         QueryParam "parent" Text :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "view" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "pageSize" (Textual Int32) :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON] ListGroupsResponse++-- | List groups within a customer or a domain.+--+-- /See:/ 'groupsList' smart constructor.+data GroupsList = GroupsList'+    { _gllParent         :: !(Maybe Text)+    , _gllXgafv          :: !(Maybe Xgafv)+    , _gllUploadProtocol :: !(Maybe Text)+    , _gllAccessToken    :: !(Maybe Text)+    , _gllUploadType     :: !(Maybe Text)+    , _gllView           :: !(Maybe Text)+    , _gllPageToken      :: !(Maybe Text)+    , _gllPageSize       :: !(Maybe (Textual Int32))+    , _gllCallback       :: !(Maybe Text)+    } 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:+--+-- * 'gllParent'+--+-- * 'gllXgafv'+--+-- * 'gllUploadProtocol'+--+-- * 'gllAccessToken'+--+-- * 'gllUploadType'+--+-- * 'gllView'+--+-- * 'gllPageToken'+--+-- * 'gllPageSize'+--+-- * 'gllCallback'+groupsList+    :: GroupsList+groupsList =+    GroupsList'+    { _gllParent = Nothing+    , _gllXgafv = Nothing+    , _gllUploadProtocol = Nothing+    , _gllAccessToken = Nothing+    , _gllUploadType = Nothing+    , _gllView = Nothing+    , _gllPageToken = Nothing+    , _gllPageSize = Nothing+    , _gllCallback = Nothing+    }++-- | \`Required\`. May be made Optional in the future. Customer ID to list+-- all groups from.+gllParent :: Lens' GroupsList (Maybe Text)+gllParent+  = lens _gllParent (\ s a -> s{_gllParent = a})++-- | V1 error format.+gllXgafv :: Lens' GroupsList (Maybe Xgafv)+gllXgafv = lens _gllXgafv (\ s a -> s{_gllXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+gllUploadProtocol :: Lens' GroupsList (Maybe Text)+gllUploadProtocol+  = lens _gllUploadProtocol+      (\ s a -> s{_gllUploadProtocol = a})++-- | OAuth access token.+gllAccessToken :: Lens' GroupsList (Maybe Text)+gllAccessToken+  = lens _gllAccessToken+      (\ s a -> s{_gllAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+gllUploadType :: Lens' GroupsList (Maybe Text)+gllUploadType+  = lens _gllUploadType+      (\ s a -> s{_gllUploadType = a})++-- | Group resource view to be returned. Defaults to [View.BASIC]().+gllView :: Lens' GroupsList (Maybe Text)+gllView = lens _gllView (\ s a -> s{_gllView = a})++-- | The next_page_token value returned from a previous list request, if any.+gllPageToken :: Lens' GroupsList (Maybe Text)+gllPageToken+  = lens _gllPageToken (\ s a -> s{_gllPageToken = a})++-- | Maximum number of Groups to return. View | Default | Maximum+-- -----|---------|-------- BASIC | 200 | 1000 FULL | 50 | 500+gllPageSize :: Lens' GroupsList (Maybe Int32)+gllPageSize+  = lens _gllPageSize (\ s a -> s{_gllPageSize = a}) .+      mapping _Coerce++-- | JSONP+gllCallback :: Lens' GroupsList (Maybe Text)+gllCallback+  = lens _gllCallback (\ s a -> s{_gllCallback = a})++instance GoogleRequest GroupsList where+        type Rs GroupsList = ListGroupsResponse+        type Scopes GroupsList = '[]+        requestClient GroupsList'{..}+          = go _gllParent _gllXgafv _gllUploadProtocol+              _gllAccessToken+              _gllUploadType+              _gllView+              _gllPageToken+              _gllPageSize+              _gllCallback+              (Just AltJSON)+              cloudIdentityService+          where go+                  = buildClient (Proxy :: Proxy GroupsListResource)+                      mempty
+ gen/Network/Google/Resource/CloudIdentity/Groups/Lookup.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.CloudIdentity.Groups.Lookup+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Looks up [resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of a+-- Group by its EntityKey.+--+-- /See:/ <https://cloud.google.com/identity/ Cloud Identity API Reference> for @cloudidentity.groups.lookup@.+module Network.Google.Resource.CloudIdentity.Groups.Lookup+    (+    -- * REST Resource+      GroupsLookupResource++    -- * Creating a Request+    , groupsLookup+    , GroupsLookup++    -- * Request Lenses+    , glXgafv+    , glUploadProtocol+    , glAccessToken+    , glGroupKeyId+    , glUploadType+    , glGroupKeyNamespace+    , glCallback+    ) where++import           Network.Google.CloudIdentity.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudidentity.groups.lookup@ method which the+-- 'GroupsLookup' request conforms to.+type GroupsLookupResource =+     "v1" :>+       "groups:lookup" :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "groupKey.id" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "groupKey.namespace" Text :>+                     QueryParam "callback" Text :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] LookupGroupNameResponse++-- | Looks up [resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of a+-- Group by its EntityKey.+--+-- /See:/ 'groupsLookup' smart constructor.+data GroupsLookup = GroupsLookup'+    { _glXgafv             :: !(Maybe Xgafv)+    , _glUploadProtocol    :: !(Maybe Text)+    , _glAccessToken       :: !(Maybe Text)+    , _glGroupKeyId        :: !(Maybe Text)+    , _glUploadType        :: !(Maybe Text)+    , _glGroupKeyNamespace :: !(Maybe Text)+    , _glCallback          :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsLookup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'glXgafv'+--+-- * 'glUploadProtocol'+--+-- * 'glAccessToken'+--+-- * 'glGroupKeyId'+--+-- * 'glUploadType'+--+-- * 'glGroupKeyNamespace'+--+-- * 'glCallback'+groupsLookup+    :: GroupsLookup+groupsLookup =+    GroupsLookup'+    { _glXgafv = Nothing+    , _glUploadProtocol = Nothing+    , _glAccessToken = Nothing+    , _glGroupKeyId = Nothing+    , _glUploadType = Nothing+    , _glGroupKeyNamespace = Nothing+    , _glCallback = Nothing+    }++-- | V1 error format.+glXgafv :: Lens' GroupsLookup (Maybe Xgafv)+glXgafv = lens _glXgafv (\ s a -> s{_glXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+glUploadProtocol :: Lens' GroupsLookup (Maybe Text)+glUploadProtocol+  = lens _glUploadProtocol+      (\ s a -> s{_glUploadProtocol = a})++-- | OAuth access token.+glAccessToken :: Lens' GroupsLookup (Maybe Text)+glAccessToken+  = lens _glAccessToken+      (\ s a -> s{_glAccessToken = a})++-- | The ID of the entity within the given namespace. The ID must be unique+-- within its namespace.+glGroupKeyId :: Lens' GroupsLookup (Maybe Text)+glGroupKeyId+  = lens _glGroupKeyId (\ s a -> s{_glGroupKeyId = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+glUploadType :: Lens' GroupsLookup (Maybe Text)+glUploadType+  = lens _glUploadType (\ s a -> s{_glUploadType = a})++-- | Namespaces provide isolation for IDs, so an ID only needs to be unique+-- within its namespace. Namespaces are currently only created as part of+-- IdentitySource creation from Admin Console. A namespace+-- \`\"identitysources\/{identity_source_id}\"\` is created corresponding+-- to every Identity Source \`identity_source_id\`.+glGroupKeyNamespace :: Lens' GroupsLookup (Maybe Text)+glGroupKeyNamespace+  = lens _glGroupKeyNamespace+      (\ s a -> s{_glGroupKeyNamespace = a})++-- | JSONP+glCallback :: Lens' GroupsLookup (Maybe Text)+glCallback+  = lens _glCallback (\ s a -> s{_glCallback = a})++instance GoogleRequest GroupsLookup where+        type Rs GroupsLookup = LookupGroupNameResponse+        type Scopes GroupsLookup = '[]+        requestClient GroupsLookup'{..}+          = go _glXgafv _glUploadProtocol _glAccessToken+              _glGroupKeyId+              _glUploadType+              _glGroupKeyNamespace+              _glCallback+              (Just AltJSON)+              cloudIdentityService+          where go+                  = buildClient (Proxy :: Proxy GroupsLookupResource)+                      mempty
+ gen/Network/Google/Resource/CloudIdentity/Groups/Memberships/Create.hs view
@@ -0,0 +1,161 @@+{-# 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.CloudIdentity.Groups.Memberships.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a Membership.+--+-- /See:/ <https://cloud.google.com/identity/ Cloud Identity API Reference> for @cloudidentity.groups.memberships.create@.+module Network.Google.Resource.CloudIdentity.Groups.Memberships.Create+    (+    -- * REST Resource+      GroupsMembershipsCreateResource++    -- * Creating a Request+    , groupsMembershipsCreate+    , GroupsMembershipsCreate++    -- * Request Lenses+    , gmcParent+    , gmcXgafv+    , gmcUploadProtocol+    , gmcAccessToken+    , gmcUploadType+    , gmcPayload+    , gmcCallback+    ) where++import           Network.Google.CloudIdentity.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudidentity.groups.memberships.create@ method which the+-- 'GroupsMembershipsCreate' request conforms to.+type GroupsMembershipsCreateResource =+     "v1" :>+       Capture "parent" Text :>+         "memberships" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Membership :> Post '[JSON] Operation++-- | Creates a Membership.+--+-- /See:/ 'groupsMembershipsCreate' smart constructor.+data GroupsMembershipsCreate = GroupsMembershipsCreate'+    { _gmcParent         :: !Text+    , _gmcXgafv          :: !(Maybe Xgafv)+    , _gmcUploadProtocol :: !(Maybe Text)+    , _gmcAccessToken    :: !(Maybe Text)+    , _gmcUploadType     :: !(Maybe Text)+    , _gmcPayload        :: !Membership+    , _gmcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsMembershipsCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gmcParent'+--+-- * 'gmcXgafv'+--+-- * 'gmcUploadProtocol'+--+-- * 'gmcAccessToken'+--+-- * 'gmcUploadType'+--+-- * 'gmcPayload'+--+-- * 'gmcCallback'+groupsMembershipsCreate+    :: Text -- ^ 'gmcParent'+    -> Membership -- ^ 'gmcPayload'+    -> GroupsMembershipsCreate+groupsMembershipsCreate pGmcParent_ pGmcPayload_ =+    GroupsMembershipsCreate'+    { _gmcParent = pGmcParent_+    , _gmcXgafv = Nothing+    , _gmcUploadProtocol = Nothing+    , _gmcAccessToken = Nothing+    , _gmcUploadType = Nothing+    , _gmcPayload = pGmcPayload_+    , _gmcCallback = Nothing+    }++-- | [Resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of the+-- Group to create Membership within. Format: \`groups\/{group_id}\`, where+-- \`group_id\` is the unique ID assigned to the Group.+gmcParent :: Lens' GroupsMembershipsCreate Text+gmcParent+  = lens _gmcParent (\ s a -> s{_gmcParent = a})++-- | V1 error format.+gmcXgafv :: Lens' GroupsMembershipsCreate (Maybe Xgafv)+gmcXgafv = lens _gmcXgafv (\ s a -> s{_gmcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+gmcUploadProtocol :: Lens' GroupsMembershipsCreate (Maybe Text)+gmcUploadProtocol+  = lens _gmcUploadProtocol+      (\ s a -> s{_gmcUploadProtocol = a})++-- | OAuth access token.+gmcAccessToken :: Lens' GroupsMembershipsCreate (Maybe Text)+gmcAccessToken+  = lens _gmcAccessToken+      (\ s a -> s{_gmcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+gmcUploadType :: Lens' GroupsMembershipsCreate (Maybe Text)+gmcUploadType+  = lens _gmcUploadType+      (\ s a -> s{_gmcUploadType = a})++-- | Multipart request metadata.+gmcPayload :: Lens' GroupsMembershipsCreate Membership+gmcPayload+  = lens _gmcPayload (\ s a -> s{_gmcPayload = a})++-- | JSONP+gmcCallback :: Lens' GroupsMembershipsCreate (Maybe Text)+gmcCallback+  = lens _gmcCallback (\ s a -> s{_gmcCallback = a})++instance GoogleRequest GroupsMembershipsCreate where+        type Rs GroupsMembershipsCreate = Operation+        type Scopes GroupsMembershipsCreate = '[]+        requestClient GroupsMembershipsCreate'{..}+          = go _gmcParent _gmcXgafv _gmcUploadProtocol+              _gmcAccessToken+              _gmcUploadType+              _gmcCallback+              (Just AltJSON)+              _gmcPayload+              cloudIdentityService+          where go+                  = buildClient+                      (Proxy :: Proxy GroupsMembershipsCreateResource)+                      mempty
+ gen/Network/Google/Resource/CloudIdentity/Groups/Memberships/Delete.hs view
@@ -0,0 +1,148 @@+{-# 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.CloudIdentity.Groups.Memberships.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a Membership.+--+-- /See:/ <https://cloud.google.com/identity/ Cloud Identity API Reference> for @cloudidentity.groups.memberships.delete@.+module Network.Google.Resource.CloudIdentity.Groups.Memberships.Delete+    (+    -- * REST Resource+      GroupsMembershipsDeleteResource++    -- * Creating a Request+    , groupsMembershipsDelete+    , GroupsMembershipsDelete++    -- * Request Lenses+    , gmdXgafv+    , gmdUploadProtocol+    , gmdAccessToken+    , gmdUploadType+    , gmdName+    , gmdCallback+    ) where++import           Network.Google.CloudIdentity.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudidentity.groups.memberships.delete@ method which the+-- 'GroupsMembershipsDelete' request conforms to.+type GroupsMembershipsDeleteResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes a Membership.+--+-- /See:/ 'groupsMembershipsDelete' smart constructor.+data GroupsMembershipsDelete = GroupsMembershipsDelete'+    { _gmdXgafv          :: !(Maybe Xgafv)+    , _gmdUploadProtocol :: !(Maybe Text)+    , _gmdAccessToken    :: !(Maybe Text)+    , _gmdUploadType     :: !(Maybe Text)+    , _gmdName           :: !Text+    , _gmdCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsMembershipsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gmdXgafv'+--+-- * 'gmdUploadProtocol'+--+-- * 'gmdAccessToken'+--+-- * 'gmdUploadType'+--+-- * 'gmdName'+--+-- * 'gmdCallback'+groupsMembershipsDelete+    :: Text -- ^ 'gmdName'+    -> GroupsMembershipsDelete+groupsMembershipsDelete pGmdName_ =+    GroupsMembershipsDelete'+    { _gmdXgafv = Nothing+    , _gmdUploadProtocol = Nothing+    , _gmdAccessToken = Nothing+    , _gmdUploadType = Nothing+    , _gmdName = pGmdName_+    , _gmdCallback = Nothing+    }++-- | V1 error format.+gmdXgafv :: Lens' GroupsMembershipsDelete (Maybe Xgafv)+gmdXgafv = lens _gmdXgafv (\ s a -> s{_gmdXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+gmdUploadProtocol :: Lens' GroupsMembershipsDelete (Maybe Text)+gmdUploadProtocol+  = lens _gmdUploadProtocol+      (\ s a -> s{_gmdUploadProtocol = a})++-- | OAuth access token.+gmdAccessToken :: Lens' GroupsMembershipsDelete (Maybe Text)+gmdAccessToken+  = lens _gmdAccessToken+      (\ s a -> s{_gmdAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+gmdUploadType :: Lens' GroupsMembershipsDelete (Maybe Text)+gmdUploadType+  = lens _gmdUploadType+      (\ s a -> s{_gmdUploadType = a})++-- | [Resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of the+-- Membership to be deleted. Format:+-- \`groups\/{group_id}\/memberships\/{member_id}\`, where \`group_id\` is+-- the unique ID assigned to the Group to which Membership belongs to, and+-- member_id is the unique ID assigned to the member.+gmdName :: Lens' GroupsMembershipsDelete Text+gmdName = lens _gmdName (\ s a -> s{_gmdName = a})++-- | JSONP+gmdCallback :: Lens' GroupsMembershipsDelete (Maybe Text)+gmdCallback+  = lens _gmdCallback (\ s a -> s{_gmdCallback = a})++instance GoogleRequest GroupsMembershipsDelete where+        type Rs GroupsMembershipsDelete = Operation+        type Scopes GroupsMembershipsDelete = '[]+        requestClient GroupsMembershipsDelete'{..}+          = go _gmdName _gmdXgafv _gmdUploadProtocol+              _gmdAccessToken+              _gmdUploadType+              _gmdCallback+              (Just AltJSON)+              cloudIdentityService+          where go+                  = buildClient+                      (Proxy :: Proxy GroupsMembershipsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/CloudIdentity/Groups/Memberships/Get.hs view
@@ -0,0 +1,148 @@+{-# 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.CloudIdentity.Groups.Memberships.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a Membership.+--+-- /See:/ <https://cloud.google.com/identity/ Cloud Identity API Reference> for @cloudidentity.groups.memberships.get@.+module Network.Google.Resource.CloudIdentity.Groups.Memberships.Get+    (+    -- * REST Resource+      GroupsMembershipsGetResource++    -- * Creating a Request+    , groupsMembershipsGet+    , GroupsMembershipsGet++    -- * Request Lenses+    , gmgXgafv+    , gmgUploadProtocol+    , gmgAccessToken+    , gmgUploadType+    , gmgName+    , gmgCallback+    ) where++import           Network.Google.CloudIdentity.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudidentity.groups.memberships.get@ method which the+-- 'GroupsMembershipsGet' request conforms to.+type GroupsMembershipsGetResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Membership++-- | Retrieves a Membership.+--+-- /See:/ 'groupsMembershipsGet' smart constructor.+data GroupsMembershipsGet = GroupsMembershipsGet'+    { _gmgXgafv          :: !(Maybe Xgafv)+    , _gmgUploadProtocol :: !(Maybe Text)+    , _gmgAccessToken    :: !(Maybe Text)+    , _gmgUploadType     :: !(Maybe Text)+    , _gmgName           :: !Text+    , _gmgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsMembershipsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gmgXgafv'+--+-- * 'gmgUploadProtocol'+--+-- * 'gmgAccessToken'+--+-- * 'gmgUploadType'+--+-- * 'gmgName'+--+-- * 'gmgCallback'+groupsMembershipsGet+    :: Text -- ^ 'gmgName'+    -> GroupsMembershipsGet+groupsMembershipsGet pGmgName_ =+    GroupsMembershipsGet'+    { _gmgXgafv = Nothing+    , _gmgUploadProtocol = Nothing+    , _gmgAccessToken = Nothing+    , _gmgUploadType = Nothing+    , _gmgName = pGmgName_+    , _gmgCallback = Nothing+    }++-- | V1 error format.+gmgXgafv :: Lens' GroupsMembershipsGet (Maybe Xgafv)+gmgXgafv = lens _gmgXgafv (\ s a -> s{_gmgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+gmgUploadProtocol :: Lens' GroupsMembershipsGet (Maybe Text)+gmgUploadProtocol+  = lens _gmgUploadProtocol+      (\ s a -> s{_gmgUploadProtocol = a})++-- | OAuth access token.+gmgAccessToken :: Lens' GroupsMembershipsGet (Maybe Text)+gmgAccessToken+  = lens _gmgAccessToken+      (\ s a -> s{_gmgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+gmgUploadType :: Lens' GroupsMembershipsGet (Maybe Text)+gmgUploadType+  = lens _gmgUploadType+      (\ s a -> s{_gmgUploadType = a})++-- | [Resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of the+-- Membership to be retrieved. Format:+-- \`groups\/{group_id}\/memberships\/{member_id}\`, where \`group_id\` is+-- the unique id assigned to the Group to which Membership belongs to, and+-- \`member_id\` is the unique ID assigned to the member.+gmgName :: Lens' GroupsMembershipsGet Text+gmgName = lens _gmgName (\ s a -> s{_gmgName = a})++-- | JSONP+gmgCallback :: Lens' GroupsMembershipsGet (Maybe Text)+gmgCallback+  = lens _gmgCallback (\ s a -> s{_gmgCallback = a})++instance GoogleRequest GroupsMembershipsGet where+        type Rs GroupsMembershipsGet = Membership+        type Scopes GroupsMembershipsGet = '[]+        requestClient GroupsMembershipsGet'{..}+          = go _gmgName _gmgXgafv _gmgUploadProtocol+              _gmgAccessToken+              _gmgUploadType+              _gmgCallback+              (Just AltJSON)+              cloudIdentityService+          where go+                  = buildClient+                      (Proxy :: Proxy GroupsMembershipsGetResource)+                      mempty
+ gen/Network/Google/Resource/CloudIdentity/Groups/Memberships/List.hs view
@@ -0,0 +1,187 @@+{-# 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.CloudIdentity.Groups.Memberships.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List Memberships within a Group.+--+-- /See:/ <https://cloud.google.com/identity/ Cloud Identity API Reference> for @cloudidentity.groups.memberships.list@.+module Network.Google.Resource.CloudIdentity.Groups.Memberships.List+    (+    -- * REST Resource+      GroupsMembershipsListResource++    -- * Creating a Request+    , groupsMembershipsList+    , GroupsMembershipsList++    -- * Request Lenses+    , groParent+    , groXgafv+    , groUploadProtocol+    , groAccessToken+    , groUploadType+    , groView+    , groPageToken+    , groPageSize+    , groCallback+    ) where++import           Network.Google.CloudIdentity.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudidentity.groups.memberships.list@ method which the+-- 'GroupsMembershipsList' request conforms to.+type GroupsMembershipsListResource =+     "v1" :>+       Capture "parent" Text :>+         "memberships" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "view" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "pageSize" (Textual Int32) :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON] ListMembershipsResponse++-- | List Memberships within a Group.+--+-- /See:/ 'groupsMembershipsList' smart constructor.+data GroupsMembershipsList = GroupsMembershipsList'+    { _groParent         :: !Text+    , _groXgafv          :: !(Maybe Xgafv)+    , _groUploadProtocol :: !(Maybe Text)+    , _groAccessToken    :: !(Maybe Text)+    , _groUploadType     :: !(Maybe Text)+    , _groView           :: !(Maybe Text)+    , _groPageToken      :: !(Maybe Text)+    , _groPageSize       :: !(Maybe (Textual Int32))+    , _groCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsMembershipsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'groParent'+--+-- * 'groXgafv'+--+-- * 'groUploadProtocol'+--+-- * 'groAccessToken'+--+-- * 'groUploadType'+--+-- * 'groView'+--+-- * 'groPageToken'+--+-- * 'groPageSize'+--+-- * 'groCallback'+groupsMembershipsList+    :: Text -- ^ 'groParent'+    -> GroupsMembershipsList+groupsMembershipsList pGroParent_ =+    GroupsMembershipsList'+    { _groParent = pGroParent_+    , _groXgafv = Nothing+    , _groUploadProtocol = Nothing+    , _groAccessToken = Nothing+    , _groUploadType = Nothing+    , _groView = Nothing+    , _groPageToken = Nothing+    , _groPageSize = Nothing+    , _groCallback = Nothing+    }++-- | [Resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of the+-- Group to list Memberships within. Format: \`groups\/{group_id}\`, where+-- \`group_id\` is the unique ID assigned to the Group.+groParent :: Lens' GroupsMembershipsList Text+groParent+  = lens _groParent (\ s a -> s{_groParent = a})++-- | V1 error format.+groXgafv :: Lens' GroupsMembershipsList (Maybe Xgafv)+groXgafv = lens _groXgafv (\ s a -> s{_groXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+groUploadProtocol :: Lens' GroupsMembershipsList (Maybe Text)+groUploadProtocol+  = lens _groUploadProtocol+      (\ s a -> s{_groUploadProtocol = a})++-- | OAuth access token.+groAccessToken :: Lens' GroupsMembershipsList (Maybe Text)+groAccessToken+  = lens _groAccessToken+      (\ s a -> s{_groAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+groUploadType :: Lens' GroupsMembershipsList (Maybe Text)+groUploadType+  = lens _groUploadType+      (\ s a -> s{_groUploadType = a})++-- | Membership resource view to be returned. Defaults to View.BASIC.+groView :: Lens' GroupsMembershipsList (Maybe Text)+groView = lens _groView (\ s a -> s{_groView = a})++-- | The next_page_token value returned from a previous list request, if any.+groPageToken :: Lens' GroupsMembershipsList (Maybe Text)+groPageToken+  = lens _groPageToken (\ s a -> s{_groPageToken = a})++-- | Maximum number of Memberships to return. View | Default | Maximum+-- -----|---------|-------- BASIC | 200 | 1000 FULL | 50 | 500+groPageSize :: Lens' GroupsMembershipsList (Maybe Int32)+groPageSize+  = lens _groPageSize (\ s a -> s{_groPageSize = a}) .+      mapping _Coerce++-- | JSONP+groCallback :: Lens' GroupsMembershipsList (Maybe Text)+groCallback+  = lens _groCallback (\ s a -> s{_groCallback = a})++instance GoogleRequest GroupsMembershipsList where+        type Rs GroupsMembershipsList =+             ListMembershipsResponse+        type Scopes GroupsMembershipsList = '[]+        requestClient GroupsMembershipsList'{..}+          = go _groParent _groXgafv _groUploadProtocol+              _groAccessToken+              _groUploadType+              _groView+              _groPageToken+              _groPageSize+              _groCallback+              (Just AltJSON)+              cloudIdentityService+          where go+                  = buildClient+                      (Proxy :: Proxy GroupsMembershipsListResource)+                      mempty
+ gen/Network/Google/Resource/CloudIdentity/Groups/Memberships/Lookup.hs view
@@ -0,0 +1,185 @@+{-# 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.CloudIdentity.Groups.Memberships.Lookup+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Looks up [resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of a+-- Membership within a Group by member\'s EntityKey.+--+-- /See:/ <https://cloud.google.com/identity/ Cloud Identity API Reference> for @cloudidentity.groups.memberships.lookup@.+module Network.Google.Resource.CloudIdentity.Groups.Memberships.Lookup+    (+    -- * REST Resource+      GroupsMembershipsLookupResource++    -- * Creating a Request+    , groupsMembershipsLookup+    , GroupsMembershipsLookup++    -- * Request Lenses+    , gmlParent+    , gmlXgafv+    , gmlUploadProtocol+    , gmlAccessToken+    , gmlUploadType+    , gmlMemberKeyId+    , gmlMemberKeyNamespace+    , gmlCallback+    ) where++import           Network.Google.CloudIdentity.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudidentity.groups.memberships.lookup@ method which the+-- 'GroupsMembershipsLookup' request conforms to.+type GroupsMembershipsLookupResource =+     "v1" :>+       Capture "parent" Text :>+         "memberships:lookup" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "memberKey.id" Text :>+                     QueryParam "memberKey.namespace" Text :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] LookupMembershipNameResponse++-- | Looks up [resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of a+-- Membership within a Group by member\'s EntityKey.+--+-- /See:/ 'groupsMembershipsLookup' smart constructor.+data GroupsMembershipsLookup = GroupsMembershipsLookup'+    { _gmlParent             :: !Text+    , _gmlXgafv              :: !(Maybe Xgafv)+    , _gmlUploadProtocol     :: !(Maybe Text)+    , _gmlAccessToken        :: !(Maybe Text)+    , _gmlUploadType         :: !(Maybe Text)+    , _gmlMemberKeyId        :: !(Maybe Text)+    , _gmlMemberKeyNamespace :: !(Maybe Text)+    , _gmlCallback           :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsMembershipsLookup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gmlParent'+--+-- * 'gmlXgafv'+--+-- * 'gmlUploadProtocol'+--+-- * 'gmlAccessToken'+--+-- * 'gmlUploadType'+--+-- * 'gmlMemberKeyId'+--+-- * 'gmlMemberKeyNamespace'+--+-- * 'gmlCallback'+groupsMembershipsLookup+    :: Text -- ^ 'gmlParent'+    -> GroupsMembershipsLookup+groupsMembershipsLookup pGmlParent_ =+    GroupsMembershipsLookup'+    { _gmlParent = pGmlParent_+    , _gmlXgafv = Nothing+    , _gmlUploadProtocol = Nothing+    , _gmlAccessToken = Nothing+    , _gmlUploadType = Nothing+    , _gmlMemberKeyId = Nothing+    , _gmlMemberKeyNamespace = Nothing+    , _gmlCallback = Nothing+    }++-- | [Resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of the+-- Group to lookup Membership within. Format: \`groups\/{group_id}\`, where+-- \`group_id\` is the unique ID assigned to the Group.+gmlParent :: Lens' GroupsMembershipsLookup Text+gmlParent+  = lens _gmlParent (\ s a -> s{_gmlParent = a})++-- | V1 error format.+gmlXgafv :: Lens' GroupsMembershipsLookup (Maybe Xgafv)+gmlXgafv = lens _gmlXgafv (\ s a -> s{_gmlXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+gmlUploadProtocol :: Lens' GroupsMembershipsLookup (Maybe Text)+gmlUploadProtocol+  = lens _gmlUploadProtocol+      (\ s a -> s{_gmlUploadProtocol = a})++-- | OAuth access token.+gmlAccessToken :: Lens' GroupsMembershipsLookup (Maybe Text)+gmlAccessToken+  = lens _gmlAccessToken+      (\ s a -> s{_gmlAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+gmlUploadType :: Lens' GroupsMembershipsLookup (Maybe Text)+gmlUploadType+  = lens _gmlUploadType+      (\ s a -> s{_gmlUploadType = a})++-- | The ID of the entity within the given namespace. The ID must be unique+-- within its namespace.+gmlMemberKeyId :: Lens' GroupsMembershipsLookup (Maybe Text)+gmlMemberKeyId+  = lens _gmlMemberKeyId+      (\ s a -> s{_gmlMemberKeyId = a})++-- | Namespaces provide isolation for IDs, so an ID only needs to be unique+-- within its namespace. Namespaces are currently only created as part of+-- IdentitySource creation from Admin Console. A namespace+-- \`\"identitysources\/{identity_source_id}\"\` is created corresponding+-- to every Identity Source \`identity_source_id\`.+gmlMemberKeyNamespace :: Lens' GroupsMembershipsLookup (Maybe Text)+gmlMemberKeyNamespace+  = lens _gmlMemberKeyNamespace+      (\ s a -> s{_gmlMemberKeyNamespace = a})++-- | JSONP+gmlCallback :: Lens' GroupsMembershipsLookup (Maybe Text)+gmlCallback+  = lens _gmlCallback (\ s a -> s{_gmlCallback = a})++instance GoogleRequest GroupsMembershipsLookup where+        type Rs GroupsMembershipsLookup =+             LookupMembershipNameResponse+        type Scopes GroupsMembershipsLookup = '[]+        requestClient GroupsMembershipsLookup'{..}+          = go _gmlParent _gmlXgafv _gmlUploadProtocol+              _gmlAccessToken+              _gmlUploadType+              _gmlMemberKeyId+              _gmlMemberKeyNamespace+              _gmlCallback+              (Just AltJSON)+              cloudIdentityService+          where go+                  = buildClient+                      (Proxy :: Proxy GroupsMembershipsLookupResource)+                      mempty
+ gen/Network/Google/Resource/CloudIdentity/Groups/Patch.hs view
@@ -0,0 +1,169 @@+{-# 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.CloudIdentity.Groups.Patch+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a Group.+--+-- /See:/ <https://cloud.google.com/identity/ Cloud Identity API Reference> for @cloudidentity.groups.patch@.+module Network.Google.Resource.CloudIdentity.Groups.Patch+    (+    -- * REST Resource+      GroupsPatchResource++    -- * Creating a Request+    , groupsPatch+    , GroupsPatch++    -- * Request Lenses+    , gpXgafv+    , gpUploadProtocol+    , gpUpdateMask+    , gpAccessToken+    , gpUploadType+    , gpPayload+    , gpName+    , gpCallback+    ) where++import           Network.Google.CloudIdentity.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudidentity.groups.patch@ method which the+-- 'GroupsPatch' request conforms to.+type GroupsPatchResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "updateMask" GFieldMask :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Group :> Patch '[JSON] Operation++-- | Updates a Group.+--+-- /See:/ 'groupsPatch' smart constructor.+data GroupsPatch = GroupsPatch'+    { _gpXgafv          :: !(Maybe Xgafv)+    , _gpUploadProtocol :: !(Maybe Text)+    , _gpUpdateMask     :: !(Maybe GFieldMask)+    , _gpAccessToken    :: !(Maybe Text)+    , _gpUploadType     :: !(Maybe Text)+    , _gpPayload        :: !Group+    , _gpName           :: !Text+    , _gpCallback       :: !(Maybe Text)+    } 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:+--+-- * 'gpXgafv'+--+-- * 'gpUploadProtocol'+--+-- * 'gpUpdateMask'+--+-- * 'gpAccessToken'+--+-- * 'gpUploadType'+--+-- * 'gpPayload'+--+-- * 'gpName'+--+-- * 'gpCallback'+groupsPatch+    :: Group -- ^ 'gpPayload'+    -> Text -- ^ 'gpName'+    -> GroupsPatch+groupsPatch pGpPayload_ pGpName_ =+    GroupsPatch'+    { _gpXgafv = Nothing+    , _gpUploadProtocol = Nothing+    , _gpUpdateMask = Nothing+    , _gpAccessToken = Nothing+    , _gpUploadType = Nothing+    , _gpPayload = pGpPayload_+    , _gpName = pGpName_+    , _gpCallback = Nothing+    }++-- | V1 error format.+gpXgafv :: Lens' GroupsPatch (Maybe Xgafv)+gpXgafv = lens _gpXgafv (\ s a -> s{_gpXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+gpUploadProtocol :: Lens' GroupsPatch (Maybe Text)+gpUploadProtocol+  = lens _gpUploadProtocol+      (\ s a -> s{_gpUploadProtocol = a})++-- | Editable fields: \`display_name\`, \`description\`+gpUpdateMask :: Lens' GroupsPatch (Maybe GFieldMask)+gpUpdateMask+  = lens _gpUpdateMask (\ s a -> s{_gpUpdateMask = a})++-- | OAuth access token.+gpAccessToken :: Lens' GroupsPatch (Maybe Text)+gpAccessToken+  = lens _gpAccessToken+      (\ s a -> s{_gpAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+gpUploadType :: Lens' GroupsPatch (Maybe Text)+gpUploadType+  = lens _gpUploadType (\ s a -> s{_gpUploadType = a})++-- | Multipart request metadata.+gpPayload :: Lens' GroupsPatch Group+gpPayload+  = lens _gpPayload (\ s a -> s{_gpPayload = a})++-- | [Resource+-- name](https:\/\/cloud.google.com\/apis\/design\/resource_names) of the+-- Group in the format: \`groups\/{group_id}\`, where group_id is the+-- unique ID assigned to the Group. Must be left blank while creating a+-- Group.+gpName :: Lens' GroupsPatch Text+gpName = lens _gpName (\ s a -> s{_gpName = a})++-- | JSONP+gpCallback :: Lens' GroupsPatch (Maybe Text)+gpCallback+  = lens _gpCallback (\ s a -> s{_gpCallback = a})++instance GoogleRequest GroupsPatch where+        type Rs GroupsPatch = Operation+        type Scopes GroupsPatch = '[]+        requestClient GroupsPatch'{..}+          = go _gpName _gpXgafv _gpUploadProtocol _gpUpdateMask+              _gpAccessToken+              _gpUploadType+              _gpCallback+              (Just AltJSON)+              _gpPayload+              cloudIdentityService+          where go+                  = buildClient (Proxy :: Proxy GroupsPatchResource)+                      mempty
+ gen/Network/Google/Resource/CloudIdentity/Groups/Search.hs view
@@ -0,0 +1,182 @@+{-# 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.CloudIdentity.Groups.Search+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Searches for Groups.+--+-- /See:/ <https://cloud.google.com/identity/ Cloud Identity API Reference> for @cloudidentity.groups.search@.+module Network.Google.Resource.CloudIdentity.Groups.Search+    (+    -- * REST Resource+      GroupsSearchResource++    -- * Creating a Request+    , groupsSearch+    , GroupsSearch++    -- * Request Lenses+    , gsXgafv+    , gsUploadProtocol+    , gsAccessToken+    , gsUploadType+    , gsQuery+    , gsView+    , gsPageToken+    , gsPageSize+    , gsCallback+    ) where++import           Network.Google.CloudIdentity.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudidentity.groups.search@ method which the+-- 'GroupsSearch' request conforms to.+type GroupsSearchResource =+     "v1" :>+       "groups:search" :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "query" Text :>+                   QueryParam "view" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "pageSize" (Textual Int32) :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON] SearchGroupsResponse++-- | Searches for Groups.+--+-- /See:/ 'groupsSearch' smart constructor.+data GroupsSearch = GroupsSearch'+    { _gsXgafv          :: !(Maybe Xgafv)+    , _gsUploadProtocol :: !(Maybe Text)+    , _gsAccessToken    :: !(Maybe Text)+    , _gsUploadType     :: !(Maybe Text)+    , _gsQuery          :: !(Maybe Text)+    , _gsView           :: !(Maybe Text)+    , _gsPageToken      :: !(Maybe Text)+    , _gsPageSize       :: !(Maybe (Textual Int32))+    , _gsCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GroupsSearch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gsXgafv'+--+-- * 'gsUploadProtocol'+--+-- * 'gsAccessToken'+--+-- * 'gsUploadType'+--+-- * 'gsQuery'+--+-- * 'gsView'+--+-- * 'gsPageToken'+--+-- * 'gsPageSize'+--+-- * 'gsCallback'+groupsSearch+    :: GroupsSearch+groupsSearch =+    GroupsSearch'+    { _gsXgafv = Nothing+    , _gsUploadProtocol = Nothing+    , _gsAccessToken = Nothing+    , _gsUploadType = Nothing+    , _gsQuery = Nothing+    , _gsView = Nothing+    , _gsPageToken = Nothing+    , _gsPageSize = Nothing+    , _gsCallback = Nothing+    }++-- | V1 error format.+gsXgafv :: Lens' GroupsSearch (Maybe Xgafv)+gsXgafv = lens _gsXgafv (\ s a -> s{_gsXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+gsUploadProtocol :: Lens' GroupsSearch (Maybe Text)+gsUploadProtocol+  = lens _gsUploadProtocol+      (\ s a -> s{_gsUploadProtocol = a})++-- | OAuth access token.+gsAccessToken :: Lens' GroupsSearch (Maybe Text)+gsAccessToken+  = lens _gsAccessToken+      (\ s a -> s{_gsAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+gsUploadType :: Lens' GroupsSearch (Maybe Text)+gsUploadType+  = lens _gsUploadType (\ s a -> s{_gsUploadType = a})++-- | \`Required\`. Query string for performing search on groups. Users can+-- search on parent and label attributes of groups. EXACT match (\'==\') is+-- supported on parent, and CONTAINS match (\'in\') is supported on labels.+gsQuery :: Lens' GroupsSearch (Maybe Text)+gsQuery = lens _gsQuery (\ s a -> s{_gsQuery = a})++-- | Group resource view to be returned. Defaults to [View.BASIC]().+gsView :: Lens' GroupsSearch (Maybe Text)+gsView = lens _gsView (\ s a -> s{_gsView = a})++-- | The next_page_token value returned from a previous search request, if+-- any.+gsPageToken :: Lens' GroupsSearch (Maybe Text)+gsPageToken+  = lens _gsPageToken (\ s a -> s{_gsPageToken = a})++-- | Maximum number of Groups to return. View | Default | Maximum+-- -----|---------|-------- BASIC | 200 | 1000 FULL | 50 | 500+gsPageSize :: Lens' GroupsSearch (Maybe Int32)+gsPageSize+  = lens _gsPageSize (\ s a -> s{_gsPageSize = a}) .+      mapping _Coerce++-- | JSONP+gsCallback :: Lens' GroupsSearch (Maybe Text)+gsCallback+  = lens _gsCallback (\ s a -> s{_gsCallback = a})++instance GoogleRequest GroupsSearch where+        type Rs GroupsSearch = SearchGroupsResponse+        type Scopes GroupsSearch = '[]+        requestClient GroupsSearch'{..}+          = go _gsXgafv _gsUploadProtocol _gsAccessToken+              _gsUploadType+              _gsQuery+              _gsView+              _gsPageToken+              _gsPageSize+              _gsCallback+              (Just AltJSON)+              cloudIdentityService+          where go+                  = buildClient (Proxy :: Proxy GroupsSearchResource)+                      mempty
+ gogol-cloudidentity.cabal view
@@ -0,0 +1,57 @@+name:                  gogol-cloudidentity+version:               0.4.0+synopsis:              Google Cloud Identity 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-2016 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md src/.gitkeep++description:+    API for provisioning and managing identity resources.+    .+    /Warning:/ This is an experimental prototype/preview release which is still+    under exploratory development and not intended for public use, caveat emptor!+    .+    This library is compatible with version @v1@+    of the API.++source-repository head+    type:     git+    location: git://github.com/brendanhay/gogol.git++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:       -Wall++    exposed-modules:+          Network.Google.CloudIdentity+        , Network.Google.CloudIdentity.Types+        , Network.Google.Resource.CloudIdentity.Groups.Create+        , Network.Google.Resource.CloudIdentity.Groups.Delete+        , Network.Google.Resource.CloudIdentity.Groups.Get+        , Network.Google.Resource.CloudIdentity.Groups.List+        , Network.Google.Resource.CloudIdentity.Groups.Lookup+        , Network.Google.Resource.CloudIdentity.Groups.Memberships.Create+        , Network.Google.Resource.CloudIdentity.Groups.Memberships.Delete+        , Network.Google.Resource.CloudIdentity.Groups.Memberships.Get+        , Network.Google.Resource.CloudIdentity.Groups.Memberships.List+        , Network.Google.Resource.CloudIdentity.Groups.Memberships.Lookup+        , Network.Google.Resource.CloudIdentity.Groups.Patch+        , Network.Google.Resource.CloudIdentity.Groups.Search++    other-modules:+          Network.Google.CloudIdentity.Types.Product+        , Network.Google.CloudIdentity.Types.Sum++    build-depends:+          gogol-core == 0.4.0.*+        , base       >= 4.7 && < 5
+ src/.gitkeep view