packages feed

amazonka-identitystore (empty) → 2.0

raw patch · 84 files changed

+8632/−0 lines, 84 filesdep +amazonka-coredep +amazonka-identitystoredep +amazonka-test

Dependencies added: amazonka-core, amazonka-identitystore, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers

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,44 @@+# Amazon SSO Identity Store SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-06-15@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-identitystore)+and the [AWS API Reference](https://aws.amazon.com/documentation/).++The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),+which provides mechanisms for specifying AuthN/AuthZ information, sending requests,+and receiving responses.++Lenses are used for constructing and manipulating types,+due to the depth of nesting of AWS types and transparency regarding+de/serialisation into more palatable Haskell values.+The provided lenses should be compatible with any of the major lens libraries+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).++See [Amazonka.IdentityStore](http://hackage.haskell.org/package/amazonka-identitystore/docs/Amazonka-IdentityStore.html)+or [the AWS documentation](https://aws.amazon.com/documentation/) to get started.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`amazonka-identitystore` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).++Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.+Source files subject to this contain an additional licensing clause in their header.
+ amazonka-identitystore.cabal view
@@ -0,0 +1,117 @@+cabal-version:      2.2+name:               amazonka-identitystore+version:            2.0+synopsis:           Amazon SSO Identity Store SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2020-06-15@ of the AWS service descriptions, licensed under Apache 2.0.+  .+  The types from this library are intended to be used with <http://hackage.haskell.org/package/amazonka amazonka>,+  which provides mechanisms for specifying AuthN/AuthZ information, sending requests, and receiving responses.+  .+  It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+  .+  Generated lenses can be found in "Amazonka.IdentityStore.Lens" and are+  suitable for use with a lens package such as <http://hackage.haskell.org/package/lens lens> or <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+  .+  See "Amazonka.IdentityStore" and the <https://aws.amazon.com/documentation/ AWS documentation> to get started.++source-repository head+  type:     git+  location: git://github.com/brendanhay/amazonka.git+  subdir:   amazonka-identitystore++library+  default-language: Haskell2010+  hs-source-dirs:   src gen+  ghc-options:+    -Wall -fwarn-incomplete-uni-patterns+    -fwarn-incomplete-record-updates -funbox-strict-fields++  exposed-modules:+    Amazonka.IdentityStore+    Amazonka.IdentityStore.CreateGroup+    Amazonka.IdentityStore.CreateGroupMembership+    Amazonka.IdentityStore.CreateUser+    Amazonka.IdentityStore.DeleteGroup+    Amazonka.IdentityStore.DeleteGroupMembership+    Amazonka.IdentityStore.DeleteUser+    Amazonka.IdentityStore.DescribeGroup+    Amazonka.IdentityStore.DescribeGroupMembership+    Amazonka.IdentityStore.DescribeUser+    Amazonka.IdentityStore.GetGroupId+    Amazonka.IdentityStore.GetGroupMembershipId+    Amazonka.IdentityStore.GetUserId+    Amazonka.IdentityStore.IsMemberInGroups+    Amazonka.IdentityStore.Lens+    Amazonka.IdentityStore.ListGroupMemberships+    Amazonka.IdentityStore.ListGroupMembershipsForMember+    Amazonka.IdentityStore.ListGroups+    Amazonka.IdentityStore.ListUsers+    Amazonka.IdentityStore.Types+    Amazonka.IdentityStore.Types.Address+    Amazonka.IdentityStore.Types.AlternateIdentifier+    Amazonka.IdentityStore.Types.AttributeOperation+    Amazonka.IdentityStore.Types.AttributeValue+    Amazonka.IdentityStore.Types.Email+    Amazonka.IdentityStore.Types.ExternalId+    Amazonka.IdentityStore.Types.Filter+    Amazonka.IdentityStore.Types.Group+    Amazonka.IdentityStore.Types.GroupMembership+    Amazonka.IdentityStore.Types.GroupMembershipExistenceResult+    Amazonka.IdentityStore.Types.MemberId+    Amazonka.IdentityStore.Types.Name+    Amazonka.IdentityStore.Types.PhoneNumber+    Amazonka.IdentityStore.Types.UniqueAttribute+    Amazonka.IdentityStore.Types.User+    Amazonka.IdentityStore.UpdateGroup+    Amazonka.IdentityStore.UpdateUser+    Amazonka.IdentityStore.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-identitystore-test+  type:             exitcode-stdio-1.0+  default-language: Haskell2010+  hs-source-dirs:   test+  main-is:          Main.hs+  ghc-options:      -Wall -threaded++  -- This section is encoded by the template and any modules added by+  -- hand outside these namespaces will not correctly be added to the+  -- distribution package.+  other-modules:+    Test.Amazonka.Gen.IdentityStore+    Test.Amazonka.IdentityStore+    Test.Amazonka.IdentityStore.Internal++  build-depends:+    , amazonka-core           >=2.0 && <2.1+    , amazonka-identitystore+    , amazonka-test           >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CreateGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateGroupMembership.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateGroupMembershipResponse.proto view
+ fixture/CreateGroupResponse.proto view
+ fixture/CreateUser.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateUserResponse.proto view
+ fixture/DeleteGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteGroupMembership.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteGroupMembershipResponse.proto view
+ fixture/DeleteGroupResponse.proto view
+ fixture/DeleteUser.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteUserResponse.proto view
+ fixture/DescribeGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeGroupMembership.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeGroupMembershipResponse.proto view
+ fixture/DescribeGroupResponse.proto view
+ fixture/DescribeUser.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeUserResponse.proto view
+ fixture/GetGroupId.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetGroupIdResponse.proto view
+ fixture/GetGroupMembershipId.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetGroupMembershipIdResponse.proto view
+ fixture/GetUserId.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetUserIdResponse.proto view
+ fixture/IsMemberInGroups.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/IsMemberInGroupsResponse.proto view
+ fixture/ListGroupMemberships.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListGroupMembershipsForMember.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListGroupMembershipsForMemberResponse.proto view
+ fixture/ListGroupMembershipsResponse.proto view
+ fixture/ListGroups.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListGroupsResponse.proto view
+ fixture/ListUsers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListUsersResponse.proto view
+ fixture/UpdateGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateGroupResponse.proto view
+ fixture/UpdateUser.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/identitystore/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  identitystore.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateUserResponse.proto view
+ gen/Amazonka/IdentityStore.hs view
@@ -0,0 +1,280 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.IdentityStore+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2020-06-15@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- The Identity Store service used by AWS IAM Identity Center (successor to+-- AWS Single Sign-On) provides a single place to retrieve all of your+-- identities (users and groups). For more information, see the+-- <https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html IAM Identity Center User Guide>.+--+-- >  <note> <p>Although AWS Single Sign-On was renamed, the <code>sso</code> and <code>identitystore</code> API namespaces will continue to retain their original name for backward compatibility purposes. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed">IAM Identity Center rename</a>.</p> </note> <p>This reference guide describes the identity store operations that you can call programatically and includes detailed information on data types and errors.</p>+module Amazonka.IdentityStore+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CreateGroup+    CreateGroup (CreateGroup'),+    newCreateGroup,+    CreateGroupResponse (CreateGroupResponse'),+    newCreateGroupResponse,++    -- ** CreateGroupMembership+    CreateGroupMembership (CreateGroupMembership'),+    newCreateGroupMembership,+    CreateGroupMembershipResponse (CreateGroupMembershipResponse'),+    newCreateGroupMembershipResponse,++    -- ** CreateUser+    CreateUser (CreateUser'),+    newCreateUser,+    CreateUserResponse (CreateUserResponse'),+    newCreateUserResponse,++    -- ** DeleteGroup+    DeleteGroup (DeleteGroup'),+    newDeleteGroup,+    DeleteGroupResponse (DeleteGroupResponse'),+    newDeleteGroupResponse,++    -- ** DeleteGroupMembership+    DeleteGroupMembership (DeleteGroupMembership'),+    newDeleteGroupMembership,+    DeleteGroupMembershipResponse (DeleteGroupMembershipResponse'),+    newDeleteGroupMembershipResponse,++    -- ** DeleteUser+    DeleteUser (DeleteUser'),+    newDeleteUser,+    DeleteUserResponse (DeleteUserResponse'),+    newDeleteUserResponse,++    -- ** DescribeGroup+    DescribeGroup (DescribeGroup'),+    newDescribeGroup,+    DescribeGroupResponse (DescribeGroupResponse'),+    newDescribeGroupResponse,++    -- ** DescribeGroupMembership+    DescribeGroupMembership (DescribeGroupMembership'),+    newDescribeGroupMembership,+    DescribeGroupMembershipResponse (DescribeGroupMembershipResponse'),+    newDescribeGroupMembershipResponse,++    -- ** DescribeUser+    DescribeUser (DescribeUser'),+    newDescribeUser,+    DescribeUserResponse (DescribeUserResponse'),+    newDescribeUserResponse,++    -- ** GetGroupId+    GetGroupId (GetGroupId'),+    newGetGroupId,+    GetGroupIdResponse (GetGroupIdResponse'),+    newGetGroupIdResponse,++    -- ** GetGroupMembershipId+    GetGroupMembershipId (GetGroupMembershipId'),+    newGetGroupMembershipId,+    GetGroupMembershipIdResponse (GetGroupMembershipIdResponse'),+    newGetGroupMembershipIdResponse,++    -- ** GetUserId+    GetUserId (GetUserId'),+    newGetUserId,+    GetUserIdResponse (GetUserIdResponse'),+    newGetUserIdResponse,++    -- ** IsMemberInGroups+    IsMemberInGroups (IsMemberInGroups'),+    newIsMemberInGroups,+    IsMemberInGroupsResponse (IsMemberInGroupsResponse'),+    newIsMemberInGroupsResponse,++    -- ** ListGroupMemberships (Paginated)+    ListGroupMemberships (ListGroupMemberships'),+    newListGroupMemberships,+    ListGroupMembershipsResponse (ListGroupMembershipsResponse'),+    newListGroupMembershipsResponse,++    -- ** ListGroupMembershipsForMember (Paginated)+    ListGroupMembershipsForMember (ListGroupMembershipsForMember'),+    newListGroupMembershipsForMember,+    ListGroupMembershipsForMemberResponse (ListGroupMembershipsForMemberResponse'),+    newListGroupMembershipsForMemberResponse,++    -- ** ListGroups (Paginated)+    ListGroups (ListGroups'),+    newListGroups,+    ListGroupsResponse (ListGroupsResponse'),+    newListGroupsResponse,++    -- ** ListUsers (Paginated)+    ListUsers (ListUsers'),+    newListUsers,+    ListUsersResponse (ListUsersResponse'),+    newListUsersResponse,++    -- ** UpdateGroup+    UpdateGroup (UpdateGroup'),+    newUpdateGroup,+    UpdateGroupResponse (UpdateGroupResponse'),+    newUpdateGroupResponse,++    -- ** UpdateUser+    UpdateUser (UpdateUser'),+    newUpdateUser,+    UpdateUserResponse (UpdateUserResponse'),+    newUpdateUserResponse,++    -- * Types++    -- ** Address+    Address (Address'),+    newAddress,++    -- ** AlternateIdentifier+    AlternateIdentifier (AlternateIdentifier'),+    newAlternateIdentifier,++    -- ** AttributeOperation+    AttributeOperation (AttributeOperation'),+    newAttributeOperation,++    -- ** AttributeValue+    AttributeValue (AttributeValue'),+    newAttributeValue,++    -- ** Email+    Email (Email'),+    newEmail,++    -- ** ExternalId+    ExternalId (ExternalId'),+    newExternalId,++    -- ** Filter+    Filter (Filter'),+    newFilter,++    -- ** Group+    Group (Group'),+    newGroup,++    -- ** GroupMembership+    GroupMembership (GroupMembership'),+    newGroupMembership,++    -- ** GroupMembershipExistenceResult+    GroupMembershipExistenceResult (GroupMembershipExistenceResult'),+    newGroupMembershipExistenceResult,++    -- ** MemberId+    MemberId (MemberId'),+    newMemberId,++    -- ** Name+    Name (Name'),+    newName,++    -- ** PhoneNumber+    PhoneNumber (PhoneNumber'),+    newPhoneNumber,++    -- ** UniqueAttribute+    UniqueAttribute (UniqueAttribute'),+    newUniqueAttribute,++    -- ** User+    User (User'),+    newUser,+  )+where++import Amazonka.IdentityStore.CreateGroup+import Amazonka.IdentityStore.CreateGroupMembership+import Amazonka.IdentityStore.CreateUser+import Amazonka.IdentityStore.DeleteGroup+import Amazonka.IdentityStore.DeleteGroupMembership+import Amazonka.IdentityStore.DeleteUser+import Amazonka.IdentityStore.DescribeGroup+import Amazonka.IdentityStore.DescribeGroupMembership+import Amazonka.IdentityStore.DescribeUser+import Amazonka.IdentityStore.GetGroupId+import Amazonka.IdentityStore.GetGroupMembershipId+import Amazonka.IdentityStore.GetUserId+import Amazonka.IdentityStore.IsMemberInGroups+import Amazonka.IdentityStore.Lens+import Amazonka.IdentityStore.ListGroupMemberships+import Amazonka.IdentityStore.ListGroupMembershipsForMember+import Amazonka.IdentityStore.ListGroups+import Amazonka.IdentityStore.ListUsers+import Amazonka.IdentityStore.Types+import Amazonka.IdentityStore.UpdateGroup+import Amazonka.IdentityStore.UpdateUser+import Amazonka.IdentityStore.Waiters++-- $errors+-- Error matchers are designed for use with the functions provided by+-- <http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.+-- This allows catching (and rethrowing) service specific errors returned+-- by 'IdentityStore'.++-- $operations+-- Some AWS operations return results that are incomplete and require subsequent+-- requests in order to obtain the entire result set. The process of sending+-- subsequent requests to continue where a previous request left off is called+-- pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to+-- 1000 objects at a time, and you must send subsequent requests with the+-- appropriate Marker in order to retrieve the next page of results.+--+-- Operations that have an 'AWSPager' instance can transparently perform subsequent+-- requests, correctly setting Markers and other request facets to iterate through+-- the entire result set of a truncated API operation. Operations which support+-- this have an additional note in the documentation.+--+-- Many operations have the ability to filter results on the server side. See the+-- individual operation parameters for details.++-- $waiters+-- Waiters poll by repeatedly sending a request until some remote success condition+-- configured by the 'Wait' specification is fulfilled. The 'Wait' specification+-- determines how many attempts should be made, in addition to delay and retry strategies.
+ gen/Amazonka/IdentityStore/CreateGroup.hs view
@@ -0,0 +1,219 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.CreateGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a group within the specified identity store.+module Amazonka.IdentityStore.CreateGroup+  ( -- * Creating a Request+    CreateGroup (..),+    newCreateGroup,++    -- * Request Lenses+    createGroup_description,+    createGroup_displayName,+    createGroup_identityStoreId,++    -- * Destructuring the Response+    CreateGroupResponse (..),+    newCreateGroupResponse,++    -- * Response Lenses+    createGroupResponse_httpStatus,+    createGroupResponse_groupId,+    createGroupResponse_identityStoreId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateGroup' smart constructor.+data CreateGroup = CreateGroup'+  { -- | A string containing the description of the group.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string containing the name of the group. This value is commonly+    -- displayed when the group is referenced.+    displayName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createGroup_description' - A string containing the description of the group.+--+-- 'displayName', 'createGroup_displayName' - A string containing the name of the group. This value is commonly+-- displayed when the group is referenced.+--+-- 'identityStoreId', 'createGroup_identityStoreId' - The globally unique identifier for the identity store.+newCreateGroup ::+  -- | 'identityStoreId'+  Prelude.Text ->+  CreateGroup+newCreateGroup pIdentityStoreId_ =+  CreateGroup'+    { description = Prelude.Nothing,+      displayName = Prelude.Nothing,+      identityStoreId = pIdentityStoreId_+    }++-- | A string containing the description of the group.+createGroup_description :: Lens.Lens' CreateGroup (Prelude.Maybe Prelude.Text)+createGroup_description = Lens.lens (\CreateGroup' {description} -> description) (\s@CreateGroup' {} a -> s {description = a} :: CreateGroup) Prelude.. Lens.mapping Data._Sensitive++-- | A string containing the name of the group. This value is commonly+-- displayed when the group is referenced.+createGroup_displayName :: Lens.Lens' CreateGroup (Prelude.Maybe Prelude.Text)+createGroup_displayName = Lens.lens (\CreateGroup' {displayName} -> displayName) (\s@CreateGroup' {} a -> s {displayName = a} :: CreateGroup) Prelude.. Lens.mapping Data._Sensitive++-- | The globally unique identifier for the identity store.+createGroup_identityStoreId :: Lens.Lens' CreateGroup Prelude.Text+createGroup_identityStoreId = Lens.lens (\CreateGroup' {identityStoreId} -> identityStoreId) (\s@CreateGroup' {} a -> s {identityStoreId = a} :: CreateGroup)++instance Core.AWSRequest CreateGroup where+  type AWSResponse CreateGroup = CreateGroupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateGroupResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "GroupId")+            Prelude.<*> (x Data..:> "IdentityStoreId")+      )++instance Prelude.Hashable CreateGroup where+  hashWithSalt _salt CreateGroup' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` displayName+      `Prelude.hashWithSalt` identityStoreId++instance Prelude.NFData CreateGroup where+  rnf CreateGroup' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf identityStoreId++instance Data.ToHeaders CreateGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.CreateGroup" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateGroup where+  toJSON CreateGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("DisplayName" Data..=) Prelude.<$> displayName,+            Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId)+          ]+      )++instance Data.ToPath CreateGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateGroupResponse' smart constructor.+data CreateGroupResponse = CreateGroupResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The identifier of the newly created group in the identity store.+    groupId :: Prelude.Text,+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'createGroupResponse_httpStatus' - The response's http status code.+--+-- 'groupId', 'createGroupResponse_groupId' - The identifier of the newly created group in the identity store.+--+-- 'identityStoreId', 'createGroupResponse_identityStoreId' - The globally unique identifier for the identity store.+newCreateGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'groupId'+  Prelude.Text ->+  -- | 'identityStoreId'+  Prelude.Text ->+  CreateGroupResponse+newCreateGroupResponse+  pHttpStatus_+  pGroupId_+  pIdentityStoreId_ =+    CreateGroupResponse'+      { httpStatus = pHttpStatus_,+        groupId = pGroupId_,+        identityStoreId = pIdentityStoreId_+      }++-- | The response's http status code.+createGroupResponse_httpStatus :: Lens.Lens' CreateGroupResponse Prelude.Int+createGroupResponse_httpStatus = Lens.lens (\CreateGroupResponse' {httpStatus} -> httpStatus) (\s@CreateGroupResponse' {} a -> s {httpStatus = a} :: CreateGroupResponse)++-- | The identifier of the newly created group in the identity store.+createGroupResponse_groupId :: Lens.Lens' CreateGroupResponse Prelude.Text+createGroupResponse_groupId = Lens.lens (\CreateGroupResponse' {groupId} -> groupId) (\s@CreateGroupResponse' {} a -> s {groupId = a} :: CreateGroupResponse)++-- | The globally unique identifier for the identity store.+createGroupResponse_identityStoreId :: Lens.Lens' CreateGroupResponse Prelude.Text+createGroupResponse_identityStoreId = Lens.lens (\CreateGroupResponse' {identityStoreId} -> identityStoreId) (\s@CreateGroupResponse' {} a -> s {identityStoreId = a} :: CreateGroupResponse)++instance Prelude.NFData CreateGroupResponse where+  rnf CreateGroupResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf groupId+      `Prelude.seq` Prelude.rnf identityStoreId
+ gen/Amazonka/IdentityStore/CreateGroupMembership.hs view
@@ -0,0 +1,238 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.CreateGroupMembership+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a relationship between a member and a group. The following+-- identifiers must be specified: @GroupId@, @IdentityStoreId@, and+-- @MemberId@.+module Amazonka.IdentityStore.CreateGroupMembership+  ( -- * Creating a Request+    CreateGroupMembership (..),+    newCreateGroupMembership,++    -- * Request Lenses+    createGroupMembership_identityStoreId,+    createGroupMembership_groupId,+    createGroupMembership_memberId,++    -- * Destructuring the Response+    CreateGroupMembershipResponse (..),+    newCreateGroupMembershipResponse,++    -- * Response Lenses+    createGroupMembershipResponse_httpStatus,+    createGroupMembershipResponse_membershipId,+    createGroupMembershipResponse_identityStoreId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateGroupMembership' smart constructor.+data CreateGroupMembership = CreateGroupMembership'+  { -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text,+    -- | The identifier for a group in the identity store.+    groupId :: Prelude.Text,+    -- | An object that contains the identifier of a group member. Setting the+    -- @UserID@ field to the specific identifier for a user indicates that the+    -- user is a member of the group.+    memberId :: MemberId+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateGroupMembership' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'createGroupMembership_identityStoreId' - The globally unique identifier for the identity store.+--+-- 'groupId', 'createGroupMembership_groupId' - The identifier for a group in the identity store.+--+-- 'memberId', 'createGroupMembership_memberId' - An object that contains the identifier of a group member. Setting the+-- @UserID@ field to the specific identifier for a user indicates that the+-- user is a member of the group.+newCreateGroupMembership ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'groupId'+  Prelude.Text ->+  -- | 'memberId'+  MemberId ->+  CreateGroupMembership+newCreateGroupMembership+  pIdentityStoreId_+  pGroupId_+  pMemberId_ =+    CreateGroupMembership'+      { identityStoreId =+          pIdentityStoreId_,+        groupId = pGroupId_,+        memberId = pMemberId_+      }++-- | The globally unique identifier for the identity store.+createGroupMembership_identityStoreId :: Lens.Lens' CreateGroupMembership Prelude.Text+createGroupMembership_identityStoreId = Lens.lens (\CreateGroupMembership' {identityStoreId} -> identityStoreId) (\s@CreateGroupMembership' {} a -> s {identityStoreId = a} :: CreateGroupMembership)++-- | The identifier for a group in the identity store.+createGroupMembership_groupId :: Lens.Lens' CreateGroupMembership Prelude.Text+createGroupMembership_groupId = Lens.lens (\CreateGroupMembership' {groupId} -> groupId) (\s@CreateGroupMembership' {} a -> s {groupId = a} :: CreateGroupMembership)++-- | An object that contains the identifier of a group member. Setting the+-- @UserID@ field to the specific identifier for a user indicates that the+-- user is a member of the group.+createGroupMembership_memberId :: Lens.Lens' CreateGroupMembership MemberId+createGroupMembership_memberId = Lens.lens (\CreateGroupMembership' {memberId} -> memberId) (\s@CreateGroupMembership' {} a -> s {memberId = a} :: CreateGroupMembership)++instance Core.AWSRequest CreateGroupMembership where+  type+    AWSResponse CreateGroupMembership =+      CreateGroupMembershipResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateGroupMembershipResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "MembershipId")+            Prelude.<*> (x Data..:> "IdentityStoreId")+      )++instance Prelude.Hashable CreateGroupMembership where+  hashWithSalt _salt CreateGroupMembership' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` groupId+      `Prelude.hashWithSalt` memberId++instance Prelude.NFData CreateGroupMembership where+  rnf CreateGroupMembership' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf groupId+      `Prelude.seq` Prelude.rnf memberId++instance Data.ToHeaders CreateGroupMembership where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.CreateGroupMembership" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateGroupMembership where+  toJSON CreateGroupMembership' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just ("GroupId" Data..= groupId),+            Prelude.Just ("MemberId" Data..= memberId)+          ]+      )++instance Data.ToPath CreateGroupMembership where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateGroupMembership where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateGroupMembershipResponse' smart constructor.+data CreateGroupMembershipResponse = CreateGroupMembershipResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The identifier for a newly created @GroupMembership@ in an identity+    -- store.+    membershipId :: Prelude.Text,+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateGroupMembershipResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'createGroupMembershipResponse_httpStatus' - The response's http status code.+--+-- 'membershipId', 'createGroupMembershipResponse_membershipId' - The identifier for a newly created @GroupMembership@ in an identity+-- store.+--+-- 'identityStoreId', 'createGroupMembershipResponse_identityStoreId' - The globally unique identifier for the identity store.+newCreateGroupMembershipResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'membershipId'+  Prelude.Text ->+  -- | 'identityStoreId'+  Prelude.Text ->+  CreateGroupMembershipResponse+newCreateGroupMembershipResponse+  pHttpStatus_+  pMembershipId_+  pIdentityStoreId_ =+    CreateGroupMembershipResponse'+      { httpStatus =+          pHttpStatus_,+        membershipId = pMembershipId_,+        identityStoreId = pIdentityStoreId_+      }++-- | The response's http status code.+createGroupMembershipResponse_httpStatus :: Lens.Lens' CreateGroupMembershipResponse Prelude.Int+createGroupMembershipResponse_httpStatus = Lens.lens (\CreateGroupMembershipResponse' {httpStatus} -> httpStatus) (\s@CreateGroupMembershipResponse' {} a -> s {httpStatus = a} :: CreateGroupMembershipResponse)++-- | The identifier for a newly created @GroupMembership@ in an identity+-- store.+createGroupMembershipResponse_membershipId :: Lens.Lens' CreateGroupMembershipResponse Prelude.Text+createGroupMembershipResponse_membershipId = Lens.lens (\CreateGroupMembershipResponse' {membershipId} -> membershipId) (\s@CreateGroupMembershipResponse' {} a -> s {membershipId = a} :: CreateGroupMembershipResponse)++-- | The globally unique identifier for the identity store.+createGroupMembershipResponse_identityStoreId :: Lens.Lens' CreateGroupMembershipResponse Prelude.Text+createGroupMembershipResponse_identityStoreId = Lens.lens (\CreateGroupMembershipResponse' {identityStoreId} -> identityStoreId) (\s@CreateGroupMembershipResponse' {} a -> s {identityStoreId = a} :: CreateGroupMembershipResponse)++instance Prelude.NFData CreateGroupMembershipResponse where+  rnf CreateGroupMembershipResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf membershipId+      `Prelude.seq` Prelude.rnf identityStoreId
+ gen/Amazonka/IdentityStore/CreateUser.hs view
@@ -0,0 +1,393 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.CreateUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new user within the specified identity store.+module Amazonka.IdentityStore.CreateUser+  ( -- * Creating a Request+    CreateUser (..),+    newCreateUser,++    -- * Request Lenses+    createUser_addresses,+    createUser_displayName,+    createUser_emails,+    createUser_locale,+    createUser_name,+    createUser_nickName,+    createUser_phoneNumbers,+    createUser_preferredLanguage,+    createUser_profileUrl,+    createUser_timezone,+    createUser_title,+    createUser_userName,+    createUser_userType,+    createUser_identityStoreId,++    -- * Destructuring the Response+    CreateUserResponse (..),+    newCreateUserResponse,++    -- * Response Lenses+    createUserResponse_httpStatus,+    createUserResponse_userId,+    createUserResponse_identityStoreId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateUser' smart constructor.+data CreateUser = CreateUser'+  { -- | A list of @Address@ objects containing addresses associated with the+    -- user.+    addresses :: Prelude.Maybe (Prelude.NonEmpty Address),+    -- | A string containing the user\'s name. This value is typically formatted+    -- for display when the user is referenced. For example, \"John Doe.\"+    displayName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A list of @Email@ objects containing email addresses associated with the+    -- user.+    emails :: Prelude.Maybe (Prelude.NonEmpty Email),+    -- | A string containing the user\'s geographical region or location.+    locale :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | An object containing the user\'s name.+    name :: Prelude.Maybe Name,+    -- | A string containing an alternate name for the user.+    nickName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A list of @PhoneNumber@ objects containing phone numbers associated with+    -- the user.+    phoneNumbers :: Prelude.Maybe (Prelude.NonEmpty PhoneNumber),+    -- | A string containing the preferred language of the user. For example,+    -- \"American English\" or \"en-us.\"+    preferredLanguage :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string containing a URL that may be associated with the user.+    profileUrl :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string containing the user\'s time zone.+    timezone :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string containing the user\'s title. Possible values are left+    -- unspecified given that they depend on each customer\'s specific needs.+    title :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A unique string used to identify the user. The length limit is 128+    -- characters. This value can consist of letters, accented characters,+    -- symbols, numbers, and punctuation. This value is specified at the time+    -- the user is created and stored as an attribute of the user object in the+    -- identity store.+    userName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string indicating the user\'s type. Possible values depend on each+    -- customer\'s specific needs, so they are left unspecified.+    userType :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addresses', 'createUser_addresses' - A list of @Address@ objects containing addresses associated with the+-- user.+--+-- 'displayName', 'createUser_displayName' - A string containing the user\'s name. This value is typically formatted+-- for display when the user is referenced. For example, \"John Doe.\"+--+-- 'emails', 'createUser_emails' - A list of @Email@ objects containing email addresses associated with the+-- user.+--+-- 'locale', 'createUser_locale' - A string containing the user\'s geographical region or location.+--+-- 'name', 'createUser_name' - An object containing the user\'s name.+--+-- 'nickName', 'createUser_nickName' - A string containing an alternate name for the user.+--+-- 'phoneNumbers', 'createUser_phoneNumbers' - A list of @PhoneNumber@ objects containing phone numbers associated with+-- the user.+--+-- 'preferredLanguage', 'createUser_preferredLanguage' - A string containing the preferred language of the user. For example,+-- \"American English\" or \"en-us.\"+--+-- 'profileUrl', 'createUser_profileUrl' - A string containing a URL that may be associated with the user.+--+-- 'timezone', 'createUser_timezone' - A string containing the user\'s time zone.+--+-- 'title', 'createUser_title' - A string containing the user\'s title. Possible values are left+-- unspecified given that they depend on each customer\'s specific needs.+--+-- 'userName', 'createUser_userName' - A unique string used to identify the user. The length limit is 128+-- characters. This value can consist of letters, accented characters,+-- symbols, numbers, and punctuation. This value is specified at the time+-- the user is created and stored as an attribute of the user object in the+-- identity store.+--+-- 'userType', 'createUser_userType' - A string indicating the user\'s type. Possible values depend on each+-- customer\'s specific needs, so they are left unspecified.+--+-- 'identityStoreId', 'createUser_identityStoreId' - The globally unique identifier for the identity store.+newCreateUser ::+  -- | 'identityStoreId'+  Prelude.Text ->+  CreateUser+newCreateUser pIdentityStoreId_ =+  CreateUser'+    { addresses = Prelude.Nothing,+      displayName = Prelude.Nothing,+      emails = Prelude.Nothing,+      locale = Prelude.Nothing,+      name = Prelude.Nothing,+      nickName = Prelude.Nothing,+      phoneNumbers = Prelude.Nothing,+      preferredLanguage = Prelude.Nothing,+      profileUrl = Prelude.Nothing,+      timezone = Prelude.Nothing,+      title = Prelude.Nothing,+      userName = Prelude.Nothing,+      userType = Prelude.Nothing,+      identityStoreId = pIdentityStoreId_+    }++-- | A list of @Address@ objects containing addresses associated with the+-- user.+createUser_addresses :: Lens.Lens' CreateUser (Prelude.Maybe (Prelude.NonEmpty Address))+createUser_addresses = Lens.lens (\CreateUser' {addresses} -> addresses) (\s@CreateUser' {} a -> s {addresses = a} :: CreateUser) Prelude.. Lens.mapping Lens.coerced++-- | A string containing the user\'s name. This value is typically formatted+-- for display when the user is referenced. For example, \"John Doe.\"+createUser_displayName :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)+createUser_displayName = Lens.lens (\CreateUser' {displayName} -> displayName) (\s@CreateUser' {} a -> s {displayName = a} :: CreateUser) Prelude.. Lens.mapping Data._Sensitive++-- | A list of @Email@ objects containing email addresses associated with the+-- user.+createUser_emails :: Lens.Lens' CreateUser (Prelude.Maybe (Prelude.NonEmpty Email))+createUser_emails = Lens.lens (\CreateUser' {emails} -> emails) (\s@CreateUser' {} a -> s {emails = a} :: CreateUser) Prelude.. Lens.mapping Lens.coerced++-- | A string containing the user\'s geographical region or location.+createUser_locale :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)+createUser_locale = Lens.lens (\CreateUser' {locale} -> locale) (\s@CreateUser' {} a -> s {locale = a} :: CreateUser) Prelude.. Lens.mapping Data._Sensitive++-- | An object containing the user\'s name.+createUser_name :: Lens.Lens' CreateUser (Prelude.Maybe Name)+createUser_name = Lens.lens (\CreateUser' {name} -> name) (\s@CreateUser' {} a -> s {name = a} :: CreateUser)++-- | A string containing an alternate name for the user.+createUser_nickName :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)+createUser_nickName = Lens.lens (\CreateUser' {nickName} -> nickName) (\s@CreateUser' {} a -> s {nickName = a} :: CreateUser) Prelude.. Lens.mapping Data._Sensitive++-- | A list of @PhoneNumber@ objects containing phone numbers associated with+-- the user.+createUser_phoneNumbers :: Lens.Lens' CreateUser (Prelude.Maybe (Prelude.NonEmpty PhoneNumber))+createUser_phoneNumbers = Lens.lens (\CreateUser' {phoneNumbers} -> phoneNumbers) (\s@CreateUser' {} a -> s {phoneNumbers = a} :: CreateUser) Prelude.. Lens.mapping Lens.coerced++-- | A string containing the preferred language of the user. For example,+-- \"American English\" or \"en-us.\"+createUser_preferredLanguage :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)+createUser_preferredLanguage = Lens.lens (\CreateUser' {preferredLanguage} -> preferredLanguage) (\s@CreateUser' {} a -> s {preferredLanguage = a} :: CreateUser) Prelude.. Lens.mapping Data._Sensitive++-- | A string containing a URL that may be associated with the user.+createUser_profileUrl :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)+createUser_profileUrl = Lens.lens (\CreateUser' {profileUrl} -> profileUrl) (\s@CreateUser' {} a -> s {profileUrl = a} :: CreateUser) Prelude.. Lens.mapping Data._Sensitive++-- | A string containing the user\'s time zone.+createUser_timezone :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)+createUser_timezone = Lens.lens (\CreateUser' {timezone} -> timezone) (\s@CreateUser' {} a -> s {timezone = a} :: CreateUser) Prelude.. Lens.mapping Data._Sensitive++-- | A string containing the user\'s title. Possible values are left+-- unspecified given that they depend on each customer\'s specific needs.+createUser_title :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)+createUser_title = Lens.lens (\CreateUser' {title} -> title) (\s@CreateUser' {} a -> s {title = a} :: CreateUser) Prelude.. Lens.mapping Data._Sensitive++-- | A unique string used to identify the user. The length limit is 128+-- characters. This value can consist of letters, accented characters,+-- symbols, numbers, and punctuation. This value is specified at the time+-- the user is created and stored as an attribute of the user object in the+-- identity store.+createUser_userName :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)+createUser_userName = Lens.lens (\CreateUser' {userName} -> userName) (\s@CreateUser' {} a -> s {userName = a} :: CreateUser) Prelude.. Lens.mapping Data._Sensitive++-- | A string indicating the user\'s type. Possible values depend on each+-- customer\'s specific needs, so they are left unspecified.+createUser_userType :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)+createUser_userType = Lens.lens (\CreateUser' {userType} -> userType) (\s@CreateUser' {} a -> s {userType = a} :: CreateUser) Prelude.. Lens.mapping Data._Sensitive++-- | The globally unique identifier for the identity store.+createUser_identityStoreId :: Lens.Lens' CreateUser Prelude.Text+createUser_identityStoreId = Lens.lens (\CreateUser' {identityStoreId} -> identityStoreId) (\s@CreateUser' {} a -> s {identityStoreId = a} :: CreateUser)++instance Core.AWSRequest CreateUser where+  type AWSResponse CreateUser = CreateUserResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateUserResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "UserId")+            Prelude.<*> (x Data..:> "IdentityStoreId")+      )++instance Prelude.Hashable CreateUser where+  hashWithSalt _salt CreateUser' {..} =+    _salt+      `Prelude.hashWithSalt` addresses+      `Prelude.hashWithSalt` displayName+      `Prelude.hashWithSalt` emails+      `Prelude.hashWithSalt` locale+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nickName+      `Prelude.hashWithSalt` phoneNumbers+      `Prelude.hashWithSalt` preferredLanguage+      `Prelude.hashWithSalt` profileUrl+      `Prelude.hashWithSalt` timezone+      `Prelude.hashWithSalt` title+      `Prelude.hashWithSalt` userName+      `Prelude.hashWithSalt` userType+      `Prelude.hashWithSalt` identityStoreId++instance Prelude.NFData CreateUser where+  rnf CreateUser' {..} =+    Prelude.rnf addresses+      `Prelude.seq` Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf emails+      `Prelude.seq` Prelude.rnf locale+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nickName+      `Prelude.seq` Prelude.rnf phoneNumbers+      `Prelude.seq` Prelude.rnf preferredLanguage+      `Prelude.seq` Prelude.rnf profileUrl+      `Prelude.seq` Prelude.rnf timezone+      `Prelude.seq` Prelude.rnf title+      `Prelude.seq` Prelude.rnf userName+      `Prelude.seq` Prelude.rnf userType+      `Prelude.seq` Prelude.rnf identityStoreId++instance Data.ToHeaders CreateUser where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.CreateUser" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateUser where+  toJSON CreateUser' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Addresses" Data..=) Prelude.<$> addresses,+            ("DisplayName" Data..=) Prelude.<$> displayName,+            ("Emails" Data..=) Prelude.<$> emails,+            ("Locale" Data..=) Prelude.<$> locale,+            ("Name" Data..=) Prelude.<$> name,+            ("NickName" Data..=) Prelude.<$> nickName,+            ("PhoneNumbers" Data..=) Prelude.<$> phoneNumbers,+            ("PreferredLanguage" Data..=)+              Prelude.<$> preferredLanguage,+            ("ProfileUrl" Data..=) Prelude.<$> profileUrl,+            ("Timezone" Data..=) Prelude.<$> timezone,+            ("Title" Data..=) Prelude.<$> title,+            ("UserName" Data..=) Prelude.<$> userName,+            ("UserType" Data..=) Prelude.<$> userType,+            Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId)+          ]+      )++instance Data.ToPath CreateUser where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateUser where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateUserResponse' smart constructor.+data CreateUserResponse = CreateUserResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The identifier of the newly created user in the identity store.+    userId :: Prelude.Text,+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateUserResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'createUserResponse_httpStatus' - The response's http status code.+--+-- 'userId', 'createUserResponse_userId' - The identifier of the newly created user in the identity store.+--+-- 'identityStoreId', 'createUserResponse_identityStoreId' - The globally unique identifier for the identity store.+newCreateUserResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'userId'+  Prelude.Text ->+  -- | 'identityStoreId'+  Prelude.Text ->+  CreateUserResponse+newCreateUserResponse+  pHttpStatus_+  pUserId_+  pIdentityStoreId_ =+    CreateUserResponse'+      { httpStatus = pHttpStatus_,+        userId = pUserId_,+        identityStoreId = pIdentityStoreId_+      }++-- | The response's http status code.+createUserResponse_httpStatus :: Lens.Lens' CreateUserResponse Prelude.Int+createUserResponse_httpStatus = Lens.lens (\CreateUserResponse' {httpStatus} -> httpStatus) (\s@CreateUserResponse' {} a -> s {httpStatus = a} :: CreateUserResponse)++-- | The identifier of the newly created user in the identity store.+createUserResponse_userId :: Lens.Lens' CreateUserResponse Prelude.Text+createUserResponse_userId = Lens.lens (\CreateUserResponse' {userId} -> userId) (\s@CreateUserResponse' {} a -> s {userId = a} :: CreateUserResponse)++-- | The globally unique identifier for the identity store.+createUserResponse_identityStoreId :: Lens.Lens' CreateUserResponse Prelude.Text+createUserResponse_identityStoreId = Lens.lens (\CreateUserResponse' {identityStoreId} -> identityStoreId) (\s@CreateUserResponse' {} a -> s {identityStoreId = a} :: CreateUserResponse)++instance Prelude.NFData CreateUserResponse where+  rnf CreateUserResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf userId+      `Prelude.seq` Prelude.rnf identityStoreId
+ gen/Amazonka/IdentityStore/DeleteGroup.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.DeleteGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Delete a group within an identity store given @GroupId@.+module Amazonka.IdentityStore.DeleteGroup+  ( -- * Creating a Request+    DeleteGroup (..),+    newDeleteGroup,++    -- * Request Lenses+    deleteGroup_identityStoreId,+    deleteGroup_groupId,++    -- * Destructuring the Response+    DeleteGroupResponse (..),+    newDeleteGroupResponse,++    -- * Response Lenses+    deleteGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteGroup' smart constructor.+data DeleteGroup = DeleteGroup'+  { -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text,+    -- | The identifier for a group in the identity store.+    groupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'deleteGroup_identityStoreId' - The globally unique identifier for the identity store.+--+-- 'groupId', 'deleteGroup_groupId' - The identifier for a group in the identity store.+newDeleteGroup ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'groupId'+  Prelude.Text ->+  DeleteGroup+newDeleteGroup pIdentityStoreId_ pGroupId_ =+  DeleteGroup'+    { identityStoreId = pIdentityStoreId_,+      groupId = pGroupId_+    }++-- | The globally unique identifier for the identity store.+deleteGroup_identityStoreId :: Lens.Lens' DeleteGroup Prelude.Text+deleteGroup_identityStoreId = Lens.lens (\DeleteGroup' {identityStoreId} -> identityStoreId) (\s@DeleteGroup' {} a -> s {identityStoreId = a} :: DeleteGroup)++-- | The identifier for a group in the identity store.+deleteGroup_groupId :: Lens.Lens' DeleteGroup Prelude.Text+deleteGroup_groupId = Lens.lens (\DeleteGroup' {groupId} -> groupId) (\s@DeleteGroup' {} a -> s {groupId = a} :: DeleteGroup)++instance Core.AWSRequest DeleteGroup where+  type AWSResponse DeleteGroup = DeleteGroupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteGroupResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteGroup where+  hashWithSalt _salt DeleteGroup' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` groupId++instance Prelude.NFData DeleteGroup where+  rnf DeleteGroup' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf groupId++instance Data.ToHeaders DeleteGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.DeleteGroup" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteGroup where+  toJSON DeleteGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just ("GroupId" Data..= groupId)+          ]+      )++instance Data.ToPath DeleteGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteGroupResponse' smart constructor.+data DeleteGroupResponse = DeleteGroupResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteGroupResponse_httpStatus' - The response's http status code.+newDeleteGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteGroupResponse+newDeleteGroupResponse pHttpStatus_ =+  DeleteGroupResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteGroupResponse_httpStatus :: Lens.Lens' DeleteGroupResponse Prelude.Int+deleteGroupResponse_httpStatus = Lens.lens (\DeleteGroupResponse' {httpStatus} -> httpStatus) (\s@DeleteGroupResponse' {} a -> s {httpStatus = a} :: DeleteGroupResponse)++instance Prelude.NFData DeleteGroupResponse where+  rnf DeleteGroupResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/IdentityStore/DeleteGroupMembership.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.DeleteGroupMembership+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Delete a membership within a group given @MembershipId@.+module Amazonka.IdentityStore.DeleteGroupMembership+  ( -- * Creating a Request+    DeleteGroupMembership (..),+    newDeleteGroupMembership,++    -- * Request Lenses+    deleteGroupMembership_identityStoreId,+    deleteGroupMembership_membershipId,++    -- * Destructuring the Response+    DeleteGroupMembershipResponse (..),+    newDeleteGroupMembershipResponse,++    -- * Response Lenses+    deleteGroupMembershipResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteGroupMembership' smart constructor.+data DeleteGroupMembership = DeleteGroupMembership'+  { -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text,+    -- | The identifier for a @GroupMembership@ in an identity store.+    membershipId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteGroupMembership' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'deleteGroupMembership_identityStoreId' - The globally unique identifier for the identity store.+--+-- 'membershipId', 'deleteGroupMembership_membershipId' - The identifier for a @GroupMembership@ in an identity store.+newDeleteGroupMembership ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'membershipId'+  Prelude.Text ->+  DeleteGroupMembership+newDeleteGroupMembership+  pIdentityStoreId_+  pMembershipId_ =+    DeleteGroupMembership'+      { identityStoreId =+          pIdentityStoreId_,+        membershipId = pMembershipId_+      }++-- | The globally unique identifier for the identity store.+deleteGroupMembership_identityStoreId :: Lens.Lens' DeleteGroupMembership Prelude.Text+deleteGroupMembership_identityStoreId = Lens.lens (\DeleteGroupMembership' {identityStoreId} -> identityStoreId) (\s@DeleteGroupMembership' {} a -> s {identityStoreId = a} :: DeleteGroupMembership)++-- | The identifier for a @GroupMembership@ in an identity store.+deleteGroupMembership_membershipId :: Lens.Lens' DeleteGroupMembership Prelude.Text+deleteGroupMembership_membershipId = Lens.lens (\DeleteGroupMembership' {membershipId} -> membershipId) (\s@DeleteGroupMembership' {} a -> s {membershipId = a} :: DeleteGroupMembership)++instance Core.AWSRequest DeleteGroupMembership where+  type+    AWSResponse DeleteGroupMembership =+      DeleteGroupMembershipResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteGroupMembershipResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteGroupMembership where+  hashWithSalt _salt DeleteGroupMembership' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` membershipId++instance Prelude.NFData DeleteGroupMembership where+  rnf DeleteGroupMembership' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf membershipId++instance Data.ToHeaders DeleteGroupMembership where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.DeleteGroupMembership" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteGroupMembership where+  toJSON DeleteGroupMembership' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just ("MembershipId" Data..= membershipId)+          ]+      )++instance Data.ToPath DeleteGroupMembership where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteGroupMembership where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteGroupMembershipResponse' smart constructor.+data DeleteGroupMembershipResponse = DeleteGroupMembershipResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteGroupMembershipResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteGroupMembershipResponse_httpStatus' - The response's http status code.+newDeleteGroupMembershipResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteGroupMembershipResponse+newDeleteGroupMembershipResponse pHttpStatus_ =+  DeleteGroupMembershipResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteGroupMembershipResponse_httpStatus :: Lens.Lens' DeleteGroupMembershipResponse Prelude.Int+deleteGroupMembershipResponse_httpStatus = Lens.lens (\DeleteGroupMembershipResponse' {httpStatus} -> httpStatus) (\s@DeleteGroupMembershipResponse' {} a -> s {httpStatus = a} :: DeleteGroupMembershipResponse)++instance Prelude.NFData DeleteGroupMembershipResponse where+  rnf DeleteGroupMembershipResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/IdentityStore/DeleteUser.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.DeleteUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a user within an identity store given @UserId@.+module Amazonka.IdentityStore.DeleteUser+  ( -- * Creating a Request+    DeleteUser (..),+    newDeleteUser,++    -- * Request Lenses+    deleteUser_identityStoreId,+    deleteUser_userId,++    -- * Destructuring the Response+    DeleteUserResponse (..),+    newDeleteUserResponse,++    -- * Response Lenses+    deleteUserResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteUser' smart constructor.+data DeleteUser = DeleteUser'+  { -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text,+    -- | The identifier for a user in the identity store.+    userId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'deleteUser_identityStoreId' - The globally unique identifier for the identity store.+--+-- 'userId', 'deleteUser_userId' - The identifier for a user in the identity store.+newDeleteUser ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'userId'+  Prelude.Text ->+  DeleteUser+newDeleteUser pIdentityStoreId_ pUserId_ =+  DeleteUser'+    { identityStoreId = pIdentityStoreId_,+      userId = pUserId_+    }++-- | The globally unique identifier for the identity store.+deleteUser_identityStoreId :: Lens.Lens' DeleteUser Prelude.Text+deleteUser_identityStoreId = Lens.lens (\DeleteUser' {identityStoreId} -> identityStoreId) (\s@DeleteUser' {} a -> s {identityStoreId = a} :: DeleteUser)++-- | The identifier for a user in the identity store.+deleteUser_userId :: Lens.Lens' DeleteUser Prelude.Text+deleteUser_userId = Lens.lens (\DeleteUser' {userId} -> userId) (\s@DeleteUser' {} a -> s {userId = a} :: DeleteUser)++instance Core.AWSRequest DeleteUser where+  type AWSResponse DeleteUser = DeleteUserResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteUserResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteUser where+  hashWithSalt _salt DeleteUser' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` userId++instance Prelude.NFData DeleteUser where+  rnf DeleteUser' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf userId++instance Data.ToHeaders DeleteUser where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.DeleteUser" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteUser where+  toJSON DeleteUser' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just ("UserId" Data..= userId)+          ]+      )++instance Data.ToPath DeleteUser where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteUser where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteUserResponse' smart constructor.+data DeleteUserResponse = DeleteUserResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteUserResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteUserResponse_httpStatus' - The response's http status code.+newDeleteUserResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteUserResponse+newDeleteUserResponse pHttpStatus_ =+  DeleteUserResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteUserResponse_httpStatus :: Lens.Lens' DeleteUserResponse Prelude.Int+deleteUserResponse_httpStatus = Lens.lens (\DeleteUserResponse' {httpStatus} -> httpStatus) (\s@DeleteUserResponse' {} a -> s {httpStatus = a} :: DeleteUserResponse)++instance Prelude.NFData DeleteUserResponse where+  rnf DeleteUserResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/IdentityStore/DescribeGroup.hs view
@@ -0,0 +1,275 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.DescribeGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the group metadata and attributes from @GroupId@ in an+-- identity store.+module Amazonka.IdentityStore.DescribeGroup+  ( -- * Creating a Request+    DescribeGroup (..),+    newDescribeGroup,++    -- * Request Lenses+    describeGroup_identityStoreId,+    describeGroup_groupId,++    -- * Destructuring the Response+    DescribeGroupResponse (..),+    newDescribeGroupResponse,++    -- * Response Lenses+    describeGroupResponse_description,+    describeGroupResponse_displayName,+    describeGroupResponse_externalIds,+    describeGroupResponse_httpStatus,+    describeGroupResponse_groupId,+    describeGroupResponse_identityStoreId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeGroup' smart constructor.+data DescribeGroup = DescribeGroup'+  { -- | The globally unique identifier for the identity store, such as+    -- @d-1234567890@. In this example, @d-@ is a fixed prefix, and+    -- @1234567890@ is a randomly generated string that contains numbers and+    -- lower case letters. This value is generated at the time that a new+    -- identity store is created.+    identityStoreId :: Prelude.Text,+    -- | The identifier for a group in the identity store.+    groupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'describeGroup_identityStoreId' - The globally unique identifier for the identity store, such as+-- @d-1234567890@. In this example, @d-@ is a fixed prefix, and+-- @1234567890@ is a randomly generated string that contains numbers and+-- lower case letters. This value is generated at the time that a new+-- identity store is created.+--+-- 'groupId', 'describeGroup_groupId' - The identifier for a group in the identity store.+newDescribeGroup ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'groupId'+  Prelude.Text ->+  DescribeGroup+newDescribeGroup pIdentityStoreId_ pGroupId_ =+  DescribeGroup'+    { identityStoreId = pIdentityStoreId_,+      groupId = pGroupId_+    }++-- | The globally unique identifier for the identity store, such as+-- @d-1234567890@. In this example, @d-@ is a fixed prefix, and+-- @1234567890@ is a randomly generated string that contains numbers and+-- lower case letters. This value is generated at the time that a new+-- identity store is created.+describeGroup_identityStoreId :: Lens.Lens' DescribeGroup Prelude.Text+describeGroup_identityStoreId = Lens.lens (\DescribeGroup' {identityStoreId} -> identityStoreId) (\s@DescribeGroup' {} a -> s {identityStoreId = a} :: DescribeGroup)++-- | The identifier for a group in the identity store.+describeGroup_groupId :: Lens.Lens' DescribeGroup Prelude.Text+describeGroup_groupId = Lens.lens (\DescribeGroup' {groupId} -> groupId) (\s@DescribeGroup' {} a -> s {groupId = a} :: DescribeGroup)++instance Core.AWSRequest DescribeGroup where+  type+    AWSResponse DescribeGroup =+      DescribeGroupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeGroupResponse'+            Prelude.<$> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "DisplayName")+            Prelude.<*> (x Data..?> "ExternalIds")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "GroupId")+            Prelude.<*> (x Data..:> "IdentityStoreId")+      )++instance Prelude.Hashable DescribeGroup where+  hashWithSalt _salt DescribeGroup' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` groupId++instance Prelude.NFData DescribeGroup where+  rnf DescribeGroup' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf groupId++instance Data.ToHeaders DescribeGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.DescribeGroup" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeGroup where+  toJSON DescribeGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just ("GroupId" Data..= groupId)+          ]+      )++instance Data.ToPath DescribeGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeGroupResponse' smart constructor.+data DescribeGroupResponse = DescribeGroupResponse'+  { -- | A string containing a description of the group.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The group’s display name value. The length limit is 1,024 characters.+    -- This value can consist of letters, accented characters, symbols,+    -- numbers, punctuation, tab, new line, carriage return, space, and+    -- nonbreaking space in this attribute. This value is specified at the time+    -- that the group is created and stored as an attribute of the group object+    -- in the identity store.+    displayName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A list of @ExternalId@ objects that contains the identifiers issued to+    -- this resource by an external identity provider.+    externalIds :: Prelude.Maybe (Prelude.NonEmpty ExternalId),+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The identifier for a group in the identity store.+    groupId :: Prelude.Text,+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'describeGroupResponse_description' - A string containing a description of the group.+--+-- 'displayName', 'describeGroupResponse_displayName' - The group’s display name value. The length limit is 1,024 characters.+-- This value can consist of letters, accented characters, symbols,+-- numbers, punctuation, tab, new line, carriage return, space, and+-- nonbreaking space in this attribute. This value is specified at the time+-- that the group is created and stored as an attribute of the group object+-- in the identity store.+--+-- 'externalIds', 'describeGroupResponse_externalIds' - A list of @ExternalId@ objects that contains the identifiers issued to+-- this resource by an external identity provider.+--+-- 'httpStatus', 'describeGroupResponse_httpStatus' - The response's http status code.+--+-- 'groupId', 'describeGroupResponse_groupId' - The identifier for a group in the identity store.+--+-- 'identityStoreId', 'describeGroupResponse_identityStoreId' - The globally unique identifier for the identity store.+newDescribeGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'groupId'+  Prelude.Text ->+  -- | 'identityStoreId'+  Prelude.Text ->+  DescribeGroupResponse+newDescribeGroupResponse+  pHttpStatus_+  pGroupId_+  pIdentityStoreId_ =+    DescribeGroupResponse'+      { description =+          Prelude.Nothing,+        displayName = Prelude.Nothing,+        externalIds = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        groupId = pGroupId_,+        identityStoreId = pIdentityStoreId_+      }++-- | A string containing a description of the group.+describeGroupResponse_description :: Lens.Lens' DescribeGroupResponse (Prelude.Maybe Prelude.Text)+describeGroupResponse_description = Lens.lens (\DescribeGroupResponse' {description} -> description) (\s@DescribeGroupResponse' {} a -> s {description = a} :: DescribeGroupResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The group’s display name value. The length limit is 1,024 characters.+-- This value can consist of letters, accented characters, symbols,+-- numbers, punctuation, tab, new line, carriage return, space, and+-- nonbreaking space in this attribute. This value is specified at the time+-- that the group is created and stored as an attribute of the group object+-- in the identity store.+describeGroupResponse_displayName :: Lens.Lens' DescribeGroupResponse (Prelude.Maybe Prelude.Text)+describeGroupResponse_displayName = Lens.lens (\DescribeGroupResponse' {displayName} -> displayName) (\s@DescribeGroupResponse' {} a -> s {displayName = a} :: DescribeGroupResponse) Prelude.. Lens.mapping Data._Sensitive++-- | A list of @ExternalId@ objects that contains the identifiers issued to+-- this resource by an external identity provider.+describeGroupResponse_externalIds :: Lens.Lens' DescribeGroupResponse (Prelude.Maybe (Prelude.NonEmpty ExternalId))+describeGroupResponse_externalIds = Lens.lens (\DescribeGroupResponse' {externalIds} -> externalIds) (\s@DescribeGroupResponse' {} a -> s {externalIds = a} :: DescribeGroupResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeGroupResponse_httpStatus :: Lens.Lens' DescribeGroupResponse Prelude.Int+describeGroupResponse_httpStatus = Lens.lens (\DescribeGroupResponse' {httpStatus} -> httpStatus) (\s@DescribeGroupResponse' {} a -> s {httpStatus = a} :: DescribeGroupResponse)++-- | The identifier for a group in the identity store.+describeGroupResponse_groupId :: Lens.Lens' DescribeGroupResponse Prelude.Text+describeGroupResponse_groupId = Lens.lens (\DescribeGroupResponse' {groupId} -> groupId) (\s@DescribeGroupResponse' {} a -> s {groupId = a} :: DescribeGroupResponse)++-- | The globally unique identifier for the identity store.+describeGroupResponse_identityStoreId :: Lens.Lens' DescribeGroupResponse Prelude.Text+describeGroupResponse_identityStoreId = Lens.lens (\DescribeGroupResponse' {identityStoreId} -> identityStoreId) (\s@DescribeGroupResponse' {} a -> s {identityStoreId = a} :: DescribeGroupResponse)++instance Prelude.NFData DescribeGroupResponse where+  rnf DescribeGroupResponse' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf externalIds+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf groupId+      `Prelude.seq` Prelude.rnf identityStoreId
+ gen/Amazonka/IdentityStore/DescribeGroupMembership.hs view
@@ -0,0 +1,244 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.DescribeGroupMembership+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves membership metadata and attributes from @MembershipId@ in an+-- identity store.+module Amazonka.IdentityStore.DescribeGroupMembership+  ( -- * Creating a Request+    DescribeGroupMembership (..),+    newDescribeGroupMembership,++    -- * Request Lenses+    describeGroupMembership_identityStoreId,+    describeGroupMembership_membershipId,++    -- * Destructuring the Response+    DescribeGroupMembershipResponse (..),+    newDescribeGroupMembershipResponse,++    -- * Response Lenses+    describeGroupMembershipResponse_httpStatus,+    describeGroupMembershipResponse_identityStoreId,+    describeGroupMembershipResponse_membershipId,+    describeGroupMembershipResponse_groupId,+    describeGroupMembershipResponse_memberId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeGroupMembership' smart constructor.+data DescribeGroupMembership = DescribeGroupMembership'+  { -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text,+    -- | The identifier for a @GroupMembership@ in an identity store.+    membershipId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeGroupMembership' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'describeGroupMembership_identityStoreId' - The globally unique identifier for the identity store.+--+-- 'membershipId', 'describeGroupMembership_membershipId' - The identifier for a @GroupMembership@ in an identity store.+newDescribeGroupMembership ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'membershipId'+  Prelude.Text ->+  DescribeGroupMembership+newDescribeGroupMembership+  pIdentityStoreId_+  pMembershipId_ =+    DescribeGroupMembership'+      { identityStoreId =+          pIdentityStoreId_,+        membershipId = pMembershipId_+      }++-- | The globally unique identifier for the identity store.+describeGroupMembership_identityStoreId :: Lens.Lens' DescribeGroupMembership Prelude.Text+describeGroupMembership_identityStoreId = Lens.lens (\DescribeGroupMembership' {identityStoreId} -> identityStoreId) (\s@DescribeGroupMembership' {} a -> s {identityStoreId = a} :: DescribeGroupMembership)++-- | The identifier for a @GroupMembership@ in an identity store.+describeGroupMembership_membershipId :: Lens.Lens' DescribeGroupMembership Prelude.Text+describeGroupMembership_membershipId = Lens.lens (\DescribeGroupMembership' {membershipId} -> membershipId) (\s@DescribeGroupMembership' {} a -> s {membershipId = a} :: DescribeGroupMembership)++instance Core.AWSRequest DescribeGroupMembership where+  type+    AWSResponse DescribeGroupMembership =+      DescribeGroupMembershipResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeGroupMembershipResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "IdentityStoreId")+            Prelude.<*> (x Data..:> "MembershipId")+            Prelude.<*> (x Data..:> "GroupId")+            Prelude.<*> (x Data..:> "MemberId")+      )++instance Prelude.Hashable DescribeGroupMembership where+  hashWithSalt _salt DescribeGroupMembership' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` membershipId++instance Prelude.NFData DescribeGroupMembership where+  rnf DescribeGroupMembership' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf membershipId++instance Data.ToHeaders DescribeGroupMembership where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.DescribeGroupMembership" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeGroupMembership where+  toJSON DescribeGroupMembership' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just ("MembershipId" Data..= membershipId)+          ]+      )++instance Data.ToPath DescribeGroupMembership where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeGroupMembership where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeGroupMembershipResponse' smart constructor.+data DescribeGroupMembershipResponse = DescribeGroupMembershipResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text,+    -- | The identifier for a @GroupMembership@ in an identity store.+    membershipId :: Prelude.Text,+    -- | The identifier for a group in the identity store.+    groupId :: Prelude.Text,+    memberId :: MemberId+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeGroupMembershipResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'describeGroupMembershipResponse_httpStatus' - The response's http status code.+--+-- 'identityStoreId', 'describeGroupMembershipResponse_identityStoreId' - The globally unique identifier for the identity store.+--+-- 'membershipId', 'describeGroupMembershipResponse_membershipId' - The identifier for a @GroupMembership@ in an identity store.+--+-- 'groupId', 'describeGroupMembershipResponse_groupId' - The identifier for a group in the identity store.+--+-- 'memberId', 'describeGroupMembershipResponse_memberId' - Undocumented member.+newDescribeGroupMembershipResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'membershipId'+  Prelude.Text ->+  -- | 'groupId'+  Prelude.Text ->+  -- | 'memberId'+  MemberId ->+  DescribeGroupMembershipResponse+newDescribeGroupMembershipResponse+  pHttpStatus_+  pIdentityStoreId_+  pMembershipId_+  pGroupId_+  pMemberId_ =+    DescribeGroupMembershipResponse'+      { httpStatus =+          pHttpStatus_,+        identityStoreId = pIdentityStoreId_,+        membershipId = pMembershipId_,+        groupId = pGroupId_,+        memberId = pMemberId_+      }++-- | The response's http status code.+describeGroupMembershipResponse_httpStatus :: Lens.Lens' DescribeGroupMembershipResponse Prelude.Int+describeGroupMembershipResponse_httpStatus = Lens.lens (\DescribeGroupMembershipResponse' {httpStatus} -> httpStatus) (\s@DescribeGroupMembershipResponse' {} a -> s {httpStatus = a} :: DescribeGroupMembershipResponse)++-- | The globally unique identifier for the identity store.+describeGroupMembershipResponse_identityStoreId :: Lens.Lens' DescribeGroupMembershipResponse Prelude.Text+describeGroupMembershipResponse_identityStoreId = Lens.lens (\DescribeGroupMembershipResponse' {identityStoreId} -> identityStoreId) (\s@DescribeGroupMembershipResponse' {} a -> s {identityStoreId = a} :: DescribeGroupMembershipResponse)++-- | The identifier for a @GroupMembership@ in an identity store.+describeGroupMembershipResponse_membershipId :: Lens.Lens' DescribeGroupMembershipResponse Prelude.Text+describeGroupMembershipResponse_membershipId = Lens.lens (\DescribeGroupMembershipResponse' {membershipId} -> membershipId) (\s@DescribeGroupMembershipResponse' {} a -> s {membershipId = a} :: DescribeGroupMembershipResponse)++-- | The identifier for a group in the identity store.+describeGroupMembershipResponse_groupId :: Lens.Lens' DescribeGroupMembershipResponse Prelude.Text+describeGroupMembershipResponse_groupId = Lens.lens (\DescribeGroupMembershipResponse' {groupId} -> groupId) (\s@DescribeGroupMembershipResponse' {} a -> s {groupId = a} :: DescribeGroupMembershipResponse)++-- | Undocumented member.+describeGroupMembershipResponse_memberId :: Lens.Lens' DescribeGroupMembershipResponse MemberId+describeGroupMembershipResponse_memberId = Lens.lens (\DescribeGroupMembershipResponse' {memberId} -> memberId) (\s@DescribeGroupMembershipResponse' {} a -> s {memberId = a} :: DescribeGroupMembershipResponse)++instance+  Prelude.NFData+    DescribeGroupMembershipResponse+  where+  rnf DescribeGroupMembershipResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf membershipId+      `Prelude.seq` Prelude.rnf groupId+      `Prelude.seq` Prelude.rnf memberId
+ gen/Amazonka/IdentityStore/DescribeUser.hs view
@@ -0,0 +1,401 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.DescribeUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the user metadata and attributes from the @UserId@ in an+-- identity store.+module Amazonka.IdentityStore.DescribeUser+  ( -- * Creating a Request+    DescribeUser (..),+    newDescribeUser,++    -- * Request Lenses+    describeUser_identityStoreId,+    describeUser_userId,++    -- * Destructuring the Response+    DescribeUserResponse (..),+    newDescribeUserResponse,++    -- * Response Lenses+    describeUserResponse_addresses,+    describeUserResponse_displayName,+    describeUserResponse_emails,+    describeUserResponse_externalIds,+    describeUserResponse_locale,+    describeUserResponse_name,+    describeUserResponse_nickName,+    describeUserResponse_phoneNumbers,+    describeUserResponse_preferredLanguage,+    describeUserResponse_profileUrl,+    describeUserResponse_timezone,+    describeUserResponse_title,+    describeUserResponse_userName,+    describeUserResponse_userType,+    describeUserResponse_httpStatus,+    describeUserResponse_userId,+    describeUserResponse_identityStoreId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeUser' smart constructor.+data DescribeUser = DescribeUser'+  { -- | The globally unique identifier for the identity store, such as+    -- @d-1234567890@. In this example, @d-@ is a fixed prefix, and+    -- @1234567890@ is a randomly generated string that contains numbers and+    -- lower case letters. This value is generated at the time that a new+    -- identity store is created.+    identityStoreId :: Prelude.Text,+    -- | The identifier for a user in the identity store.+    userId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'describeUser_identityStoreId' - The globally unique identifier for the identity store, such as+-- @d-1234567890@. In this example, @d-@ is a fixed prefix, and+-- @1234567890@ is a randomly generated string that contains numbers and+-- lower case letters. This value is generated at the time that a new+-- identity store is created.+--+-- 'userId', 'describeUser_userId' - The identifier for a user in the identity store.+newDescribeUser ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'userId'+  Prelude.Text ->+  DescribeUser+newDescribeUser pIdentityStoreId_ pUserId_ =+  DescribeUser'+    { identityStoreId = pIdentityStoreId_,+      userId = pUserId_+    }++-- | The globally unique identifier for the identity store, such as+-- @d-1234567890@. In this example, @d-@ is a fixed prefix, and+-- @1234567890@ is a randomly generated string that contains numbers and+-- lower case letters. This value is generated at the time that a new+-- identity store is created.+describeUser_identityStoreId :: Lens.Lens' DescribeUser Prelude.Text+describeUser_identityStoreId = Lens.lens (\DescribeUser' {identityStoreId} -> identityStoreId) (\s@DescribeUser' {} a -> s {identityStoreId = a} :: DescribeUser)++-- | The identifier for a user in the identity store.+describeUser_userId :: Lens.Lens' DescribeUser Prelude.Text+describeUser_userId = Lens.lens (\DescribeUser' {userId} -> userId) (\s@DescribeUser' {} a -> s {userId = a} :: DescribeUser)++instance Core.AWSRequest DescribeUser where+  type AWSResponse DescribeUser = DescribeUserResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeUserResponse'+            Prelude.<$> (x Data..?> "Addresses")+            Prelude.<*> (x Data..?> "DisplayName")+            Prelude.<*> (x Data..?> "Emails")+            Prelude.<*> (x Data..?> "ExternalIds")+            Prelude.<*> (x Data..?> "Locale")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "NickName")+            Prelude.<*> (x Data..?> "PhoneNumbers")+            Prelude.<*> (x Data..?> "PreferredLanguage")+            Prelude.<*> (x Data..?> "ProfileUrl")+            Prelude.<*> (x Data..?> "Timezone")+            Prelude.<*> (x Data..?> "Title")+            Prelude.<*> (x Data..?> "UserName")+            Prelude.<*> (x Data..?> "UserType")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "UserId")+            Prelude.<*> (x Data..:> "IdentityStoreId")+      )++instance Prelude.Hashable DescribeUser where+  hashWithSalt _salt DescribeUser' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` userId++instance Prelude.NFData DescribeUser where+  rnf DescribeUser' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf userId++instance Data.ToHeaders DescribeUser where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.DescribeUser" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeUser where+  toJSON DescribeUser' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just ("UserId" Data..= userId)+          ]+      )++instance Data.ToPath DescribeUser where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeUser where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeUserResponse' smart constructor.+data DescribeUserResponse = DescribeUserResponse'+  { -- | The user\'s physical address.+    addresses :: Prelude.Maybe (Prelude.NonEmpty Address),+    -- | The user\'s name value for display.+    displayName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The user\'s email value.+    emails :: Prelude.Maybe (Prelude.NonEmpty Email),+    -- | A list of @ExternalId@ objects that contains the identifiers issued to+    -- this resource by an external identity provider.+    externalIds :: Prelude.Maybe (Prelude.NonEmpty ExternalId),+    -- | A string containing the user\'s geographical region or location.+    locale :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The name of the user.+    name :: Prelude.Maybe Name,+    -- | An alternative descriptive name for the user.+    nickName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A list of @PhoneNumber@ objects associated with a user.+    phoneNumbers :: Prelude.Maybe (Prelude.NonEmpty PhoneNumber),+    -- | The preferred language of the user.+    preferredLanguage :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A URL link for the user\'s profile.+    profileUrl :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The time zone for a user.+    timezone :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string containing the user\'s title.+    title :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A unique string used to identify the user. The length limit is 128+    -- characters. This value can consist of letters, accented characters,+    -- symbols, numbers, and punctuation. This value is specified at the time+    -- the user is created and stored as an attribute of the user object in the+    -- identity store.+    userName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string indicating the user\'s type.+    userType :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The identifier for a user in the identity store.+    userId :: Prelude.Text,+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeUserResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addresses', 'describeUserResponse_addresses' - The user\'s physical address.+--+-- 'displayName', 'describeUserResponse_displayName' - The user\'s name value for display.+--+-- 'emails', 'describeUserResponse_emails' - The user\'s email value.+--+-- 'externalIds', 'describeUserResponse_externalIds' - A list of @ExternalId@ objects that contains the identifiers issued to+-- this resource by an external identity provider.+--+-- 'locale', 'describeUserResponse_locale' - A string containing the user\'s geographical region or location.+--+-- 'name', 'describeUserResponse_name' - The name of the user.+--+-- 'nickName', 'describeUserResponse_nickName' - An alternative descriptive name for the user.+--+-- 'phoneNumbers', 'describeUserResponse_phoneNumbers' - A list of @PhoneNumber@ objects associated with a user.+--+-- 'preferredLanguage', 'describeUserResponse_preferredLanguage' - The preferred language of the user.+--+-- 'profileUrl', 'describeUserResponse_profileUrl' - A URL link for the user\'s profile.+--+-- 'timezone', 'describeUserResponse_timezone' - The time zone for a user.+--+-- 'title', 'describeUserResponse_title' - A string containing the user\'s title.+--+-- 'userName', 'describeUserResponse_userName' - A unique string used to identify the user. The length limit is 128+-- characters. This value can consist of letters, accented characters,+-- symbols, numbers, and punctuation. This value is specified at the time+-- the user is created and stored as an attribute of the user object in the+-- identity store.+--+-- 'userType', 'describeUserResponse_userType' - A string indicating the user\'s type.+--+-- 'httpStatus', 'describeUserResponse_httpStatus' - The response's http status code.+--+-- 'userId', 'describeUserResponse_userId' - The identifier for a user in the identity store.+--+-- 'identityStoreId', 'describeUserResponse_identityStoreId' - The globally unique identifier for the identity store.+newDescribeUserResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'userId'+  Prelude.Text ->+  -- | 'identityStoreId'+  Prelude.Text ->+  DescribeUserResponse+newDescribeUserResponse+  pHttpStatus_+  pUserId_+  pIdentityStoreId_ =+    DescribeUserResponse'+      { addresses = Prelude.Nothing,+        displayName = Prelude.Nothing,+        emails = Prelude.Nothing,+        externalIds = Prelude.Nothing,+        locale = Prelude.Nothing,+        name = Prelude.Nothing,+        nickName = Prelude.Nothing,+        phoneNumbers = Prelude.Nothing,+        preferredLanguage = Prelude.Nothing,+        profileUrl = Prelude.Nothing,+        timezone = Prelude.Nothing,+        title = Prelude.Nothing,+        userName = Prelude.Nothing,+        userType = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        userId = pUserId_,+        identityStoreId = pIdentityStoreId_+      }++-- | The user\'s physical address.+describeUserResponse_addresses :: Lens.Lens' DescribeUserResponse (Prelude.Maybe (Prelude.NonEmpty Address))+describeUserResponse_addresses = Lens.lens (\DescribeUserResponse' {addresses} -> addresses) (\s@DescribeUserResponse' {} a -> s {addresses = a} :: DescribeUserResponse) Prelude.. Lens.mapping Lens.coerced++-- | The user\'s name value for display.+describeUserResponse_displayName :: Lens.Lens' DescribeUserResponse (Prelude.Maybe Prelude.Text)+describeUserResponse_displayName = Lens.lens (\DescribeUserResponse' {displayName} -> displayName) (\s@DescribeUserResponse' {} a -> s {displayName = a} :: DescribeUserResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The user\'s email value.+describeUserResponse_emails :: Lens.Lens' DescribeUserResponse (Prelude.Maybe (Prelude.NonEmpty Email))+describeUserResponse_emails = Lens.lens (\DescribeUserResponse' {emails} -> emails) (\s@DescribeUserResponse' {} a -> s {emails = a} :: DescribeUserResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of @ExternalId@ objects that contains the identifiers issued to+-- this resource by an external identity provider.+describeUserResponse_externalIds :: Lens.Lens' DescribeUserResponse (Prelude.Maybe (Prelude.NonEmpty ExternalId))+describeUserResponse_externalIds = Lens.lens (\DescribeUserResponse' {externalIds} -> externalIds) (\s@DescribeUserResponse' {} a -> s {externalIds = a} :: DescribeUserResponse) Prelude.. Lens.mapping Lens.coerced++-- | A string containing the user\'s geographical region or location.+describeUserResponse_locale :: Lens.Lens' DescribeUserResponse (Prelude.Maybe Prelude.Text)+describeUserResponse_locale = Lens.lens (\DescribeUserResponse' {locale} -> locale) (\s@DescribeUserResponse' {} a -> s {locale = a} :: DescribeUserResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The name of the user.+describeUserResponse_name :: Lens.Lens' DescribeUserResponse (Prelude.Maybe Name)+describeUserResponse_name = Lens.lens (\DescribeUserResponse' {name} -> name) (\s@DescribeUserResponse' {} a -> s {name = a} :: DescribeUserResponse)++-- | An alternative descriptive name for the user.+describeUserResponse_nickName :: Lens.Lens' DescribeUserResponse (Prelude.Maybe Prelude.Text)+describeUserResponse_nickName = Lens.lens (\DescribeUserResponse' {nickName} -> nickName) (\s@DescribeUserResponse' {} a -> s {nickName = a} :: DescribeUserResponse) Prelude.. Lens.mapping Data._Sensitive++-- | A list of @PhoneNumber@ objects associated with a user.+describeUserResponse_phoneNumbers :: Lens.Lens' DescribeUserResponse (Prelude.Maybe (Prelude.NonEmpty PhoneNumber))+describeUserResponse_phoneNumbers = Lens.lens (\DescribeUserResponse' {phoneNumbers} -> phoneNumbers) (\s@DescribeUserResponse' {} a -> s {phoneNumbers = a} :: DescribeUserResponse) Prelude.. Lens.mapping Lens.coerced++-- | The preferred language of the user.+describeUserResponse_preferredLanguage :: Lens.Lens' DescribeUserResponse (Prelude.Maybe Prelude.Text)+describeUserResponse_preferredLanguage = Lens.lens (\DescribeUserResponse' {preferredLanguage} -> preferredLanguage) (\s@DescribeUserResponse' {} a -> s {preferredLanguage = a} :: DescribeUserResponse) Prelude.. Lens.mapping Data._Sensitive++-- | A URL link for the user\'s profile.+describeUserResponse_profileUrl :: Lens.Lens' DescribeUserResponse (Prelude.Maybe Prelude.Text)+describeUserResponse_profileUrl = Lens.lens (\DescribeUserResponse' {profileUrl} -> profileUrl) (\s@DescribeUserResponse' {} a -> s {profileUrl = a} :: DescribeUserResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The time zone for a user.+describeUserResponse_timezone :: Lens.Lens' DescribeUserResponse (Prelude.Maybe Prelude.Text)+describeUserResponse_timezone = Lens.lens (\DescribeUserResponse' {timezone} -> timezone) (\s@DescribeUserResponse' {} a -> s {timezone = a} :: DescribeUserResponse) Prelude.. Lens.mapping Data._Sensitive++-- | A string containing the user\'s title.+describeUserResponse_title :: Lens.Lens' DescribeUserResponse (Prelude.Maybe Prelude.Text)+describeUserResponse_title = Lens.lens (\DescribeUserResponse' {title} -> title) (\s@DescribeUserResponse' {} a -> s {title = a} :: DescribeUserResponse) Prelude.. Lens.mapping Data._Sensitive++-- | A unique string used to identify the user. The length limit is 128+-- characters. This value can consist of letters, accented characters,+-- symbols, numbers, and punctuation. This value is specified at the time+-- the user is created and stored as an attribute of the user object in the+-- identity store.+describeUserResponse_userName :: Lens.Lens' DescribeUserResponse (Prelude.Maybe Prelude.Text)+describeUserResponse_userName = Lens.lens (\DescribeUserResponse' {userName} -> userName) (\s@DescribeUserResponse' {} a -> s {userName = a} :: DescribeUserResponse) Prelude.. Lens.mapping Data._Sensitive++-- | A string indicating the user\'s type.+describeUserResponse_userType :: Lens.Lens' DescribeUserResponse (Prelude.Maybe Prelude.Text)+describeUserResponse_userType = Lens.lens (\DescribeUserResponse' {userType} -> userType) (\s@DescribeUserResponse' {} a -> s {userType = a} :: DescribeUserResponse) Prelude.. Lens.mapping Data._Sensitive++-- | The response's http status code.+describeUserResponse_httpStatus :: Lens.Lens' DescribeUserResponse Prelude.Int+describeUserResponse_httpStatus = Lens.lens (\DescribeUserResponse' {httpStatus} -> httpStatus) (\s@DescribeUserResponse' {} a -> s {httpStatus = a} :: DescribeUserResponse)++-- | The identifier for a user in the identity store.+describeUserResponse_userId :: Lens.Lens' DescribeUserResponse Prelude.Text+describeUserResponse_userId = Lens.lens (\DescribeUserResponse' {userId} -> userId) (\s@DescribeUserResponse' {} a -> s {userId = a} :: DescribeUserResponse)++-- | The globally unique identifier for the identity store.+describeUserResponse_identityStoreId :: Lens.Lens' DescribeUserResponse Prelude.Text+describeUserResponse_identityStoreId = Lens.lens (\DescribeUserResponse' {identityStoreId} -> identityStoreId) (\s@DescribeUserResponse' {} a -> s {identityStoreId = a} :: DescribeUserResponse)++instance Prelude.NFData DescribeUserResponse where+  rnf DescribeUserResponse' {..} =+    Prelude.rnf addresses+      `Prelude.seq` Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf emails+      `Prelude.seq` Prelude.rnf externalIds+      `Prelude.seq` Prelude.rnf locale+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nickName+      `Prelude.seq` Prelude.rnf phoneNumbers+      `Prelude.seq` Prelude.rnf preferredLanguage+      `Prelude.seq` Prelude.rnf profileUrl+      `Prelude.seq` Prelude.rnf timezone+      `Prelude.seq` Prelude.rnf title+      `Prelude.seq` Prelude.rnf userName+      `Prelude.seq` Prelude.rnf userType+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf userId+      `Prelude.seq` Prelude.rnf identityStoreId
+ gen/Amazonka/IdentityStore/GetGroupId.hs view
@@ -0,0 +1,215 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.GetGroupId+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves @GroupId@ in an identity store.+module Amazonka.IdentityStore.GetGroupId+  ( -- * Creating a Request+    GetGroupId (..),+    newGetGroupId,++    -- * Request Lenses+    getGroupId_identityStoreId,+    getGroupId_alternateIdentifier,++    -- * Destructuring the Response+    GetGroupIdResponse (..),+    newGetGroupIdResponse,++    -- * Response Lenses+    getGroupIdResponse_httpStatus,+    getGroupIdResponse_groupId,+    getGroupIdResponse_identityStoreId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetGroupId' smart constructor.+data GetGroupId = GetGroupId'+  { -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text,+    -- | A unique identifier for a user or group that is not the primary+    -- identifier. This value can be an identifier from an external identity+    -- provider (IdP) that is associated with the user, the group, or a unique+    -- attribute. For example, a unique @GroupDisplayName@.+    alternateIdentifier :: AlternateIdentifier+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetGroupId' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'getGroupId_identityStoreId' - The globally unique identifier for the identity store.+--+-- 'alternateIdentifier', 'getGroupId_alternateIdentifier' - A unique identifier for a user or group that is not the primary+-- identifier. This value can be an identifier from an external identity+-- provider (IdP) that is associated with the user, the group, or a unique+-- attribute. For example, a unique @GroupDisplayName@.+newGetGroupId ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'alternateIdentifier'+  AlternateIdentifier ->+  GetGroupId+newGetGroupId pIdentityStoreId_ pAlternateIdentifier_ =+  GetGroupId'+    { identityStoreId = pIdentityStoreId_,+      alternateIdentifier = pAlternateIdentifier_+    }++-- | The globally unique identifier for the identity store.+getGroupId_identityStoreId :: Lens.Lens' GetGroupId Prelude.Text+getGroupId_identityStoreId = Lens.lens (\GetGroupId' {identityStoreId} -> identityStoreId) (\s@GetGroupId' {} a -> s {identityStoreId = a} :: GetGroupId)++-- | A unique identifier for a user or group that is not the primary+-- identifier. This value can be an identifier from an external identity+-- provider (IdP) that is associated with the user, the group, or a unique+-- attribute. For example, a unique @GroupDisplayName@.+getGroupId_alternateIdentifier :: Lens.Lens' GetGroupId AlternateIdentifier+getGroupId_alternateIdentifier = Lens.lens (\GetGroupId' {alternateIdentifier} -> alternateIdentifier) (\s@GetGroupId' {} a -> s {alternateIdentifier = a} :: GetGroupId)++instance Core.AWSRequest GetGroupId where+  type AWSResponse GetGroupId = GetGroupIdResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetGroupIdResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "GroupId")+            Prelude.<*> (x Data..:> "IdentityStoreId")+      )++instance Prelude.Hashable GetGroupId where+  hashWithSalt _salt GetGroupId' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` alternateIdentifier++instance Prelude.NFData GetGroupId where+  rnf GetGroupId' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf alternateIdentifier++instance Data.ToHeaders GetGroupId where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.GetGroupId" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetGroupId where+  toJSON GetGroupId' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just+              ("AlternateIdentifier" Data..= alternateIdentifier)+          ]+      )++instance Data.ToPath GetGroupId where+  toPath = Prelude.const "/"++instance Data.ToQuery GetGroupId where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetGroupIdResponse' smart constructor.+data GetGroupIdResponse = GetGroupIdResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The identifier for a group in the identity store.+    groupId :: Prelude.Text,+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetGroupIdResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'getGroupIdResponse_httpStatus' - The response's http status code.+--+-- 'groupId', 'getGroupIdResponse_groupId' - The identifier for a group in the identity store.+--+-- 'identityStoreId', 'getGroupIdResponse_identityStoreId' - The globally unique identifier for the identity store.+newGetGroupIdResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'groupId'+  Prelude.Text ->+  -- | 'identityStoreId'+  Prelude.Text ->+  GetGroupIdResponse+newGetGroupIdResponse+  pHttpStatus_+  pGroupId_+  pIdentityStoreId_ =+    GetGroupIdResponse'+      { httpStatus = pHttpStatus_,+        groupId = pGroupId_,+        identityStoreId = pIdentityStoreId_+      }++-- | The response's http status code.+getGroupIdResponse_httpStatus :: Lens.Lens' GetGroupIdResponse Prelude.Int+getGroupIdResponse_httpStatus = Lens.lens (\GetGroupIdResponse' {httpStatus} -> httpStatus) (\s@GetGroupIdResponse' {} a -> s {httpStatus = a} :: GetGroupIdResponse)++-- | The identifier for a group in the identity store.+getGroupIdResponse_groupId :: Lens.Lens' GetGroupIdResponse Prelude.Text+getGroupIdResponse_groupId = Lens.lens (\GetGroupIdResponse' {groupId} -> groupId) (\s@GetGroupIdResponse' {} a -> s {groupId = a} :: GetGroupIdResponse)++-- | The globally unique identifier for the identity store.+getGroupIdResponse_identityStoreId :: Lens.Lens' GetGroupIdResponse Prelude.Text+getGroupIdResponse_identityStoreId = Lens.lens (\GetGroupIdResponse' {identityStoreId} -> identityStoreId) (\s@GetGroupIdResponse' {} a -> s {identityStoreId = a} :: GetGroupIdResponse)++instance Prelude.NFData GetGroupIdResponse where+  rnf GetGroupIdResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf groupId+      `Prelude.seq` Prelude.rnf identityStoreId
+ gen/Amazonka/IdentityStore/GetGroupMembershipId.hs view
@@ -0,0 +1,233 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.GetGroupMembershipId+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the @MembershipId@ in an identity store.+module Amazonka.IdentityStore.GetGroupMembershipId+  ( -- * Creating a Request+    GetGroupMembershipId (..),+    newGetGroupMembershipId,++    -- * Request Lenses+    getGroupMembershipId_identityStoreId,+    getGroupMembershipId_groupId,+    getGroupMembershipId_memberId,++    -- * Destructuring the Response+    GetGroupMembershipIdResponse (..),+    newGetGroupMembershipIdResponse,++    -- * Response Lenses+    getGroupMembershipIdResponse_httpStatus,+    getGroupMembershipIdResponse_membershipId,+    getGroupMembershipIdResponse_identityStoreId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetGroupMembershipId' smart constructor.+data GetGroupMembershipId = GetGroupMembershipId'+  { -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text,+    -- | The identifier for a group in the identity store.+    groupId :: Prelude.Text,+    -- | An object that contains the identifier of a group member. Setting the+    -- @UserID@ field to the specific identifier for a user indicates that the+    -- user is a member of the group.+    memberId :: MemberId+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetGroupMembershipId' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'getGroupMembershipId_identityStoreId' - The globally unique identifier for the identity store.+--+-- 'groupId', 'getGroupMembershipId_groupId' - The identifier for a group in the identity store.+--+-- 'memberId', 'getGroupMembershipId_memberId' - An object that contains the identifier of a group member. Setting the+-- @UserID@ field to the specific identifier for a user indicates that the+-- user is a member of the group.+newGetGroupMembershipId ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'groupId'+  Prelude.Text ->+  -- | 'memberId'+  MemberId ->+  GetGroupMembershipId+newGetGroupMembershipId+  pIdentityStoreId_+  pGroupId_+  pMemberId_ =+    GetGroupMembershipId'+      { identityStoreId =+          pIdentityStoreId_,+        groupId = pGroupId_,+        memberId = pMemberId_+      }++-- | The globally unique identifier for the identity store.+getGroupMembershipId_identityStoreId :: Lens.Lens' GetGroupMembershipId Prelude.Text+getGroupMembershipId_identityStoreId = Lens.lens (\GetGroupMembershipId' {identityStoreId} -> identityStoreId) (\s@GetGroupMembershipId' {} a -> s {identityStoreId = a} :: GetGroupMembershipId)++-- | The identifier for a group in the identity store.+getGroupMembershipId_groupId :: Lens.Lens' GetGroupMembershipId Prelude.Text+getGroupMembershipId_groupId = Lens.lens (\GetGroupMembershipId' {groupId} -> groupId) (\s@GetGroupMembershipId' {} a -> s {groupId = a} :: GetGroupMembershipId)++-- | An object that contains the identifier of a group member. Setting the+-- @UserID@ field to the specific identifier for a user indicates that the+-- user is a member of the group.+getGroupMembershipId_memberId :: Lens.Lens' GetGroupMembershipId MemberId+getGroupMembershipId_memberId = Lens.lens (\GetGroupMembershipId' {memberId} -> memberId) (\s@GetGroupMembershipId' {} a -> s {memberId = a} :: GetGroupMembershipId)++instance Core.AWSRequest GetGroupMembershipId where+  type+    AWSResponse GetGroupMembershipId =+      GetGroupMembershipIdResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetGroupMembershipIdResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "MembershipId")+            Prelude.<*> (x Data..:> "IdentityStoreId")+      )++instance Prelude.Hashable GetGroupMembershipId where+  hashWithSalt _salt GetGroupMembershipId' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` groupId+      `Prelude.hashWithSalt` memberId++instance Prelude.NFData GetGroupMembershipId where+  rnf GetGroupMembershipId' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf groupId+      `Prelude.seq` Prelude.rnf memberId++instance Data.ToHeaders GetGroupMembershipId where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.GetGroupMembershipId" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetGroupMembershipId where+  toJSON GetGroupMembershipId' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just ("GroupId" Data..= groupId),+            Prelude.Just ("MemberId" Data..= memberId)+          ]+      )++instance Data.ToPath GetGroupMembershipId where+  toPath = Prelude.const "/"++instance Data.ToQuery GetGroupMembershipId where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetGroupMembershipIdResponse' smart constructor.+data GetGroupMembershipIdResponse = GetGroupMembershipIdResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The identifier for a @GroupMembership@ in an identity store.+    membershipId :: Prelude.Text,+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetGroupMembershipIdResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'getGroupMembershipIdResponse_httpStatus' - The response's http status code.+--+-- 'membershipId', 'getGroupMembershipIdResponse_membershipId' - The identifier for a @GroupMembership@ in an identity store.+--+-- 'identityStoreId', 'getGroupMembershipIdResponse_identityStoreId' - The globally unique identifier for the identity store.+newGetGroupMembershipIdResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'membershipId'+  Prelude.Text ->+  -- | 'identityStoreId'+  Prelude.Text ->+  GetGroupMembershipIdResponse+newGetGroupMembershipIdResponse+  pHttpStatus_+  pMembershipId_+  pIdentityStoreId_ =+    GetGroupMembershipIdResponse'+      { httpStatus =+          pHttpStatus_,+        membershipId = pMembershipId_,+        identityStoreId = pIdentityStoreId_+      }++-- | The response's http status code.+getGroupMembershipIdResponse_httpStatus :: Lens.Lens' GetGroupMembershipIdResponse Prelude.Int+getGroupMembershipIdResponse_httpStatus = Lens.lens (\GetGroupMembershipIdResponse' {httpStatus} -> httpStatus) (\s@GetGroupMembershipIdResponse' {} a -> s {httpStatus = a} :: GetGroupMembershipIdResponse)++-- | The identifier for a @GroupMembership@ in an identity store.+getGroupMembershipIdResponse_membershipId :: Lens.Lens' GetGroupMembershipIdResponse Prelude.Text+getGroupMembershipIdResponse_membershipId = Lens.lens (\GetGroupMembershipIdResponse' {membershipId} -> membershipId) (\s@GetGroupMembershipIdResponse' {} a -> s {membershipId = a} :: GetGroupMembershipIdResponse)++-- | The globally unique identifier for the identity store.+getGroupMembershipIdResponse_identityStoreId :: Lens.Lens' GetGroupMembershipIdResponse Prelude.Text+getGroupMembershipIdResponse_identityStoreId = Lens.lens (\GetGroupMembershipIdResponse' {identityStoreId} -> identityStoreId) (\s@GetGroupMembershipIdResponse' {} a -> s {identityStoreId = a} :: GetGroupMembershipIdResponse)++instance Prelude.NFData GetGroupMembershipIdResponse where+  rnf GetGroupMembershipIdResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf membershipId+      `Prelude.seq` Prelude.rnf identityStoreId
+ gen/Amazonka/IdentityStore/GetUserId.hs view
@@ -0,0 +1,213 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.GetUserId+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the @UserId@ in an identity store.+module Amazonka.IdentityStore.GetUserId+  ( -- * Creating a Request+    GetUserId (..),+    newGetUserId,++    -- * Request Lenses+    getUserId_identityStoreId,+    getUserId_alternateIdentifier,++    -- * Destructuring the Response+    GetUserIdResponse (..),+    newGetUserIdResponse,++    -- * Response Lenses+    getUserIdResponse_httpStatus,+    getUserIdResponse_userId,+    getUserIdResponse_identityStoreId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetUserId' smart constructor.+data GetUserId = GetUserId'+  { -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text,+    -- | A unique identifier for a user or group that is not the primary+    -- identifier. This value can be an identifier from an external identity+    -- provider (IdP) that is associated with the user, the group, or a unique+    -- attribute. For example, a unique @UserDisplayName@.+    alternateIdentifier :: AlternateIdentifier+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetUserId' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'getUserId_identityStoreId' - The globally unique identifier for the identity store.+--+-- 'alternateIdentifier', 'getUserId_alternateIdentifier' - A unique identifier for a user or group that is not the primary+-- identifier. This value can be an identifier from an external identity+-- provider (IdP) that is associated with the user, the group, or a unique+-- attribute. For example, a unique @UserDisplayName@.+newGetUserId ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'alternateIdentifier'+  AlternateIdentifier ->+  GetUserId+newGetUserId pIdentityStoreId_ pAlternateIdentifier_ =+  GetUserId'+    { identityStoreId = pIdentityStoreId_,+      alternateIdentifier = pAlternateIdentifier_+    }++-- | The globally unique identifier for the identity store.+getUserId_identityStoreId :: Lens.Lens' GetUserId Prelude.Text+getUserId_identityStoreId = Lens.lens (\GetUserId' {identityStoreId} -> identityStoreId) (\s@GetUserId' {} a -> s {identityStoreId = a} :: GetUserId)++-- | A unique identifier for a user or group that is not the primary+-- identifier. This value can be an identifier from an external identity+-- provider (IdP) that is associated with the user, the group, or a unique+-- attribute. For example, a unique @UserDisplayName@.+getUserId_alternateIdentifier :: Lens.Lens' GetUserId AlternateIdentifier+getUserId_alternateIdentifier = Lens.lens (\GetUserId' {alternateIdentifier} -> alternateIdentifier) (\s@GetUserId' {} a -> s {alternateIdentifier = a} :: GetUserId)++instance Core.AWSRequest GetUserId where+  type AWSResponse GetUserId = GetUserIdResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetUserIdResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "UserId")+            Prelude.<*> (x Data..:> "IdentityStoreId")+      )++instance Prelude.Hashable GetUserId where+  hashWithSalt _salt GetUserId' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` alternateIdentifier++instance Prelude.NFData GetUserId where+  rnf GetUserId' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf alternateIdentifier++instance Data.ToHeaders GetUserId where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("AWSIdentityStore.GetUserId" :: Prelude.ByteString),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetUserId where+  toJSON GetUserId' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just+              ("AlternateIdentifier" Data..= alternateIdentifier)+          ]+      )++instance Data.ToPath GetUserId where+  toPath = Prelude.const "/"++instance Data.ToQuery GetUserId where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetUserIdResponse' smart constructor.+data GetUserIdResponse = GetUserIdResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The identifier for a user in the identity store.+    userId :: Prelude.Text,+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetUserIdResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'getUserIdResponse_httpStatus' - The response's http status code.+--+-- 'userId', 'getUserIdResponse_userId' - The identifier for a user in the identity store.+--+-- 'identityStoreId', 'getUserIdResponse_identityStoreId' - The globally unique identifier for the identity store.+newGetUserIdResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'userId'+  Prelude.Text ->+  -- | 'identityStoreId'+  Prelude.Text ->+  GetUserIdResponse+newGetUserIdResponse+  pHttpStatus_+  pUserId_+  pIdentityStoreId_ =+    GetUserIdResponse'+      { httpStatus = pHttpStatus_,+        userId = pUserId_,+        identityStoreId = pIdentityStoreId_+      }++-- | The response's http status code.+getUserIdResponse_httpStatus :: Lens.Lens' GetUserIdResponse Prelude.Int+getUserIdResponse_httpStatus = Lens.lens (\GetUserIdResponse' {httpStatus} -> httpStatus) (\s@GetUserIdResponse' {} a -> s {httpStatus = a} :: GetUserIdResponse)++-- | The identifier for a user in the identity store.+getUserIdResponse_userId :: Lens.Lens' GetUserIdResponse Prelude.Text+getUserIdResponse_userId = Lens.lens (\GetUserIdResponse' {userId} -> userId) (\s@GetUserIdResponse' {} a -> s {userId = a} :: GetUserIdResponse)++-- | The globally unique identifier for the identity store.+getUserIdResponse_identityStoreId :: Lens.Lens' GetUserIdResponse Prelude.Text+getUserIdResponse_identityStoreId = Lens.lens (\GetUserIdResponse' {identityStoreId} -> identityStoreId) (\s@GetUserIdResponse' {} a -> s {identityStoreId = a} :: GetUserIdResponse)++instance Prelude.NFData GetUserIdResponse where+  rnf GetUserIdResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf userId+      `Prelude.seq` Prelude.rnf identityStoreId
+ gen/Amazonka/IdentityStore/IsMemberInGroups.hs view
@@ -0,0 +1,209 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.IsMemberInGroups+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Checks the user\'s membership in all requested groups and returns if the+-- member exists in all queried groups.+module Amazonka.IdentityStore.IsMemberInGroups+  ( -- * Creating a Request+    IsMemberInGroups (..),+    newIsMemberInGroups,++    -- * Request Lenses+    isMemberInGroups_identityStoreId,+    isMemberInGroups_memberId,+    isMemberInGroups_groupIds,++    -- * Destructuring the Response+    IsMemberInGroupsResponse (..),+    newIsMemberInGroupsResponse,++    -- * Response Lenses+    isMemberInGroupsResponse_httpStatus,+    isMemberInGroupsResponse_results,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newIsMemberInGroups' smart constructor.+data IsMemberInGroups = IsMemberInGroups'+  { -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text,+    -- | An object containing the identifier of a group member.+    memberId :: MemberId,+    -- | A list of identifiers for groups in the identity store.+    groupIds :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IsMemberInGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'isMemberInGroups_identityStoreId' - The globally unique identifier for the identity store.+--+-- 'memberId', 'isMemberInGroups_memberId' - An object containing the identifier of a group member.+--+-- 'groupIds', 'isMemberInGroups_groupIds' - A list of identifiers for groups in the identity store.+newIsMemberInGroups ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'memberId'+  MemberId ->+  -- | 'groupIds'+  Prelude.NonEmpty Prelude.Text ->+  IsMemberInGroups+newIsMemberInGroups+  pIdentityStoreId_+  pMemberId_+  pGroupIds_ =+    IsMemberInGroups'+      { identityStoreId =+          pIdentityStoreId_,+        memberId = pMemberId_,+        groupIds = Lens.coerced Lens.# pGroupIds_+      }++-- | The globally unique identifier for the identity store.+isMemberInGroups_identityStoreId :: Lens.Lens' IsMemberInGroups Prelude.Text+isMemberInGroups_identityStoreId = Lens.lens (\IsMemberInGroups' {identityStoreId} -> identityStoreId) (\s@IsMemberInGroups' {} a -> s {identityStoreId = a} :: IsMemberInGroups)++-- | An object containing the identifier of a group member.+isMemberInGroups_memberId :: Lens.Lens' IsMemberInGroups MemberId+isMemberInGroups_memberId = Lens.lens (\IsMemberInGroups' {memberId} -> memberId) (\s@IsMemberInGroups' {} a -> s {memberId = a} :: IsMemberInGroups)++-- | A list of identifiers for groups in the identity store.+isMemberInGroups_groupIds :: Lens.Lens' IsMemberInGroups (Prelude.NonEmpty Prelude.Text)+isMemberInGroups_groupIds = Lens.lens (\IsMemberInGroups' {groupIds} -> groupIds) (\s@IsMemberInGroups' {} a -> s {groupIds = a} :: IsMemberInGroups) Prelude.. Lens.coerced++instance Core.AWSRequest IsMemberInGroups where+  type+    AWSResponse IsMemberInGroups =+      IsMemberInGroupsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          IsMemberInGroupsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "Results" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable IsMemberInGroups where+  hashWithSalt _salt IsMemberInGroups' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` memberId+      `Prelude.hashWithSalt` groupIds++instance Prelude.NFData IsMemberInGroups where+  rnf IsMemberInGroups' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf memberId+      `Prelude.seq` Prelude.rnf groupIds++instance Data.ToHeaders IsMemberInGroups where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.IsMemberInGroups" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON IsMemberInGroups where+  toJSON IsMemberInGroups' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just ("MemberId" Data..= memberId),+            Prelude.Just ("GroupIds" Data..= groupIds)+          ]+      )++instance Data.ToPath IsMemberInGroups where+  toPath = Prelude.const "/"++instance Data.ToQuery IsMemberInGroups where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newIsMemberInGroupsResponse' smart constructor.+data IsMemberInGroupsResponse = IsMemberInGroupsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list containing the results of membership existence checks.+    results :: [GroupMembershipExistenceResult]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IsMemberInGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'isMemberInGroupsResponse_httpStatus' - The response's http status code.+--+-- 'results', 'isMemberInGroupsResponse_results' - A list containing the results of membership existence checks.+newIsMemberInGroupsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  IsMemberInGroupsResponse+newIsMemberInGroupsResponse pHttpStatus_ =+  IsMemberInGroupsResponse'+    { httpStatus =+        pHttpStatus_,+      results = Prelude.mempty+    }++-- | The response's http status code.+isMemberInGroupsResponse_httpStatus :: Lens.Lens' IsMemberInGroupsResponse Prelude.Int+isMemberInGroupsResponse_httpStatus = Lens.lens (\IsMemberInGroupsResponse' {httpStatus} -> httpStatus) (\s@IsMemberInGroupsResponse' {} a -> s {httpStatus = a} :: IsMemberInGroupsResponse)++-- | A list containing the results of membership existence checks.+isMemberInGroupsResponse_results :: Lens.Lens' IsMemberInGroupsResponse [GroupMembershipExistenceResult]+isMemberInGroupsResponse_results = Lens.lens (\IsMemberInGroupsResponse' {results} -> results) (\s@IsMemberInGroupsResponse' {} a -> s {results = a} :: IsMemberInGroupsResponse) Prelude.. Lens.coerced++instance Prelude.NFData IsMemberInGroupsResponse where+  rnf IsMemberInGroupsResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf results
+ gen/Amazonka/IdentityStore/Lens.hs view
@@ -0,0 +1,310 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Lens+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Lens+  ( -- * Operations++    -- ** CreateGroup+    createGroup_description,+    createGroup_displayName,+    createGroup_identityStoreId,+    createGroupResponse_httpStatus,+    createGroupResponse_groupId,+    createGroupResponse_identityStoreId,++    -- ** CreateGroupMembership+    createGroupMembership_identityStoreId,+    createGroupMembership_groupId,+    createGroupMembership_memberId,+    createGroupMembershipResponse_httpStatus,+    createGroupMembershipResponse_membershipId,+    createGroupMembershipResponse_identityStoreId,++    -- ** CreateUser+    createUser_addresses,+    createUser_displayName,+    createUser_emails,+    createUser_locale,+    createUser_name,+    createUser_nickName,+    createUser_phoneNumbers,+    createUser_preferredLanguage,+    createUser_profileUrl,+    createUser_timezone,+    createUser_title,+    createUser_userName,+    createUser_userType,+    createUser_identityStoreId,+    createUserResponse_httpStatus,+    createUserResponse_userId,+    createUserResponse_identityStoreId,++    -- ** DeleteGroup+    deleteGroup_identityStoreId,+    deleteGroup_groupId,+    deleteGroupResponse_httpStatus,++    -- ** DeleteGroupMembership+    deleteGroupMembership_identityStoreId,+    deleteGroupMembership_membershipId,+    deleteGroupMembershipResponse_httpStatus,++    -- ** DeleteUser+    deleteUser_identityStoreId,+    deleteUser_userId,+    deleteUserResponse_httpStatus,++    -- ** DescribeGroup+    describeGroup_identityStoreId,+    describeGroup_groupId,+    describeGroupResponse_description,+    describeGroupResponse_displayName,+    describeGroupResponse_externalIds,+    describeGroupResponse_httpStatus,+    describeGroupResponse_groupId,+    describeGroupResponse_identityStoreId,++    -- ** DescribeGroupMembership+    describeGroupMembership_identityStoreId,+    describeGroupMembership_membershipId,+    describeGroupMembershipResponse_httpStatus,+    describeGroupMembershipResponse_identityStoreId,+    describeGroupMembershipResponse_membershipId,+    describeGroupMembershipResponse_groupId,+    describeGroupMembershipResponse_memberId,++    -- ** DescribeUser+    describeUser_identityStoreId,+    describeUser_userId,+    describeUserResponse_addresses,+    describeUserResponse_displayName,+    describeUserResponse_emails,+    describeUserResponse_externalIds,+    describeUserResponse_locale,+    describeUserResponse_name,+    describeUserResponse_nickName,+    describeUserResponse_phoneNumbers,+    describeUserResponse_preferredLanguage,+    describeUserResponse_profileUrl,+    describeUserResponse_timezone,+    describeUserResponse_title,+    describeUserResponse_userName,+    describeUserResponse_userType,+    describeUserResponse_httpStatus,+    describeUserResponse_userId,+    describeUserResponse_identityStoreId,++    -- ** GetGroupId+    getGroupId_identityStoreId,+    getGroupId_alternateIdentifier,+    getGroupIdResponse_httpStatus,+    getGroupIdResponse_groupId,+    getGroupIdResponse_identityStoreId,++    -- ** GetGroupMembershipId+    getGroupMembershipId_identityStoreId,+    getGroupMembershipId_groupId,+    getGroupMembershipId_memberId,+    getGroupMembershipIdResponse_httpStatus,+    getGroupMembershipIdResponse_membershipId,+    getGroupMembershipIdResponse_identityStoreId,++    -- ** GetUserId+    getUserId_identityStoreId,+    getUserId_alternateIdentifier,+    getUserIdResponse_httpStatus,+    getUserIdResponse_userId,+    getUserIdResponse_identityStoreId,++    -- ** IsMemberInGroups+    isMemberInGroups_identityStoreId,+    isMemberInGroups_memberId,+    isMemberInGroups_groupIds,+    isMemberInGroupsResponse_httpStatus,+    isMemberInGroupsResponse_results,++    -- ** ListGroupMemberships+    listGroupMemberships_maxResults,+    listGroupMemberships_nextToken,+    listGroupMemberships_identityStoreId,+    listGroupMemberships_groupId,+    listGroupMembershipsResponse_nextToken,+    listGroupMembershipsResponse_httpStatus,+    listGroupMembershipsResponse_groupMemberships,++    -- ** ListGroupMembershipsForMember+    listGroupMembershipsForMember_maxResults,+    listGroupMembershipsForMember_nextToken,+    listGroupMembershipsForMember_identityStoreId,+    listGroupMembershipsForMember_memberId,+    listGroupMembershipsForMemberResponse_nextToken,+    listGroupMembershipsForMemberResponse_httpStatus,+    listGroupMembershipsForMemberResponse_groupMemberships,++    -- ** ListGroups+    listGroups_filters,+    listGroups_maxResults,+    listGroups_nextToken,+    listGroups_identityStoreId,+    listGroupsResponse_nextToken,+    listGroupsResponse_httpStatus,+    listGroupsResponse_groups,++    -- ** ListUsers+    listUsers_filters,+    listUsers_maxResults,+    listUsers_nextToken,+    listUsers_identityStoreId,+    listUsersResponse_nextToken,+    listUsersResponse_httpStatus,+    listUsersResponse_users,++    -- ** UpdateGroup+    updateGroup_identityStoreId,+    updateGroup_groupId,+    updateGroup_operations,+    updateGroupResponse_httpStatus,++    -- ** UpdateUser+    updateUser_identityStoreId,+    updateUser_userId,+    updateUser_operations,+    updateUserResponse_httpStatus,++    -- * Types++    -- ** Address+    address_country,+    address_formatted,+    address_locality,+    address_postalCode,+    address_primary,+    address_region,+    address_streetAddress,+    address_type,++    -- ** AlternateIdentifier+    alternateIdentifier_externalId,+    alternateIdentifier_uniqueAttribute,++    -- ** AttributeOperation+    attributeOperation_attributeValue,+    attributeOperation_attributePath,++    -- ** AttributeValue++    -- ** Email+    email_primary,+    email_type,+    email_value,++    -- ** ExternalId+    externalId_issuer,+    externalId_id,++    -- ** Filter+    filter_attributePath,+    filter_attributeValue,++    -- ** Group+    group_description,+    group_displayName,+    group_externalIds,+    group_groupId,+    group_identityStoreId,++    -- ** GroupMembership+    groupMembership_groupId,+    groupMembership_memberId,+    groupMembership_membershipId,+    groupMembership_identityStoreId,++    -- ** GroupMembershipExistenceResult+    groupMembershipExistenceResult_groupId,+    groupMembershipExistenceResult_memberId,+    groupMembershipExistenceResult_membershipExists,++    -- ** MemberId+    memberId_userId,++    -- ** Name+    name_familyName,+    name_formatted,+    name_givenName,+    name_honorificPrefix,+    name_honorificSuffix,+    name_middleName,++    -- ** PhoneNumber+    phoneNumber_primary,+    phoneNumber_type,+    phoneNumber_value,++    -- ** UniqueAttribute+    uniqueAttribute_attributePath,+    uniqueAttribute_attributeValue,++    -- ** User+    user_addresses,+    user_displayName,+    user_emails,+    user_externalIds,+    user_locale,+    user_name,+    user_nickName,+    user_phoneNumbers,+    user_preferredLanguage,+    user_profileUrl,+    user_timezone,+    user_title,+    user_userName,+    user_userType,+    user_userId,+    user_identityStoreId,+  )+where++import Amazonka.IdentityStore.CreateGroup+import Amazonka.IdentityStore.CreateGroupMembership+import Amazonka.IdentityStore.CreateUser+import Amazonka.IdentityStore.DeleteGroup+import Amazonka.IdentityStore.DeleteGroupMembership+import Amazonka.IdentityStore.DeleteUser+import Amazonka.IdentityStore.DescribeGroup+import Amazonka.IdentityStore.DescribeGroupMembership+import Amazonka.IdentityStore.DescribeUser+import Amazonka.IdentityStore.GetGroupId+import Amazonka.IdentityStore.GetGroupMembershipId+import Amazonka.IdentityStore.GetUserId+import Amazonka.IdentityStore.IsMemberInGroups+import Amazonka.IdentityStore.ListGroupMemberships+import Amazonka.IdentityStore.ListGroupMembershipsForMember+import Amazonka.IdentityStore.ListGroups+import Amazonka.IdentityStore.ListUsers+import Amazonka.IdentityStore.Types.Address+import Amazonka.IdentityStore.Types.AlternateIdentifier+import Amazonka.IdentityStore.Types.AttributeOperation+import Amazonka.IdentityStore.Types.AttributeValue+import Amazonka.IdentityStore.Types.Email+import Amazonka.IdentityStore.Types.ExternalId+import Amazonka.IdentityStore.Types.Filter+import Amazonka.IdentityStore.Types.Group+import Amazonka.IdentityStore.Types.GroupMembership+import Amazonka.IdentityStore.Types.GroupMembershipExistenceResult+import Amazonka.IdentityStore.Types.MemberId+import Amazonka.IdentityStore.Types.Name+import Amazonka.IdentityStore.Types.PhoneNumber+import Amazonka.IdentityStore.Types.UniqueAttribute+import Amazonka.IdentityStore.Types.User+import Amazonka.IdentityStore.UpdateGroup+import Amazonka.IdentityStore.UpdateUser
+ gen/Amazonka/IdentityStore/ListGroupMemberships.hs view
@@ -0,0 +1,285 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.ListGroupMemberships+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- For the specified group in the specified identity store, returns the+-- list of all @GroupMembership@ objects and returns results in paginated+-- form.+--+-- This operation returns paginated results.+module Amazonka.IdentityStore.ListGroupMemberships+  ( -- * Creating a Request+    ListGroupMemberships (..),+    newListGroupMemberships,++    -- * Request Lenses+    listGroupMemberships_maxResults,+    listGroupMemberships_nextToken,+    listGroupMemberships_identityStoreId,+    listGroupMemberships_groupId,++    -- * Destructuring the Response+    ListGroupMembershipsResponse (..),+    newListGroupMembershipsResponse,++    -- * Response Lenses+    listGroupMembershipsResponse_nextToken,+    listGroupMembershipsResponse_httpStatus,+    listGroupMembershipsResponse_groupMemberships,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListGroupMemberships' smart constructor.+data ListGroupMemberships = ListGroupMemberships'+  { -- | The maximum number of results to be returned per request. This parameter+    -- is used in all @List@ requests to specify how many results to return in+    -- one page.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token used for the @ListUsers@, @ListGroups@ and+    -- @ListGroupMemberships@ API operations. This value is generated by the+    -- identity store service. It is returned in the API response if the total+    -- results are more than the size of one page. This token is also returned+    -- when it is used in the API request to search for the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text,+    -- | The identifier for a group in the identity store.+    groupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListGroupMemberships' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listGroupMemberships_maxResults' - The maximum number of results to be returned per request. This parameter+-- is used in all @List@ requests to specify how many results to return in+-- one page.+--+-- 'nextToken', 'listGroupMemberships_nextToken' - The pagination token used for the @ListUsers@, @ListGroups@ and+-- @ListGroupMemberships@ API operations. This value is generated by the+-- identity store service. It is returned in the API response if the total+-- results are more than the size of one page. This token is also returned+-- when it is used in the API request to search for the next page.+--+-- 'identityStoreId', 'listGroupMemberships_identityStoreId' - The globally unique identifier for the identity store.+--+-- 'groupId', 'listGroupMemberships_groupId' - The identifier for a group in the identity store.+newListGroupMemberships ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'groupId'+  Prelude.Text ->+  ListGroupMemberships+newListGroupMemberships pIdentityStoreId_ pGroupId_ =+  ListGroupMemberships'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      identityStoreId = pIdentityStoreId_,+      groupId = pGroupId_+    }++-- | The maximum number of results to be returned per request. This parameter+-- is used in all @List@ requests to specify how many results to return in+-- one page.+listGroupMemberships_maxResults :: Lens.Lens' ListGroupMemberships (Prelude.Maybe Prelude.Natural)+listGroupMemberships_maxResults = Lens.lens (\ListGroupMemberships' {maxResults} -> maxResults) (\s@ListGroupMemberships' {} a -> s {maxResults = a} :: ListGroupMemberships)++-- | The pagination token used for the @ListUsers@, @ListGroups@ and+-- @ListGroupMemberships@ API operations. This value is generated by the+-- identity store service. It is returned in the API response if the total+-- results are more than the size of one page. This token is also returned+-- when it is used in the API request to search for the next page.+listGroupMemberships_nextToken :: Lens.Lens' ListGroupMemberships (Prelude.Maybe Prelude.Text)+listGroupMemberships_nextToken = Lens.lens (\ListGroupMemberships' {nextToken} -> nextToken) (\s@ListGroupMemberships' {} a -> s {nextToken = a} :: ListGroupMemberships)++-- | The globally unique identifier for the identity store.+listGroupMemberships_identityStoreId :: Lens.Lens' ListGroupMemberships Prelude.Text+listGroupMemberships_identityStoreId = Lens.lens (\ListGroupMemberships' {identityStoreId} -> identityStoreId) (\s@ListGroupMemberships' {} a -> s {identityStoreId = a} :: ListGroupMemberships)++-- | The identifier for a group in the identity store.+listGroupMemberships_groupId :: Lens.Lens' ListGroupMemberships Prelude.Text+listGroupMemberships_groupId = Lens.lens (\ListGroupMemberships' {groupId} -> groupId) (\s@ListGroupMemberships' {} a -> s {groupId = a} :: ListGroupMemberships)++instance Core.AWSPager ListGroupMemberships where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listGroupMembershipsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^. listGroupMembershipsResponse_groupMemberships+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listGroupMemberships_nextToken+          Lens..~ rs+          Lens.^? listGroupMembershipsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListGroupMemberships where+  type+    AWSResponse ListGroupMemberships =+      ListGroupMembershipsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListGroupMembershipsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "GroupMemberships"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable ListGroupMemberships where+  hashWithSalt _salt ListGroupMemberships' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` groupId++instance Prelude.NFData ListGroupMemberships where+  rnf ListGroupMemberships' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf groupId++instance Data.ToHeaders ListGroupMemberships where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.ListGroupMemberships" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListGroupMemberships where+  toJSON ListGroupMemberships' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just ("GroupId" Data..= groupId)+          ]+      )++instance Data.ToPath ListGroupMemberships where+  toPath = Prelude.const "/"++instance Data.ToQuery ListGroupMemberships where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListGroupMembershipsResponse' smart constructor.+data ListGroupMembershipsResponse = ListGroupMembershipsResponse'+  { -- | The pagination token used for the @ListUsers@, @ListGroups@, and+    -- @ListGroupMemberships@ API operations. This value is generated by the+    -- identity store service. It is returned in the API response if the total+    -- results are more than the size of one page. This token is also returned+    -- when it is used in the API request to search for the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of @GroupMembership@ objects in the group.+    groupMemberships :: [GroupMembership]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListGroupMembershipsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listGroupMembershipsResponse_nextToken' - The pagination token used for the @ListUsers@, @ListGroups@, and+-- @ListGroupMemberships@ API operations. This value is generated by the+-- identity store service. It is returned in the API response if the total+-- results are more than the size of one page. This token is also returned+-- when it is used in the API request to search for the next page.+--+-- 'httpStatus', 'listGroupMembershipsResponse_httpStatus' - The response's http status code.+--+-- 'groupMemberships', 'listGroupMembershipsResponse_groupMemberships' - A list of @GroupMembership@ objects in the group.+newListGroupMembershipsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListGroupMembershipsResponse+newListGroupMembershipsResponse pHttpStatus_ =+  ListGroupMembershipsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      groupMemberships = Prelude.mempty+    }++-- | The pagination token used for the @ListUsers@, @ListGroups@, and+-- @ListGroupMemberships@ API operations. This value is generated by the+-- identity store service. It is returned in the API response if the total+-- results are more than the size of one page. This token is also returned+-- when it is used in the API request to search for the next page.+listGroupMembershipsResponse_nextToken :: Lens.Lens' ListGroupMembershipsResponse (Prelude.Maybe Prelude.Text)+listGroupMembershipsResponse_nextToken = Lens.lens (\ListGroupMembershipsResponse' {nextToken} -> nextToken) (\s@ListGroupMembershipsResponse' {} a -> s {nextToken = a} :: ListGroupMembershipsResponse)++-- | The response's http status code.+listGroupMembershipsResponse_httpStatus :: Lens.Lens' ListGroupMembershipsResponse Prelude.Int+listGroupMembershipsResponse_httpStatus = Lens.lens (\ListGroupMembershipsResponse' {httpStatus} -> httpStatus) (\s@ListGroupMembershipsResponse' {} a -> s {httpStatus = a} :: ListGroupMembershipsResponse)++-- | A list of @GroupMembership@ objects in the group.+listGroupMembershipsResponse_groupMemberships :: Lens.Lens' ListGroupMembershipsResponse [GroupMembership]+listGroupMembershipsResponse_groupMemberships = Lens.lens (\ListGroupMembershipsResponse' {groupMemberships} -> groupMemberships) (\s@ListGroupMembershipsResponse' {} a -> s {groupMemberships = a} :: ListGroupMembershipsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListGroupMembershipsResponse where+  rnf ListGroupMembershipsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf groupMemberships
+ gen/Amazonka/IdentityStore/ListGroupMembershipsForMember.hs view
@@ -0,0 +1,303 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.ListGroupMembershipsForMember+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- For the specified member in the specified identity store, returns the+-- list of all @GroupMembership@ objects and returns results in paginated+-- form.+--+-- This operation returns paginated results.+module Amazonka.IdentityStore.ListGroupMembershipsForMember+  ( -- * Creating a Request+    ListGroupMembershipsForMember (..),+    newListGroupMembershipsForMember,++    -- * Request Lenses+    listGroupMembershipsForMember_maxResults,+    listGroupMembershipsForMember_nextToken,+    listGroupMembershipsForMember_identityStoreId,+    listGroupMembershipsForMember_memberId,++    -- * Destructuring the Response+    ListGroupMembershipsForMemberResponse (..),+    newListGroupMembershipsForMemberResponse,++    -- * Response Lenses+    listGroupMembershipsForMemberResponse_nextToken,+    listGroupMembershipsForMemberResponse_httpStatus,+    listGroupMembershipsForMemberResponse_groupMemberships,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListGroupMembershipsForMember' smart constructor.+data ListGroupMembershipsForMember = ListGroupMembershipsForMember'+  { -- | The maximum number of results to be returned per request. This parameter+    -- is used in the @ListUsers@ and @ListGroups@ requests to specify how many+    -- results to return in one page. The length limit is 50 characters.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token used for the @ListUsers@, @ListGroups@, and+    -- @ListGroupMemberships@ API operations. This value is generated by the+    -- identity store service. It is returned in the API response if the total+    -- results are more than the size of one page. This token is also returned+    -- when it is used in the API request to search for the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text,+    -- | An object that contains the identifier of a group member. Setting the+    -- @UserID@ field to the specific identifier for a user indicates that the+    -- user is a member of the group.+    memberId :: MemberId+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListGroupMembershipsForMember' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listGroupMembershipsForMember_maxResults' - The maximum number of results to be returned per request. This parameter+-- is used in the @ListUsers@ and @ListGroups@ requests to specify how many+-- results to return in one page. The length limit is 50 characters.+--+-- 'nextToken', 'listGroupMembershipsForMember_nextToken' - The pagination token used for the @ListUsers@, @ListGroups@, and+-- @ListGroupMemberships@ API operations. This value is generated by the+-- identity store service. It is returned in the API response if the total+-- results are more than the size of one page. This token is also returned+-- when it is used in the API request to search for the next page.+--+-- 'identityStoreId', 'listGroupMembershipsForMember_identityStoreId' - The globally unique identifier for the identity store.+--+-- 'memberId', 'listGroupMembershipsForMember_memberId' - An object that contains the identifier of a group member. Setting the+-- @UserID@ field to the specific identifier for a user indicates that the+-- user is a member of the group.+newListGroupMembershipsForMember ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'memberId'+  MemberId ->+  ListGroupMembershipsForMember+newListGroupMembershipsForMember+  pIdentityStoreId_+  pMemberId_ =+    ListGroupMembershipsForMember'+      { maxResults =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        identityStoreId = pIdentityStoreId_,+        memberId = pMemberId_+      }++-- | The maximum number of results to be returned per request. This parameter+-- is used in the @ListUsers@ and @ListGroups@ requests to specify how many+-- results to return in one page. The length limit is 50 characters.+listGroupMembershipsForMember_maxResults :: Lens.Lens' ListGroupMembershipsForMember (Prelude.Maybe Prelude.Natural)+listGroupMembershipsForMember_maxResults = Lens.lens (\ListGroupMembershipsForMember' {maxResults} -> maxResults) (\s@ListGroupMembershipsForMember' {} a -> s {maxResults = a} :: ListGroupMembershipsForMember)++-- | The pagination token used for the @ListUsers@, @ListGroups@, and+-- @ListGroupMemberships@ API operations. This value is generated by the+-- identity store service. It is returned in the API response if the total+-- results are more than the size of one page. This token is also returned+-- when it is used in the API request to search for the next page.+listGroupMembershipsForMember_nextToken :: Lens.Lens' ListGroupMembershipsForMember (Prelude.Maybe Prelude.Text)+listGroupMembershipsForMember_nextToken = Lens.lens (\ListGroupMembershipsForMember' {nextToken} -> nextToken) (\s@ListGroupMembershipsForMember' {} a -> s {nextToken = a} :: ListGroupMembershipsForMember)++-- | The globally unique identifier for the identity store.+listGroupMembershipsForMember_identityStoreId :: Lens.Lens' ListGroupMembershipsForMember Prelude.Text+listGroupMembershipsForMember_identityStoreId = Lens.lens (\ListGroupMembershipsForMember' {identityStoreId} -> identityStoreId) (\s@ListGroupMembershipsForMember' {} a -> s {identityStoreId = a} :: ListGroupMembershipsForMember)++-- | An object that contains the identifier of a group member. Setting the+-- @UserID@ field to the specific identifier for a user indicates that the+-- user is a member of the group.+listGroupMembershipsForMember_memberId :: Lens.Lens' ListGroupMembershipsForMember MemberId+listGroupMembershipsForMember_memberId = Lens.lens (\ListGroupMembershipsForMember' {memberId} -> memberId) (\s@ListGroupMembershipsForMember' {} a -> s {memberId = a} :: ListGroupMembershipsForMember)++instance Core.AWSPager ListGroupMembershipsForMember where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listGroupMembershipsForMemberResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^. listGroupMembershipsForMemberResponse_groupMemberships+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listGroupMembershipsForMember_nextToken+          Lens..~ rs+          Lens.^? listGroupMembershipsForMemberResponse_nextToken+          Prelude.. Lens._Just++instance+  Core.AWSRequest+    ListGroupMembershipsForMember+  where+  type+    AWSResponse ListGroupMembershipsForMember =+      ListGroupMembershipsForMemberResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListGroupMembershipsForMemberResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "GroupMemberships"+                            Core..!@ Prelude.mempty+                        )+      )++instance+  Prelude.Hashable+    ListGroupMembershipsForMember+  where+  hashWithSalt _salt ListGroupMembershipsForMember' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` memberId++instance Prelude.NFData ListGroupMembershipsForMember where+  rnf ListGroupMembershipsForMember' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf memberId++instance Data.ToHeaders ListGroupMembershipsForMember where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.ListGroupMembershipsForMember" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListGroupMembershipsForMember where+  toJSON ListGroupMembershipsForMember' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just ("MemberId" Data..= memberId)+          ]+      )++instance Data.ToPath ListGroupMembershipsForMember where+  toPath = Prelude.const "/"++instance Data.ToQuery ListGroupMembershipsForMember where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListGroupMembershipsForMemberResponse' smart constructor.+data ListGroupMembershipsForMemberResponse = ListGroupMembershipsForMemberResponse'+  { -- | The pagination token used for the @ListUsers@, @ListGroups@, and+    -- @ListGroupMemberships@ API operations. This value is generated by the+    -- identity store service. It is returned in the API response if the total+    -- results are more than the size of one page. This token is also returned+    -- when it is used in the API request to search for the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of @GroupMembership@ objects in the group for a specified member.+    groupMemberships :: [GroupMembership]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListGroupMembershipsForMemberResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listGroupMembershipsForMemberResponse_nextToken' - The pagination token used for the @ListUsers@, @ListGroups@, and+-- @ListGroupMemberships@ API operations. This value is generated by the+-- identity store service. It is returned in the API response if the total+-- results are more than the size of one page. This token is also returned+-- when it is used in the API request to search for the next page.+--+-- 'httpStatus', 'listGroupMembershipsForMemberResponse_httpStatus' - The response's http status code.+--+-- 'groupMemberships', 'listGroupMembershipsForMemberResponse_groupMemberships' - A list of @GroupMembership@ objects in the group for a specified member.+newListGroupMembershipsForMemberResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListGroupMembershipsForMemberResponse+newListGroupMembershipsForMemberResponse pHttpStatus_ =+  ListGroupMembershipsForMemberResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      groupMemberships = Prelude.mempty+    }++-- | The pagination token used for the @ListUsers@, @ListGroups@, and+-- @ListGroupMemberships@ API operations. This value is generated by the+-- identity store service. It is returned in the API response if the total+-- results are more than the size of one page. This token is also returned+-- when it is used in the API request to search for the next page.+listGroupMembershipsForMemberResponse_nextToken :: Lens.Lens' ListGroupMembershipsForMemberResponse (Prelude.Maybe Prelude.Text)+listGroupMembershipsForMemberResponse_nextToken = Lens.lens (\ListGroupMembershipsForMemberResponse' {nextToken} -> nextToken) (\s@ListGroupMembershipsForMemberResponse' {} a -> s {nextToken = a} :: ListGroupMembershipsForMemberResponse)++-- | The response's http status code.+listGroupMembershipsForMemberResponse_httpStatus :: Lens.Lens' ListGroupMembershipsForMemberResponse Prelude.Int+listGroupMembershipsForMemberResponse_httpStatus = Lens.lens (\ListGroupMembershipsForMemberResponse' {httpStatus} -> httpStatus) (\s@ListGroupMembershipsForMemberResponse' {} a -> s {httpStatus = a} :: ListGroupMembershipsForMemberResponse)++-- | A list of @GroupMembership@ objects in the group for a specified member.+listGroupMembershipsForMemberResponse_groupMemberships :: Lens.Lens' ListGroupMembershipsForMemberResponse [GroupMembership]+listGroupMembershipsForMemberResponse_groupMemberships = Lens.lens (\ListGroupMembershipsForMemberResponse' {groupMemberships} -> groupMemberships) (\s@ListGroupMembershipsForMemberResponse' {} a -> s {groupMemberships = a} :: ListGroupMembershipsForMemberResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListGroupMembershipsForMemberResponse+  where+  rnf ListGroupMembershipsForMemberResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf groupMemberships
+ gen/Amazonka/IdentityStore/ListGroups.hs view
@@ -0,0 +1,289 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.ListGroups+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all groups in the identity store. Returns a paginated list of+-- complete @Group@ objects. Filtering for a @Group@ by the @DisplayName@+-- attribute is deprecated. Instead, use the @GetGroupId@ API action.+--+-- This operation returns paginated results.+module Amazonka.IdentityStore.ListGroups+  ( -- * Creating a Request+    ListGroups (..),+    newListGroups,++    -- * Request Lenses+    listGroups_filters,+    listGroups_maxResults,+    listGroups_nextToken,+    listGroups_identityStoreId,++    -- * Destructuring the Response+    ListGroupsResponse (..),+    newListGroupsResponse,++    -- * Response Lenses+    listGroupsResponse_nextToken,+    listGroupsResponse_httpStatus,+    listGroupsResponse_groups,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListGroups' smart constructor.+data ListGroups = ListGroups'+  { -- | A list of @Filter@ objects, which is used in the @ListUsers@ and+    -- @ListGroups@ requests.+    filters :: Prelude.Maybe [Filter],+    -- | The maximum number of results to be returned per request. This parameter+    -- is used in the @ListUsers@ and @ListGroups@ requests to specify how many+    -- results to return in one page. The length limit is 50 characters.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token used for the @ListUsers@ and @ListGroups@ API+    -- operations. This value is generated by the identity store service. It is+    -- returned in the API response if the total results are more than the size+    -- of one page. This token is also returned when it is used in the API+    -- request to search for the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The globally unique identifier for the identity store, such as+    -- @d-1234567890@. In this example, @d-@ is a fixed prefix, and+    -- @1234567890@ is a randomly generated string that contains numbers and+    -- lower case letters. This value is generated at the time that a new+    -- identity store is created.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listGroups_filters' - A list of @Filter@ objects, which is used in the @ListUsers@ and+-- @ListGroups@ requests.+--+-- 'maxResults', 'listGroups_maxResults' - The maximum number of results to be returned per request. This parameter+-- is used in the @ListUsers@ and @ListGroups@ requests to specify how many+-- results to return in one page. The length limit is 50 characters.+--+-- 'nextToken', 'listGroups_nextToken' - The pagination token used for the @ListUsers@ and @ListGroups@ API+-- operations. This value is generated by the identity store service. It is+-- returned in the API response if the total results are more than the size+-- of one page. This token is also returned when it is used in the API+-- request to search for the next page.+--+-- 'identityStoreId', 'listGroups_identityStoreId' - The globally unique identifier for the identity store, such as+-- @d-1234567890@. In this example, @d-@ is a fixed prefix, and+-- @1234567890@ is a randomly generated string that contains numbers and+-- lower case letters. This value is generated at the time that a new+-- identity store is created.+newListGroups ::+  -- | 'identityStoreId'+  Prelude.Text ->+  ListGroups+newListGroups pIdentityStoreId_ =+  ListGroups'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      identityStoreId = pIdentityStoreId_+    }++-- | A list of @Filter@ objects, which is used in the @ListUsers@ and+-- @ListGroups@ requests.+listGroups_filters :: Lens.Lens' ListGroups (Prelude.Maybe [Filter])+listGroups_filters = Lens.lens (\ListGroups' {filters} -> filters) (\s@ListGroups' {} a -> s {filters = a} :: ListGroups) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of results to be returned per request. This parameter+-- is used in the @ListUsers@ and @ListGroups@ requests to specify how many+-- results to return in one page. The length limit is 50 characters.+listGroups_maxResults :: Lens.Lens' ListGroups (Prelude.Maybe Prelude.Natural)+listGroups_maxResults = Lens.lens (\ListGroups' {maxResults} -> maxResults) (\s@ListGroups' {} a -> s {maxResults = a} :: ListGroups)++-- | The pagination token used for the @ListUsers@ and @ListGroups@ API+-- operations. This value is generated by the identity store service. It is+-- returned in the API response if the total results are more than the size+-- of one page. This token is also returned when it is used in the API+-- request to search for the next page.+listGroups_nextToken :: Lens.Lens' ListGroups (Prelude.Maybe Prelude.Text)+listGroups_nextToken = Lens.lens (\ListGroups' {nextToken} -> nextToken) (\s@ListGroups' {} a -> s {nextToken = a} :: ListGroups)++-- | The globally unique identifier for the identity store, such as+-- @d-1234567890@. In this example, @d-@ is a fixed prefix, and+-- @1234567890@ is a randomly generated string that contains numbers and+-- lower case letters. This value is generated at the time that a new+-- identity store is created.+listGroups_identityStoreId :: Lens.Lens' ListGroups Prelude.Text+listGroups_identityStoreId = Lens.lens (\ListGroups' {identityStoreId} -> identityStoreId) (\s@ListGroups' {} a -> s {identityStoreId = a} :: ListGroups)++instance Core.AWSPager ListGroups where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listGroupsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop (rs Lens.^. listGroupsResponse_groups) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listGroups_nextToken+          Lens..~ rs+          Lens.^? listGroupsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListGroups where+  type AWSResponse ListGroups = ListGroupsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListGroupsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "Groups" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListGroups where+  hashWithSalt _salt ListGroups' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` identityStoreId++instance Prelude.NFData ListGroups where+  rnf ListGroups' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf identityStoreId++instance Data.ToHeaders ListGroups where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.ListGroups" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListGroups where+  toJSON ListGroups' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId)+          ]+      )++instance Data.ToPath ListGroups where+  toPath = Prelude.const "/"++instance Data.ToQuery ListGroups where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListGroupsResponse' smart constructor.+data ListGroupsResponse = ListGroupsResponse'+  { -- | The pagination token used for the @ListUsers@ and @ListGroups@ API+    -- operations. This value is generated by the identity store service. It is+    -- returned in the API response if the total results are more than the size+    -- of one page. This token is also returned when it1 is used in the API+    -- request to search for the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of @Group@ objects in the identity store.+    groups :: [Group]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listGroupsResponse_nextToken' - The pagination token used for the @ListUsers@ and @ListGroups@ API+-- operations. This value is generated by the identity store service. It is+-- returned in the API response if the total results are more than the size+-- of one page. This token is also returned when it1 is used in the API+-- request to search for the next page.+--+-- 'httpStatus', 'listGroupsResponse_httpStatus' - The response's http status code.+--+-- 'groups', 'listGroupsResponse_groups' - A list of @Group@ objects in the identity store.+newListGroupsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListGroupsResponse+newListGroupsResponse pHttpStatus_ =+  ListGroupsResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      groups = Prelude.mempty+    }++-- | The pagination token used for the @ListUsers@ and @ListGroups@ API+-- operations. This value is generated by the identity store service. It is+-- returned in the API response if the total results are more than the size+-- of one page. This token is also returned when it1 is used in the API+-- request to search for the next page.+listGroupsResponse_nextToken :: Lens.Lens' ListGroupsResponse (Prelude.Maybe Prelude.Text)+listGroupsResponse_nextToken = Lens.lens (\ListGroupsResponse' {nextToken} -> nextToken) (\s@ListGroupsResponse' {} a -> s {nextToken = a} :: ListGroupsResponse)++-- | The response's http status code.+listGroupsResponse_httpStatus :: Lens.Lens' ListGroupsResponse Prelude.Int+listGroupsResponse_httpStatus = Lens.lens (\ListGroupsResponse' {httpStatus} -> httpStatus) (\s@ListGroupsResponse' {} a -> s {httpStatus = a} :: ListGroupsResponse)++-- | A list of @Group@ objects in the identity store.+listGroupsResponse_groups :: Lens.Lens' ListGroupsResponse [Group]+listGroupsResponse_groups = Lens.lens (\ListGroupsResponse' {groups} -> groups) (\s@ListGroupsResponse' {} a -> s {groups = a} :: ListGroupsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListGroupsResponse where+  rnf ListGroupsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf groups
+ gen/Amazonka/IdentityStore/ListUsers.hs view
@@ -0,0 +1,287 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.ListUsers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all users in the identity store. Returns a paginated list of+-- complete @User@ objects. Filtering for a @User@ by the @UserName@+-- attribute is deprecated. Instead, use the @GetUserId@ API action.+--+-- This operation returns paginated results.+module Amazonka.IdentityStore.ListUsers+  ( -- * Creating a Request+    ListUsers (..),+    newListUsers,++    -- * Request Lenses+    listUsers_filters,+    listUsers_maxResults,+    listUsers_nextToken,+    listUsers_identityStoreId,++    -- * Destructuring the Response+    ListUsersResponse (..),+    newListUsersResponse,++    -- * Response Lenses+    listUsersResponse_nextToken,+    listUsersResponse_httpStatus,+    listUsersResponse_users,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListUsers' smart constructor.+data ListUsers = ListUsers'+  { -- | A list of @Filter@ objects, which is used in the @ListUsers@ and+    -- @ListGroups@ requests.+    filters :: Prelude.Maybe [Filter],+    -- | The maximum number of results to be returned per request. This parameter+    -- is used in the @ListUsers@ and @ListGroups@ requests to specify how many+    -- results to return in one page. The length limit is 50 characters.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token used for the @ListUsers@ and @ListGroups@ API+    -- operations. This value is generated by the identity store service. It is+    -- returned in the API response if the total results are more than the size+    -- of one page. This token is also returned when it is used in the API+    -- request to search for the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The globally unique identifier for the identity store, such as+    -- @d-1234567890@. In this example, @d-@ is a fixed prefix, and+    -- @1234567890@ is a randomly generated string that contains numbers and+    -- lower case letters. This value is generated at the time that a new+    -- identity store is created.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListUsers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listUsers_filters' - A list of @Filter@ objects, which is used in the @ListUsers@ and+-- @ListGroups@ requests.+--+-- 'maxResults', 'listUsers_maxResults' - The maximum number of results to be returned per request. This parameter+-- is used in the @ListUsers@ and @ListGroups@ requests to specify how many+-- results to return in one page. The length limit is 50 characters.+--+-- 'nextToken', 'listUsers_nextToken' - The pagination token used for the @ListUsers@ and @ListGroups@ API+-- operations. This value is generated by the identity store service. It is+-- returned in the API response if the total results are more than the size+-- of one page. This token is also returned when it is used in the API+-- request to search for the next page.+--+-- 'identityStoreId', 'listUsers_identityStoreId' - The globally unique identifier for the identity store, such as+-- @d-1234567890@. In this example, @d-@ is a fixed prefix, and+-- @1234567890@ is a randomly generated string that contains numbers and+-- lower case letters. This value is generated at the time that a new+-- identity store is created.+newListUsers ::+  -- | 'identityStoreId'+  Prelude.Text ->+  ListUsers+newListUsers pIdentityStoreId_ =+  ListUsers'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      identityStoreId = pIdentityStoreId_+    }++-- | A list of @Filter@ objects, which is used in the @ListUsers@ and+-- @ListGroups@ requests.+listUsers_filters :: Lens.Lens' ListUsers (Prelude.Maybe [Filter])+listUsers_filters = Lens.lens (\ListUsers' {filters} -> filters) (\s@ListUsers' {} a -> s {filters = a} :: ListUsers) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of results to be returned per request. This parameter+-- is used in the @ListUsers@ and @ListGroups@ requests to specify how many+-- results to return in one page. The length limit is 50 characters.+listUsers_maxResults :: Lens.Lens' ListUsers (Prelude.Maybe Prelude.Natural)+listUsers_maxResults = Lens.lens (\ListUsers' {maxResults} -> maxResults) (\s@ListUsers' {} a -> s {maxResults = a} :: ListUsers)++-- | The pagination token used for the @ListUsers@ and @ListGroups@ API+-- operations. This value is generated by the identity store service. It is+-- returned in the API response if the total results are more than the size+-- of one page. This token is also returned when it is used in the API+-- request to search for the next page.+listUsers_nextToken :: Lens.Lens' ListUsers (Prelude.Maybe Prelude.Text)+listUsers_nextToken = Lens.lens (\ListUsers' {nextToken} -> nextToken) (\s@ListUsers' {} a -> s {nextToken = a} :: ListUsers)++-- | The globally unique identifier for the identity store, such as+-- @d-1234567890@. In this example, @d-@ is a fixed prefix, and+-- @1234567890@ is a randomly generated string that contains numbers and+-- lower case letters. This value is generated at the time that a new+-- identity store is created.+listUsers_identityStoreId :: Lens.Lens' ListUsers Prelude.Text+listUsers_identityStoreId = Lens.lens (\ListUsers' {identityStoreId} -> identityStoreId) (\s@ListUsers' {} a -> s {identityStoreId = a} :: ListUsers)++instance Core.AWSPager ListUsers where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listUsersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop (rs Lens.^. listUsersResponse_users) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listUsers_nextToken+          Lens..~ rs+          Lens.^? listUsersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListUsers where+  type AWSResponse ListUsers = ListUsersResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListUsersResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "Users" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListUsers where+  hashWithSalt _salt ListUsers' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` identityStoreId++instance Prelude.NFData ListUsers where+  rnf ListUsers' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf identityStoreId++instance Data.ToHeaders ListUsers where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("AWSIdentityStore.ListUsers" :: Prelude.ByteString),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListUsers where+  toJSON ListUsers' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId)+          ]+      )++instance Data.ToPath ListUsers where+  toPath = Prelude.const "/"++instance Data.ToQuery ListUsers where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListUsersResponse' smart constructor.+data ListUsersResponse = ListUsersResponse'+  { -- | The pagination token used for the @ListUsers@ and @ListGroups@ API+    -- operations. This value is generated by the identity store service. It is+    -- returned in the API response if the total results are more than the size+    -- of one page. This token is also returned when it is used in the API+    -- request to search for the next page.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of @User@ objects in the identity store.+    users :: [User]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListUsersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listUsersResponse_nextToken' - The pagination token used for the @ListUsers@ and @ListGroups@ API+-- operations. This value is generated by the identity store service. It is+-- returned in the API response if the total results are more than the size+-- of one page. This token is also returned when it is used in the API+-- request to search for the next page.+--+-- 'httpStatus', 'listUsersResponse_httpStatus' - The response's http status code.+--+-- 'users', 'listUsersResponse_users' - A list of @User@ objects in the identity store.+newListUsersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListUsersResponse+newListUsersResponse pHttpStatus_ =+  ListUsersResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      users = Prelude.mempty+    }++-- | The pagination token used for the @ListUsers@ and @ListGroups@ API+-- operations. This value is generated by the identity store service. It is+-- returned in the API response if the total results are more than the size+-- of one page. This token is also returned when it is used in the API+-- request to search for the next page.+listUsersResponse_nextToken :: Lens.Lens' ListUsersResponse (Prelude.Maybe Prelude.Text)+listUsersResponse_nextToken = Lens.lens (\ListUsersResponse' {nextToken} -> nextToken) (\s@ListUsersResponse' {} a -> s {nextToken = a} :: ListUsersResponse)++-- | The response's http status code.+listUsersResponse_httpStatus :: Lens.Lens' ListUsersResponse Prelude.Int+listUsersResponse_httpStatus = Lens.lens (\ListUsersResponse' {httpStatus} -> httpStatus) (\s@ListUsersResponse' {} a -> s {httpStatus = a} :: ListUsersResponse)++-- | A list of @User@ objects in the identity store.+listUsersResponse_users :: Lens.Lens' ListUsersResponse [User]+listUsersResponse_users = Lens.lens (\ListUsersResponse' {users} -> users) (\s@ListUsersResponse' {} a -> s {users = a} :: ListUsersResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListUsersResponse where+  rnf ListUsersResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf users
+ gen/Amazonka/IdentityStore/Types.hs view
@@ -0,0 +1,297 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _ThrottlingException,+    _ValidationException,++    -- * Address+    Address (..),+    newAddress,+    address_country,+    address_formatted,+    address_locality,+    address_postalCode,+    address_primary,+    address_region,+    address_streetAddress,+    address_type,++    -- * AlternateIdentifier+    AlternateIdentifier (..),+    newAlternateIdentifier,+    alternateIdentifier_externalId,+    alternateIdentifier_uniqueAttribute,++    -- * AttributeOperation+    AttributeOperation (..),+    newAttributeOperation,+    attributeOperation_attributeValue,+    attributeOperation_attributePath,++    -- * AttributeValue+    AttributeValue (..),+    newAttributeValue,++    -- * Email+    Email (..),+    newEmail,+    email_primary,+    email_type,+    email_value,++    -- * ExternalId+    ExternalId (..),+    newExternalId,+    externalId_issuer,+    externalId_id,++    -- * Filter+    Filter (..),+    newFilter,+    filter_attributePath,+    filter_attributeValue,++    -- * Group+    Group (..),+    newGroup,+    group_description,+    group_displayName,+    group_externalIds,+    group_groupId,+    group_identityStoreId,++    -- * GroupMembership+    GroupMembership (..),+    newGroupMembership,+    groupMembership_groupId,+    groupMembership_memberId,+    groupMembership_membershipId,+    groupMembership_identityStoreId,++    -- * GroupMembershipExistenceResult+    GroupMembershipExistenceResult (..),+    newGroupMembershipExistenceResult,+    groupMembershipExistenceResult_groupId,+    groupMembershipExistenceResult_memberId,+    groupMembershipExistenceResult_membershipExists,++    -- * MemberId+    MemberId (..),+    newMemberId,+    memberId_userId,++    -- * Name+    Name (..),+    newName,+    name_familyName,+    name_formatted,+    name_givenName,+    name_honorificPrefix,+    name_honorificSuffix,+    name_middleName,++    -- * PhoneNumber+    PhoneNumber (..),+    newPhoneNumber,+    phoneNumber_primary,+    phoneNumber_type,+    phoneNumber_value,++    -- * UniqueAttribute+    UniqueAttribute (..),+    newUniqueAttribute,+    uniqueAttribute_attributePath,+    uniqueAttribute_attributeValue,++    -- * User+    User (..),+    newUser,+    user_addresses,+    user_displayName,+    user_emails,+    user_externalIds,+    user_locale,+    user_name,+    user_nickName,+    user_phoneNumbers,+    user_preferredLanguage,+    user_profileUrl,+    user_timezone,+    user_title,+    user_userName,+    user_userType,+    user_userId,+    user_identityStoreId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.IdentityStore.Types.Address+import Amazonka.IdentityStore.Types.AlternateIdentifier+import Amazonka.IdentityStore.Types.AttributeOperation+import Amazonka.IdentityStore.Types.AttributeValue+import Amazonka.IdentityStore.Types.Email+import Amazonka.IdentityStore.Types.ExternalId+import Amazonka.IdentityStore.Types.Filter+import Amazonka.IdentityStore.Types.Group+import Amazonka.IdentityStore.Types.GroupMembership+import Amazonka.IdentityStore.Types.GroupMembershipExistenceResult+import Amazonka.IdentityStore.Types.MemberId+import Amazonka.IdentityStore.Types.Name+import Amazonka.IdentityStore.Types.PhoneNumber+import Amazonka.IdentityStore.Types.UniqueAttribute+import Amazonka.IdentityStore.Types.User+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-06-15@ of the Amazon SSO Identity Store SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "IdentityStore",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "identitystore",+      Core.signingName = "identitystore",+      Core.version = "2020-06-15",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "IdentityStore",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | You do not have sufficient access to perform this action.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"++-- | This request cannot be completed for one of the following reasons:+--+-- -   Performing the requested operation would violate an existing+--     uniqueness claim in the identity store. Resolve the conflict before+--     retrying this request.+--+-- -   The requested resource was being concurrently modified by another+--     request.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"++-- | The request processing has failed because of an unknown error, exception+-- or failure with an internal server.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"++-- | Indicates that a requested resource is not found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"++-- | The request would cause the number of users or groups in the identity+-- store to exceed the maximum allowed.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"++-- | Indicates that the principal has crossed the throttling limits of the+-- API operations.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"++-- | The request failed because it contains a syntax error.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"
+ gen/Amazonka/IdentityStore/Types/Address.hs view
@@ -0,0 +1,174 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.Address+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.Address where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The address associated with the specified user.+--+-- /See:/ 'newAddress' smart constructor.+data Address = Address'+  { -- | The country of the address.+    country :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string containing a formatted version of the address for display.+    formatted :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string of the address locality.+    locality :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The postal code of the address.+    postalCode :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A Boolean value representing whether this is the primary address for the+    -- associated resource.+    primary :: Prelude.Maybe (Data.Sensitive Prelude.Bool),+    -- | The region of the address.+    region :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The street of the address.+    streetAddress :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string representing the type of address. For example, \"Home.\"+    type' :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Address' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'country', 'address_country' - The country of the address.+--+-- 'formatted', 'address_formatted' - A string containing a formatted version of the address for display.+--+-- 'locality', 'address_locality' - A string of the address locality.+--+-- 'postalCode', 'address_postalCode' - The postal code of the address.+--+-- 'primary', 'address_primary' - A Boolean value representing whether this is the primary address for the+-- associated resource.+--+-- 'region', 'address_region' - The region of the address.+--+-- 'streetAddress', 'address_streetAddress' - The street of the address.+--+-- 'type'', 'address_type' - A string representing the type of address. For example, \"Home.\"+newAddress ::+  Address+newAddress =+  Address'+    { country = Prelude.Nothing,+      formatted = Prelude.Nothing,+      locality = Prelude.Nothing,+      postalCode = Prelude.Nothing,+      primary = Prelude.Nothing,+      region = Prelude.Nothing,+      streetAddress = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The country of the address.+address_country :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_country = Lens.lens (\Address' {country} -> country) (\s@Address' {} a -> s {country = a} :: Address) Prelude.. Lens.mapping Data._Sensitive++-- | A string containing a formatted version of the address for display.+address_formatted :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_formatted = Lens.lens (\Address' {formatted} -> formatted) (\s@Address' {} a -> s {formatted = a} :: Address) Prelude.. Lens.mapping Data._Sensitive++-- | A string of the address locality.+address_locality :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_locality = Lens.lens (\Address' {locality} -> locality) (\s@Address' {} a -> s {locality = a} :: Address) Prelude.. Lens.mapping Data._Sensitive++-- | The postal code of the address.+address_postalCode :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_postalCode = Lens.lens (\Address' {postalCode} -> postalCode) (\s@Address' {} a -> s {postalCode = a} :: Address) Prelude.. Lens.mapping Data._Sensitive++-- | A Boolean value representing whether this is the primary address for the+-- associated resource.+address_primary :: Lens.Lens' Address (Prelude.Maybe Prelude.Bool)+address_primary = Lens.lens (\Address' {primary} -> primary) (\s@Address' {} a -> s {primary = a} :: Address) Prelude.. Lens.mapping Data._Sensitive++-- | The region of the address.+address_region :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_region = Lens.lens (\Address' {region} -> region) (\s@Address' {} a -> s {region = a} :: Address) Prelude.. Lens.mapping Data._Sensitive++-- | The street of the address.+address_streetAddress :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_streetAddress = Lens.lens (\Address' {streetAddress} -> streetAddress) (\s@Address' {} a -> s {streetAddress = a} :: Address) Prelude.. Lens.mapping Data._Sensitive++-- | A string representing the type of address. For example, \"Home.\"+address_type :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_type = Lens.lens (\Address' {type'} -> type') (\s@Address' {} a -> s {type' = a} :: Address) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON Address where+  parseJSON =+    Data.withObject+      "Address"+      ( \x ->+          Address'+            Prelude.<$> (x Data..:? "Country")+            Prelude.<*> (x Data..:? "Formatted")+            Prelude.<*> (x Data..:? "Locality")+            Prelude.<*> (x Data..:? "PostalCode")+            Prelude.<*> (x Data..:? "Primary")+            Prelude.<*> (x Data..:? "Region")+            Prelude.<*> (x Data..:? "StreetAddress")+            Prelude.<*> (x Data..:? "Type")+      )++instance Prelude.Hashable Address where+  hashWithSalt _salt Address' {..} =+    _salt+      `Prelude.hashWithSalt` country+      `Prelude.hashWithSalt` formatted+      `Prelude.hashWithSalt` locality+      `Prelude.hashWithSalt` postalCode+      `Prelude.hashWithSalt` primary+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` streetAddress+      `Prelude.hashWithSalt` type'++instance Prelude.NFData Address where+  rnf Address' {..} =+    Prelude.rnf country+      `Prelude.seq` Prelude.rnf formatted+      `Prelude.seq` Prelude.rnf locality+      `Prelude.seq` Prelude.rnf postalCode+      `Prelude.seq` Prelude.rnf primary+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf streetAddress+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON Address where+  toJSON Address' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Country" Data..=) Prelude.<$> country,+            ("Formatted" Data..=) Prelude.<$> formatted,+            ("Locality" Data..=) Prelude.<$> locality,+            ("PostalCode" Data..=) Prelude.<$> postalCode,+            ("Primary" Data..=) Prelude.<$> primary,+            ("Region" Data..=) Prelude.<$> region,+            ("StreetAddress" Data..=) Prelude.<$> streetAddress,+            ("Type" Data..=) Prelude.<$> type'+          ]+      )
+ gen/Amazonka/IdentityStore/Types/AlternateIdentifier.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.AlternateIdentifier+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.AlternateIdentifier where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types.ExternalId+import Amazonka.IdentityStore.Types.UniqueAttribute+import qualified Amazonka.Prelude as Prelude++-- | A unique identifier for a user or group that is not the primary+-- identifier. This value can be an identifier from an external identity+-- provider (IdP) that is associated with the user, the group, or a unique+-- attribute. For example, a unique @GroupDisplayName@.+--+-- /See:/ 'newAlternateIdentifier' smart constructor.+data AlternateIdentifier = AlternateIdentifier'+  { -- | The identifier issued to this resource by an external identity provider.+    externalId :: Prelude.Maybe ExternalId,+    -- | An entity attribute that\'s unique to a specific entity.+    uniqueAttribute :: Prelude.Maybe UniqueAttribute+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AlternateIdentifier' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'externalId', 'alternateIdentifier_externalId' - The identifier issued to this resource by an external identity provider.+--+-- 'uniqueAttribute', 'alternateIdentifier_uniqueAttribute' - An entity attribute that\'s unique to a specific entity.+newAlternateIdentifier ::+  AlternateIdentifier+newAlternateIdentifier =+  AlternateIdentifier'+    { externalId = Prelude.Nothing,+      uniqueAttribute = Prelude.Nothing+    }++-- | The identifier issued to this resource by an external identity provider.+alternateIdentifier_externalId :: Lens.Lens' AlternateIdentifier (Prelude.Maybe ExternalId)+alternateIdentifier_externalId = Lens.lens (\AlternateIdentifier' {externalId} -> externalId) (\s@AlternateIdentifier' {} a -> s {externalId = a} :: AlternateIdentifier)++-- | An entity attribute that\'s unique to a specific entity.+alternateIdentifier_uniqueAttribute :: Lens.Lens' AlternateIdentifier (Prelude.Maybe UniqueAttribute)+alternateIdentifier_uniqueAttribute = Lens.lens (\AlternateIdentifier' {uniqueAttribute} -> uniqueAttribute) (\s@AlternateIdentifier' {} a -> s {uniqueAttribute = a} :: AlternateIdentifier)++instance Prelude.Hashable AlternateIdentifier where+  hashWithSalt _salt AlternateIdentifier' {..} =+    _salt+      `Prelude.hashWithSalt` externalId+      `Prelude.hashWithSalt` uniqueAttribute++instance Prelude.NFData AlternateIdentifier where+  rnf AlternateIdentifier' {..} =+    Prelude.rnf externalId+      `Prelude.seq` Prelude.rnf uniqueAttribute++instance Data.ToJSON AlternateIdentifier where+  toJSON AlternateIdentifier' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ExternalId" Data..=) Prelude.<$> externalId,+            ("UniqueAttribute" Data..=)+              Prelude.<$> uniqueAttribute+          ]+      )
+ gen/Amazonka/IdentityStore/Types/AttributeOperation.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.AttributeOperation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.AttributeOperation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types.AttributeValue+import qualified Amazonka.Prelude as Prelude++-- | An operation that applies to the requested group. This operation might+-- add, replace, or remove an attribute.+--+-- /See:/ 'newAttributeOperation' smart constructor.+data AttributeOperation = AttributeOperation'+  { -- | The value of the attribute. This is a @Document@ type. This type is not+    -- supported by Java V1, Go V1, and older versions of the AWS CLI.+    attributeValue :: Prelude.Maybe AttributeValue,+    -- | A string representation of the path to a given attribute or+    -- sub-attribute. Supports JMESPath.+    attributePath :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AttributeOperation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributeValue', 'attributeOperation_attributeValue' - The value of the attribute. This is a @Document@ type. This type is not+-- supported by Java V1, Go V1, and older versions of the AWS CLI.+--+-- 'attributePath', 'attributeOperation_attributePath' - A string representation of the path to a given attribute or+-- sub-attribute. Supports JMESPath.+newAttributeOperation ::+  -- | 'attributePath'+  Prelude.Text ->+  AttributeOperation+newAttributeOperation pAttributePath_ =+  AttributeOperation'+    { attributeValue =+        Prelude.Nothing,+      attributePath = pAttributePath_+    }++-- | The value of the attribute. This is a @Document@ type. This type is not+-- supported by Java V1, Go V1, and older versions of the AWS CLI.+attributeOperation_attributeValue :: Lens.Lens' AttributeOperation (Prelude.Maybe AttributeValue)+attributeOperation_attributeValue = Lens.lens (\AttributeOperation' {attributeValue} -> attributeValue) (\s@AttributeOperation' {} a -> s {attributeValue = a} :: AttributeOperation)++-- | A string representation of the path to a given attribute or+-- sub-attribute. Supports JMESPath.+attributeOperation_attributePath :: Lens.Lens' AttributeOperation Prelude.Text+attributeOperation_attributePath = Lens.lens (\AttributeOperation' {attributePath} -> attributePath) (\s@AttributeOperation' {} a -> s {attributePath = a} :: AttributeOperation)++instance Prelude.Hashable AttributeOperation where+  hashWithSalt _salt AttributeOperation' {..} =+    _salt+      `Prelude.hashWithSalt` attributeValue+      `Prelude.hashWithSalt` attributePath++instance Prelude.NFData AttributeOperation where+  rnf AttributeOperation' {..} =+    Prelude.rnf attributeValue+      `Prelude.seq` Prelude.rnf attributePath++instance Data.ToJSON AttributeOperation where+  toJSON AttributeOperation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AttributeValue" Data..=)+              Prelude.<$> attributeValue,+            Prelude.Just+              ("AttributePath" Data..= attributePath)+          ]+      )
+ gen/Amazonka/IdentityStore/Types/AttributeValue.hs view
@@ -0,0 +1,52 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.AttributeValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.AttributeValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The value of the attribute. This is a @Document@ type. This type is not+-- supported by Java V1, Go V1, and older versions of the AWS CLI.+--+-- /See:/ 'newAttributeValue' smart constructor.+data AttributeValue = AttributeValue'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AttributeValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newAttributeValue ::+  AttributeValue+newAttributeValue = AttributeValue'++instance Prelude.Hashable AttributeValue where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData AttributeValue where+  rnf _ = ()++instance Data.ToJSON AttributeValue where+  toJSON = Prelude.const (Data.Object Prelude.mempty)
+ gen/Amazonka/IdentityStore/Types/Email.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.Email+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.Email where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The email address associated with the user.+--+-- /See:/ 'newEmail' smart constructor.+data Email = Email'+  { -- | A Boolean value representing whether this is the primary email address+    -- for the associated resource.+    primary :: Prelude.Maybe (Data.Sensitive Prelude.Bool),+    -- | A string representing the type of address. For example, \"Work.\"+    type' :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string containing an email address. For example,+    -- \"johndoe\@amazon.com.\"+    value :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Email' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'primary', 'email_primary' - A Boolean value representing whether this is the primary email address+-- for the associated resource.+--+-- 'type'', 'email_type' - A string representing the type of address. For example, \"Work.\"+--+-- 'value', 'email_value' - A string containing an email address. For example,+-- \"johndoe\@amazon.com.\"+newEmail ::+  Email+newEmail =+  Email'+    { primary = Prelude.Nothing,+      type' = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | A Boolean value representing whether this is the primary email address+-- for the associated resource.+email_primary :: Lens.Lens' Email (Prelude.Maybe Prelude.Bool)+email_primary = Lens.lens (\Email' {primary} -> primary) (\s@Email' {} a -> s {primary = a} :: Email) Prelude.. Lens.mapping Data._Sensitive++-- | A string representing the type of address. For example, \"Work.\"+email_type :: Lens.Lens' Email (Prelude.Maybe Prelude.Text)+email_type = Lens.lens (\Email' {type'} -> type') (\s@Email' {} a -> s {type' = a} :: Email) Prelude.. Lens.mapping Data._Sensitive++-- | A string containing an email address. For example,+-- \"johndoe\@amazon.com.\"+email_value :: Lens.Lens' Email (Prelude.Maybe Prelude.Text)+email_value = Lens.lens (\Email' {value} -> value) (\s@Email' {} a -> s {value = a} :: Email) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON Email where+  parseJSON =+    Data.withObject+      "Email"+      ( \x ->+          Email'+            Prelude.<$> (x Data..:? "Primary")+            Prelude.<*> (x Data..:? "Type")+            Prelude.<*> (x Data..:? "Value")+      )++instance Prelude.Hashable Email where+  hashWithSalt _salt Email' {..} =+    _salt+      `Prelude.hashWithSalt` primary+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` value++instance Prelude.NFData Email where+  rnf Email' {..} =+    Prelude.rnf primary+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Email where+  toJSON Email' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Primary" Data..=) Prelude.<$> primary,+            ("Type" Data..=) Prelude.<$> type',+            ("Value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/IdentityStore/Types/ExternalId.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.ExternalId+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.ExternalId where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The identifier issued to this resource by an external identity provider.+--+-- /See:/ 'newExternalId' smart constructor.+data ExternalId = ExternalId'+  { -- | The issuer for an external identifier.+    issuer :: Data.Sensitive Prelude.Text,+    -- | The identifier issued to this resource by an external identity provider.+    id :: Data.Sensitive Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExternalId' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'issuer', 'externalId_issuer' - The issuer for an external identifier.+--+-- 'id', 'externalId_id' - The identifier issued to this resource by an external identity provider.+newExternalId ::+  -- | 'issuer'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  ExternalId+newExternalId pIssuer_ pId_ =+  ExternalId'+    { issuer =+        Data._Sensitive Lens.# pIssuer_,+      id = Data._Sensitive Lens.# pId_+    }++-- | The issuer for an external identifier.+externalId_issuer :: Lens.Lens' ExternalId Prelude.Text+externalId_issuer = Lens.lens (\ExternalId' {issuer} -> issuer) (\s@ExternalId' {} a -> s {issuer = a} :: ExternalId) Prelude.. Data._Sensitive++-- | The identifier issued to this resource by an external identity provider.+externalId_id :: Lens.Lens' ExternalId Prelude.Text+externalId_id = Lens.lens (\ExternalId' {id} -> id) (\s@ExternalId' {} a -> s {id = a} :: ExternalId) Prelude.. Data._Sensitive++instance Data.FromJSON ExternalId where+  parseJSON =+    Data.withObject+      "ExternalId"+      ( \x ->+          ExternalId'+            Prelude.<$> (x Data..: "Issuer")+            Prelude.<*> (x Data..: "Id")+      )++instance Prelude.Hashable ExternalId where+  hashWithSalt _salt ExternalId' {..} =+    _salt+      `Prelude.hashWithSalt` issuer+      `Prelude.hashWithSalt` id++instance Prelude.NFData ExternalId where+  rnf ExternalId' {..} =+    Prelude.rnf issuer `Prelude.seq` Prelude.rnf id++instance Data.ToJSON ExternalId where+  toJSON ExternalId' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Issuer" Data..= issuer),+            Prelude.Just ("Id" Data..= id)+          ]+      )
+ gen/Amazonka/IdentityStore/Types/Filter.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.Filter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.Filter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A query filter used by @ListUsers@ and @ListGroups@. This filter object+-- provides the attribute name and attribute value to search users or+-- groups.+--+-- /See:/ 'newFilter' smart constructor.+data Filter = Filter'+  { -- | The attribute path that is used to specify which attribute name to+    -- search. Length limit is 255 characters. For example, @UserName@ is a+    -- valid attribute path for the @ListUsers@ API, and @DisplayName@ is a+    -- valid attribute path for the @ListGroups@ API.+    attributePath :: Prelude.Text,+    -- | Represents the data for an attribute. Each attribute value is described+    -- as a name-value pair.+    attributeValue :: Data.Sensitive Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Filter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributePath', 'filter_attributePath' - The attribute path that is used to specify which attribute name to+-- search. Length limit is 255 characters. For example, @UserName@ is a+-- valid attribute path for the @ListUsers@ API, and @DisplayName@ is a+-- valid attribute path for the @ListGroups@ API.+--+-- 'attributeValue', 'filter_attributeValue' - Represents the data for an attribute. Each attribute value is described+-- as a name-value pair.+newFilter ::+  -- | 'attributePath'+  Prelude.Text ->+  -- | 'attributeValue'+  Prelude.Text ->+  Filter+newFilter pAttributePath_ pAttributeValue_ =+  Filter'+    { attributePath = pAttributePath_,+      attributeValue =+        Data._Sensitive Lens.# pAttributeValue_+    }++-- | The attribute path that is used to specify which attribute name to+-- search. Length limit is 255 characters. For example, @UserName@ is a+-- valid attribute path for the @ListUsers@ API, and @DisplayName@ is a+-- valid attribute path for the @ListGroups@ API.+filter_attributePath :: Lens.Lens' Filter Prelude.Text+filter_attributePath = Lens.lens (\Filter' {attributePath} -> attributePath) (\s@Filter' {} a -> s {attributePath = a} :: Filter)++-- | Represents the data for an attribute. Each attribute value is described+-- as a name-value pair.+filter_attributeValue :: Lens.Lens' Filter Prelude.Text+filter_attributeValue = Lens.lens (\Filter' {attributeValue} -> attributeValue) (\s@Filter' {} a -> s {attributeValue = a} :: Filter) Prelude.. Data._Sensitive++instance Prelude.Hashable Filter where+  hashWithSalt _salt Filter' {..} =+    _salt+      `Prelude.hashWithSalt` attributePath+      `Prelude.hashWithSalt` attributeValue++instance Prelude.NFData Filter where+  rnf Filter' {..} =+    Prelude.rnf attributePath+      `Prelude.seq` Prelude.rnf attributeValue++instance Data.ToJSON Filter where+  toJSON Filter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("AttributePath" Data..= attributePath),+            Prelude.Just+              ("AttributeValue" Data..= attributeValue)+          ]+      )
+ gen/Amazonka/IdentityStore/Types/Group.hs view
@@ -0,0 +1,144 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.Group+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.Group where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types.ExternalId+import qualified Amazonka.Prelude as Prelude++-- | A group object that contains a specified group’s metadata and+-- attributes.+--+-- /See:/ 'newGroup' smart constructor.+data Group = Group'+  { -- | A string containing a description of the specified group.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The group’s display name value. The length limit is 1,024 characters.+    -- This value can consist of letters, accented characters, symbols,+    -- numbers, punctuation, tab, new line, carriage return, space, and+    -- nonbreaking space in this attribute. This value is specified at the time+    -- the group is created and stored as an attribute of the group object in+    -- the identity store.+    displayName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A list of @ExternalId@ objects that contains the identifiers issued to+    -- this resource by an external identity provider.+    externalIds :: Prelude.Maybe (Prelude.NonEmpty ExternalId),+    -- | The identifier for a group in the identity store.+    groupId :: Prelude.Text,+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Group' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'group_description' - A string containing a description of the specified group.+--+-- 'displayName', 'group_displayName' - The group’s display name value. The length limit is 1,024 characters.+-- This value can consist of letters, accented characters, symbols,+-- numbers, punctuation, tab, new line, carriage return, space, and+-- nonbreaking space in this attribute. This value is specified at the time+-- the group is created and stored as an attribute of the group object in+-- the identity store.+--+-- 'externalIds', 'group_externalIds' - A list of @ExternalId@ objects that contains the identifiers issued to+-- this resource by an external identity provider.+--+-- 'groupId', 'group_groupId' - The identifier for a group in the identity store.+--+-- 'identityStoreId', 'group_identityStoreId' - The globally unique identifier for the identity store.+newGroup ::+  -- | 'groupId'+  Prelude.Text ->+  -- | 'identityStoreId'+  Prelude.Text ->+  Group+newGroup pGroupId_ pIdentityStoreId_ =+  Group'+    { description = Prelude.Nothing,+      displayName = Prelude.Nothing,+      externalIds = Prelude.Nothing,+      groupId = pGroupId_,+      identityStoreId = pIdentityStoreId_+    }++-- | A string containing a description of the specified group.+group_description :: Lens.Lens' Group (Prelude.Maybe Prelude.Text)+group_description = Lens.lens (\Group' {description} -> description) (\s@Group' {} a -> s {description = a} :: Group) Prelude.. Lens.mapping Data._Sensitive++-- | The group’s display name value. The length limit is 1,024 characters.+-- This value can consist of letters, accented characters, symbols,+-- numbers, punctuation, tab, new line, carriage return, space, and+-- nonbreaking space in this attribute. This value is specified at the time+-- the group is created and stored as an attribute of the group object in+-- the identity store.+group_displayName :: Lens.Lens' Group (Prelude.Maybe Prelude.Text)+group_displayName = Lens.lens (\Group' {displayName} -> displayName) (\s@Group' {} a -> s {displayName = a} :: Group) Prelude.. Lens.mapping Data._Sensitive++-- | A list of @ExternalId@ objects that contains the identifiers issued to+-- this resource by an external identity provider.+group_externalIds :: Lens.Lens' Group (Prelude.Maybe (Prelude.NonEmpty ExternalId))+group_externalIds = Lens.lens (\Group' {externalIds} -> externalIds) (\s@Group' {} a -> s {externalIds = a} :: Group) Prelude.. Lens.mapping Lens.coerced++-- | The identifier for a group in the identity store.+group_groupId :: Lens.Lens' Group Prelude.Text+group_groupId = Lens.lens (\Group' {groupId} -> groupId) (\s@Group' {} a -> s {groupId = a} :: Group)++-- | The globally unique identifier for the identity store.+group_identityStoreId :: Lens.Lens' Group Prelude.Text+group_identityStoreId = Lens.lens (\Group' {identityStoreId} -> identityStoreId) (\s@Group' {} a -> s {identityStoreId = a} :: Group)++instance Data.FromJSON Group where+  parseJSON =+    Data.withObject+      "Group"+      ( \x ->+          Group'+            Prelude.<$> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "DisplayName")+            Prelude.<*> (x Data..:? "ExternalIds")+            Prelude.<*> (x Data..: "GroupId")+            Prelude.<*> (x Data..: "IdentityStoreId")+      )++instance Prelude.Hashable Group where+  hashWithSalt _salt Group' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` displayName+      `Prelude.hashWithSalt` externalIds+      `Prelude.hashWithSalt` groupId+      `Prelude.hashWithSalt` identityStoreId++instance Prelude.NFData Group where+  rnf Group' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf externalIds+      `Prelude.seq` Prelude.rnf groupId+      `Prelude.seq` Prelude.rnf identityStoreId
+ gen/Amazonka/IdentityStore/Types/GroupMembership.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.GroupMembership+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.GroupMembership where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types.MemberId+import qualified Amazonka.Prelude as Prelude++-- | Contains the identifiers for a group, a group member, and a+-- @GroupMembership@ object in the identity store.+--+-- /See:/ 'newGroupMembership' smart constructor.+data GroupMembership = GroupMembership'+  { -- | The identifier for a group in the identity store.+    groupId :: Prelude.Maybe Prelude.Text,+    -- | An object that contains the identifier of a group member. Setting the+    -- @UserID@ field to the specific identifier for a user indicates that the+    -- user is a member of the group.+    memberId :: Prelude.Maybe MemberId,+    -- | The identifier for a @GroupMembership@ object in an identity store.+    membershipId :: Prelude.Maybe Prelude.Text,+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GroupMembership' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groupId', 'groupMembership_groupId' - The identifier for a group in the identity store.+--+-- 'memberId', 'groupMembership_memberId' - An object that contains the identifier of a group member. Setting the+-- @UserID@ field to the specific identifier for a user indicates that the+-- user is a member of the group.+--+-- 'membershipId', 'groupMembership_membershipId' - The identifier for a @GroupMembership@ object in an identity store.+--+-- 'identityStoreId', 'groupMembership_identityStoreId' - The globally unique identifier for the identity store.+newGroupMembership ::+  -- | 'identityStoreId'+  Prelude.Text ->+  GroupMembership+newGroupMembership pIdentityStoreId_ =+  GroupMembership'+    { groupId = Prelude.Nothing,+      memberId = Prelude.Nothing,+      membershipId = Prelude.Nothing,+      identityStoreId = pIdentityStoreId_+    }++-- | The identifier for a group in the identity store.+groupMembership_groupId :: Lens.Lens' GroupMembership (Prelude.Maybe Prelude.Text)+groupMembership_groupId = Lens.lens (\GroupMembership' {groupId} -> groupId) (\s@GroupMembership' {} a -> s {groupId = a} :: GroupMembership)++-- | An object that contains the identifier of a group member. Setting the+-- @UserID@ field to the specific identifier for a user indicates that the+-- user is a member of the group.+groupMembership_memberId :: Lens.Lens' GroupMembership (Prelude.Maybe MemberId)+groupMembership_memberId = Lens.lens (\GroupMembership' {memberId} -> memberId) (\s@GroupMembership' {} a -> s {memberId = a} :: GroupMembership)++-- | The identifier for a @GroupMembership@ object in an identity store.+groupMembership_membershipId :: Lens.Lens' GroupMembership (Prelude.Maybe Prelude.Text)+groupMembership_membershipId = Lens.lens (\GroupMembership' {membershipId} -> membershipId) (\s@GroupMembership' {} a -> s {membershipId = a} :: GroupMembership)++-- | The globally unique identifier for the identity store.+groupMembership_identityStoreId :: Lens.Lens' GroupMembership Prelude.Text+groupMembership_identityStoreId = Lens.lens (\GroupMembership' {identityStoreId} -> identityStoreId) (\s@GroupMembership' {} a -> s {identityStoreId = a} :: GroupMembership)++instance Data.FromJSON GroupMembership where+  parseJSON =+    Data.withObject+      "GroupMembership"+      ( \x ->+          GroupMembership'+            Prelude.<$> (x Data..:? "GroupId")+            Prelude.<*> (x Data..:? "MemberId")+            Prelude.<*> (x Data..:? "MembershipId")+            Prelude.<*> (x Data..: "IdentityStoreId")+      )++instance Prelude.Hashable GroupMembership where+  hashWithSalt _salt GroupMembership' {..} =+    _salt+      `Prelude.hashWithSalt` groupId+      `Prelude.hashWithSalt` memberId+      `Prelude.hashWithSalt` membershipId+      `Prelude.hashWithSalt` identityStoreId++instance Prelude.NFData GroupMembership where+  rnf GroupMembership' {..} =+    Prelude.rnf groupId+      `Prelude.seq` Prelude.rnf memberId+      `Prelude.seq` Prelude.rnf membershipId+      `Prelude.seq` Prelude.rnf identityStoreId
+ gen/Amazonka/IdentityStore/Types/GroupMembershipExistenceResult.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.GroupMembershipExistenceResult+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.GroupMembershipExistenceResult where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types.MemberId+import qualified Amazonka.Prelude as Prelude++-- | Indicates whether a resource is a member of a group in the identity+-- store.+--+-- /See:/ 'newGroupMembershipExistenceResult' smart constructor.+data GroupMembershipExistenceResult = GroupMembershipExistenceResult'+  { -- | The identifier for a group in the identity store.+    groupId :: Prelude.Maybe Prelude.Text,+    -- | An object that contains the identifier of a group member. Setting the+    -- @UserID@ field to the specific identifier for a user indicates that the+    -- user is a member of the group.+    memberId :: Prelude.Maybe MemberId,+    -- | Indicates whether a membership relation exists or not.+    membershipExists :: Prelude.Maybe (Data.Sensitive Prelude.Bool)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GroupMembershipExistenceResult' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groupId', 'groupMembershipExistenceResult_groupId' - The identifier for a group in the identity store.+--+-- 'memberId', 'groupMembershipExistenceResult_memberId' - An object that contains the identifier of a group member. Setting the+-- @UserID@ field to the specific identifier for a user indicates that the+-- user is a member of the group.+--+-- 'membershipExists', 'groupMembershipExistenceResult_membershipExists' - Indicates whether a membership relation exists or not.+newGroupMembershipExistenceResult ::+  GroupMembershipExistenceResult+newGroupMembershipExistenceResult =+  GroupMembershipExistenceResult'+    { groupId =+        Prelude.Nothing,+      memberId = Prelude.Nothing,+      membershipExists = Prelude.Nothing+    }++-- | The identifier for a group in the identity store.+groupMembershipExistenceResult_groupId :: Lens.Lens' GroupMembershipExistenceResult (Prelude.Maybe Prelude.Text)+groupMembershipExistenceResult_groupId = Lens.lens (\GroupMembershipExistenceResult' {groupId} -> groupId) (\s@GroupMembershipExistenceResult' {} a -> s {groupId = a} :: GroupMembershipExistenceResult)++-- | An object that contains the identifier of a group member. Setting the+-- @UserID@ field to the specific identifier for a user indicates that the+-- user is a member of the group.+groupMembershipExistenceResult_memberId :: Lens.Lens' GroupMembershipExistenceResult (Prelude.Maybe MemberId)+groupMembershipExistenceResult_memberId = Lens.lens (\GroupMembershipExistenceResult' {memberId} -> memberId) (\s@GroupMembershipExistenceResult' {} a -> s {memberId = a} :: GroupMembershipExistenceResult)++-- | Indicates whether a membership relation exists or not.+groupMembershipExistenceResult_membershipExists :: Lens.Lens' GroupMembershipExistenceResult (Prelude.Maybe Prelude.Bool)+groupMembershipExistenceResult_membershipExists = Lens.lens (\GroupMembershipExistenceResult' {membershipExists} -> membershipExists) (\s@GroupMembershipExistenceResult' {} a -> s {membershipExists = a} :: GroupMembershipExistenceResult) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON GroupMembershipExistenceResult where+  parseJSON =+    Data.withObject+      "GroupMembershipExistenceResult"+      ( \x ->+          GroupMembershipExistenceResult'+            Prelude.<$> (x Data..:? "GroupId")+            Prelude.<*> (x Data..:? "MemberId")+            Prelude.<*> (x Data..:? "MembershipExists")+      )++instance+  Prelude.Hashable+    GroupMembershipExistenceResult+  where+  hashWithSalt+    _salt+    GroupMembershipExistenceResult' {..} =+      _salt+        `Prelude.hashWithSalt` groupId+        `Prelude.hashWithSalt` memberId+        `Prelude.hashWithSalt` membershipExists++instance+  Prelude.NFData+    GroupMembershipExistenceResult+  where+  rnf GroupMembershipExistenceResult' {..} =+    Prelude.rnf groupId+      `Prelude.seq` Prelude.rnf memberId+      `Prelude.seq` Prelude.rnf membershipExists
+ gen/Amazonka/IdentityStore/Types/MemberId.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.MemberId+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.MemberId where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An object containing the identifier of a group member.+--+-- /See:/ 'newMemberId' smart constructor.+data MemberId = MemberId'+  { -- | An object containing the identifiers of resources that can be members.+    userId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MemberId' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'userId', 'memberId_userId' - An object containing the identifiers of resources that can be members.+newMemberId ::+  MemberId+newMemberId = MemberId' {userId = Prelude.Nothing}++-- | An object containing the identifiers of resources that can be members.+memberId_userId :: Lens.Lens' MemberId (Prelude.Maybe Prelude.Text)+memberId_userId = Lens.lens (\MemberId' {userId} -> userId) (\s@MemberId' {} a -> s {userId = a} :: MemberId)++instance Data.FromJSON MemberId where+  parseJSON =+    Data.withObject+      "MemberId"+      (\x -> MemberId' Prelude.<$> (x Data..:? "UserId"))++instance Prelude.Hashable MemberId where+  hashWithSalt _salt MemberId' {..} =+    _salt `Prelude.hashWithSalt` userId++instance Prelude.NFData MemberId where+  rnf MemberId' {..} = Prelude.rnf userId++instance Data.ToJSON MemberId where+  toJSON MemberId' {..} =+    Data.object+      ( Prelude.catMaybes+          [("UserId" Data..=) Prelude.<$> userId]+      )
+ gen/Amazonka/IdentityStore/Types/Name.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.Name+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.Name where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The full name of the user.+--+-- /See:/ 'newName' smart constructor.+data Name = Name'+  { -- | The family name of the user.+    familyName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string containing a formatted version of the name for display.+    formatted :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The given name of the user.+    givenName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The honorific prefix of the user. For example, \"Dr.\"+    honorificPrefix :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The honorific suffix of the user. For example, \"M.D.\"+    honorificSuffix :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The middle name of the user.+    middleName :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Name' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'familyName', 'name_familyName' - The family name of the user.+--+-- 'formatted', 'name_formatted' - A string containing a formatted version of the name for display.+--+-- 'givenName', 'name_givenName' - The given name of the user.+--+-- 'honorificPrefix', 'name_honorificPrefix' - The honorific prefix of the user. For example, \"Dr.\"+--+-- 'honorificSuffix', 'name_honorificSuffix' - The honorific suffix of the user. For example, \"M.D.\"+--+-- 'middleName', 'name_middleName' - The middle name of the user.+newName ::+  Name+newName =+  Name'+    { familyName = Prelude.Nothing,+      formatted = Prelude.Nothing,+      givenName = Prelude.Nothing,+      honorificPrefix = Prelude.Nothing,+      honorificSuffix = Prelude.Nothing,+      middleName = Prelude.Nothing+    }++-- | The family name of the user.+name_familyName :: Lens.Lens' Name (Prelude.Maybe Prelude.Text)+name_familyName = Lens.lens (\Name' {familyName} -> familyName) (\s@Name' {} a -> s {familyName = a} :: Name) Prelude.. Lens.mapping Data._Sensitive++-- | A string containing a formatted version of the name for display.+name_formatted :: Lens.Lens' Name (Prelude.Maybe Prelude.Text)+name_formatted = Lens.lens (\Name' {formatted} -> formatted) (\s@Name' {} a -> s {formatted = a} :: Name) Prelude.. Lens.mapping Data._Sensitive++-- | The given name of the user.+name_givenName :: Lens.Lens' Name (Prelude.Maybe Prelude.Text)+name_givenName = Lens.lens (\Name' {givenName} -> givenName) (\s@Name' {} a -> s {givenName = a} :: Name) Prelude.. Lens.mapping Data._Sensitive++-- | The honorific prefix of the user. For example, \"Dr.\"+name_honorificPrefix :: Lens.Lens' Name (Prelude.Maybe Prelude.Text)+name_honorificPrefix = Lens.lens (\Name' {honorificPrefix} -> honorificPrefix) (\s@Name' {} a -> s {honorificPrefix = a} :: Name) Prelude.. Lens.mapping Data._Sensitive++-- | The honorific suffix of the user. For example, \"M.D.\"+name_honorificSuffix :: Lens.Lens' Name (Prelude.Maybe Prelude.Text)+name_honorificSuffix = Lens.lens (\Name' {honorificSuffix} -> honorificSuffix) (\s@Name' {} a -> s {honorificSuffix = a} :: Name) Prelude.. Lens.mapping Data._Sensitive++-- | The middle name of the user.+name_middleName :: Lens.Lens' Name (Prelude.Maybe Prelude.Text)+name_middleName = Lens.lens (\Name' {middleName} -> middleName) (\s@Name' {} a -> s {middleName = a} :: Name) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON Name where+  parseJSON =+    Data.withObject+      "Name"+      ( \x ->+          Name'+            Prelude.<$> (x Data..:? "FamilyName")+            Prelude.<*> (x Data..:? "Formatted")+            Prelude.<*> (x Data..:? "GivenName")+            Prelude.<*> (x Data..:? "HonorificPrefix")+            Prelude.<*> (x Data..:? "HonorificSuffix")+            Prelude.<*> (x Data..:? "MiddleName")+      )++instance Prelude.Hashable Name where+  hashWithSalt _salt Name' {..} =+    _salt+      `Prelude.hashWithSalt` familyName+      `Prelude.hashWithSalt` formatted+      `Prelude.hashWithSalt` givenName+      `Prelude.hashWithSalt` honorificPrefix+      `Prelude.hashWithSalt` honorificSuffix+      `Prelude.hashWithSalt` middleName++instance Prelude.NFData Name where+  rnf Name' {..} =+    Prelude.rnf familyName+      `Prelude.seq` Prelude.rnf formatted+      `Prelude.seq` Prelude.rnf givenName+      `Prelude.seq` Prelude.rnf honorificPrefix+      `Prelude.seq` Prelude.rnf honorificSuffix+      `Prelude.seq` Prelude.rnf middleName++instance Data.ToJSON Name where+  toJSON Name' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FamilyName" Data..=) Prelude.<$> familyName,+            ("Formatted" Data..=) Prelude.<$> formatted,+            ("GivenName" Data..=) Prelude.<$> givenName,+            ("HonorificPrefix" Data..=)+              Prelude.<$> honorificPrefix,+            ("HonorificSuffix" Data..=)+              Prelude.<$> honorificSuffix,+            ("MiddleName" Data..=) Prelude.<$> middleName+          ]+      )
+ gen/Amazonka/IdentityStore/Types/PhoneNumber.hs view
@@ -0,0 +1,115 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.PhoneNumber+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.PhoneNumber where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The phone number associated with the user.+--+-- /See:/ 'newPhoneNumber' smart constructor.+data PhoneNumber = PhoneNumber'+  { -- | A Boolean value representing whether this is the primary phone number+    -- for the associated resource.+    primary :: Prelude.Maybe (Data.Sensitive Prelude.Bool),+    -- | A string representing the type of a phone number. For example,+    -- \"Mobile.\"+    type' :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string containing a phone number. For example, \"8675309\" or \"+1+    -- (800) 123-4567\".+    value :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PhoneNumber' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'primary', 'phoneNumber_primary' - A Boolean value representing whether this is the primary phone number+-- for the associated resource.+--+-- 'type'', 'phoneNumber_type' - A string representing the type of a phone number. For example,+-- \"Mobile.\"+--+-- 'value', 'phoneNumber_value' - A string containing a phone number. For example, \"8675309\" or \"+1+-- (800) 123-4567\".+newPhoneNumber ::+  PhoneNumber+newPhoneNumber =+  PhoneNumber'+    { primary = Prelude.Nothing,+      type' = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | A Boolean value representing whether this is the primary phone number+-- for the associated resource.+phoneNumber_primary :: Lens.Lens' PhoneNumber (Prelude.Maybe Prelude.Bool)+phoneNumber_primary = Lens.lens (\PhoneNumber' {primary} -> primary) (\s@PhoneNumber' {} a -> s {primary = a} :: PhoneNumber) Prelude.. Lens.mapping Data._Sensitive++-- | A string representing the type of a phone number. For example,+-- \"Mobile.\"+phoneNumber_type :: Lens.Lens' PhoneNumber (Prelude.Maybe Prelude.Text)+phoneNumber_type = Lens.lens (\PhoneNumber' {type'} -> type') (\s@PhoneNumber' {} a -> s {type' = a} :: PhoneNumber) Prelude.. Lens.mapping Data._Sensitive++-- | A string containing a phone number. For example, \"8675309\" or \"+1+-- (800) 123-4567\".+phoneNumber_value :: Lens.Lens' PhoneNumber (Prelude.Maybe Prelude.Text)+phoneNumber_value = Lens.lens (\PhoneNumber' {value} -> value) (\s@PhoneNumber' {} a -> s {value = a} :: PhoneNumber) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON PhoneNumber where+  parseJSON =+    Data.withObject+      "PhoneNumber"+      ( \x ->+          PhoneNumber'+            Prelude.<$> (x Data..:? "Primary")+            Prelude.<*> (x Data..:? "Type")+            Prelude.<*> (x Data..:? "Value")+      )++instance Prelude.Hashable PhoneNumber where+  hashWithSalt _salt PhoneNumber' {..} =+    _salt+      `Prelude.hashWithSalt` primary+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` value++instance Prelude.NFData PhoneNumber where+  rnf PhoneNumber' {..} =+    Prelude.rnf primary+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON PhoneNumber where+  toJSON PhoneNumber' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Primary" Data..=) Prelude.<$> primary,+            ("Type" Data..=) Prelude.<$> type',+            ("Value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/IdentityStore/Types/UniqueAttribute.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.UniqueAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.UniqueAttribute where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types.AttributeValue+import qualified Amazonka.Prelude as Prelude++-- | An entity attribute that\'s unique to a specific entity.+--+-- /See:/ 'newUniqueAttribute' smart constructor.+data UniqueAttribute = UniqueAttribute'+  { -- | A string representation of the path to a given attribute or+    -- sub-attribute. Supports JMESPath.+    attributePath :: Prelude.Text,+    -- | The value of the attribute. This is a @Document@ type. This type is not+    -- supported by Java V1, Go V1, and older versions of the AWS CLI.+    attributeValue :: AttributeValue+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UniqueAttribute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributePath', 'uniqueAttribute_attributePath' - A string representation of the path to a given attribute or+-- sub-attribute. Supports JMESPath.+--+-- 'attributeValue', 'uniqueAttribute_attributeValue' - The value of the attribute. This is a @Document@ type. This type is not+-- supported by Java V1, Go V1, and older versions of the AWS CLI.+newUniqueAttribute ::+  -- | 'attributePath'+  Prelude.Text ->+  -- | 'attributeValue'+  AttributeValue ->+  UniqueAttribute+newUniqueAttribute pAttributePath_ pAttributeValue_ =+  UniqueAttribute'+    { attributePath = pAttributePath_,+      attributeValue = pAttributeValue_+    }++-- | A string representation of the path to a given attribute or+-- sub-attribute. Supports JMESPath.+uniqueAttribute_attributePath :: Lens.Lens' UniqueAttribute Prelude.Text+uniqueAttribute_attributePath = Lens.lens (\UniqueAttribute' {attributePath} -> attributePath) (\s@UniqueAttribute' {} a -> s {attributePath = a} :: UniqueAttribute)++-- | The value of the attribute. This is a @Document@ type. This type is not+-- supported by Java V1, Go V1, and older versions of the AWS CLI.+uniqueAttribute_attributeValue :: Lens.Lens' UniqueAttribute AttributeValue+uniqueAttribute_attributeValue = Lens.lens (\UniqueAttribute' {attributeValue} -> attributeValue) (\s@UniqueAttribute' {} a -> s {attributeValue = a} :: UniqueAttribute)++instance Prelude.Hashable UniqueAttribute where+  hashWithSalt _salt UniqueAttribute' {..} =+    _salt+      `Prelude.hashWithSalt` attributePath+      `Prelude.hashWithSalt` attributeValue++instance Prelude.NFData UniqueAttribute where+  rnf UniqueAttribute' {..} =+    Prelude.rnf attributePath+      `Prelude.seq` Prelude.rnf attributeValue++instance Data.ToJSON UniqueAttribute where+  toJSON UniqueAttribute' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("AttributePath" Data..= attributePath),+            Prelude.Just+              ("AttributeValue" Data..= attributeValue)+          ]+      )
+ gen/Amazonka/IdentityStore/Types/User.hs view
@@ -0,0 +1,297 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Types.User+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Types.User where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types.Address+import Amazonka.IdentityStore.Types.Email+import Amazonka.IdentityStore.Types.ExternalId+import Amazonka.IdentityStore.Types.Name+import Amazonka.IdentityStore.Types.PhoneNumber+import qualified Amazonka.Prelude as Prelude++-- | A user object that contains a specified user’s metadata and attributes.+--+-- /See:/ 'newUser' smart constructor.+data User = User'+  { -- | A list of @Address@ objects containing addresses associated with the+    -- user.+    addresses :: Prelude.Maybe (Prelude.NonEmpty Address),+    -- | A string containing the user\'s name that\'s formatted for display when+    -- the user is referenced. For example, \"John Doe.\"+    displayName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A list of @Email@ objects containing email addresses associated with the+    -- user.+    emails :: Prelude.Maybe (Prelude.NonEmpty Email),+    -- | A list of @ExternalId@ objects that contains the identifiers issued to+    -- this resource by an external identity provider.+    externalIds :: Prelude.Maybe (Prelude.NonEmpty ExternalId),+    -- | A string containing the user\'s geographical region or location.+    locale :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | An object containing the user\'s name.+    name :: Prelude.Maybe Name,+    -- | A string containing an alternate name for the user.+    nickName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A list of @PhoneNumber@ objects containing phone numbers associated with+    -- the user.+    phoneNumbers :: Prelude.Maybe (Prelude.NonEmpty PhoneNumber),+    -- | A string containing the preferred language of the user. For example,+    -- \"American English\" or \"en-us.\"+    preferredLanguage :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string containing a URL that may be associated with the user.+    profileUrl :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string containing the user\'s time zone.+    timezone :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string containing the user\'s title. Possible values depend on each+    -- customer\'s specific needs, so they are left unspecified.+    title :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A unique string used to identify the user. The length limit is 128+    -- characters. This value can consist of letters, accented characters,+    -- symbols, numbers, and punctuation. This value is specified at the time+    -- the user is created and stored as an attribute of the user object in the+    -- identity store.+    userName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A string indicating the user\'s type. Possible values depend on each+    -- customer\'s specific needs, so they are left unspecified.+    userType :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The identifier for a user in the identity store.+    userId :: Prelude.Text,+    -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'User' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addresses', 'user_addresses' - A list of @Address@ objects containing addresses associated with the+-- user.+--+-- 'displayName', 'user_displayName' - A string containing the user\'s name that\'s formatted for display when+-- the user is referenced. For example, \"John Doe.\"+--+-- 'emails', 'user_emails' - A list of @Email@ objects containing email addresses associated with the+-- user.+--+-- 'externalIds', 'user_externalIds' - A list of @ExternalId@ objects that contains the identifiers issued to+-- this resource by an external identity provider.+--+-- 'locale', 'user_locale' - A string containing the user\'s geographical region or location.+--+-- 'name', 'user_name' - An object containing the user\'s name.+--+-- 'nickName', 'user_nickName' - A string containing an alternate name for the user.+--+-- 'phoneNumbers', 'user_phoneNumbers' - A list of @PhoneNumber@ objects containing phone numbers associated with+-- the user.+--+-- 'preferredLanguage', 'user_preferredLanguage' - A string containing the preferred language of the user. For example,+-- \"American English\" or \"en-us.\"+--+-- 'profileUrl', 'user_profileUrl' - A string containing a URL that may be associated with the user.+--+-- 'timezone', 'user_timezone' - A string containing the user\'s time zone.+--+-- 'title', 'user_title' - A string containing the user\'s title. Possible values depend on each+-- customer\'s specific needs, so they are left unspecified.+--+-- 'userName', 'user_userName' - A unique string used to identify the user. The length limit is 128+-- characters. This value can consist of letters, accented characters,+-- symbols, numbers, and punctuation. This value is specified at the time+-- the user is created and stored as an attribute of the user object in the+-- identity store.+--+-- 'userType', 'user_userType' - A string indicating the user\'s type. Possible values depend on each+-- customer\'s specific needs, so they are left unspecified.+--+-- 'userId', 'user_userId' - The identifier for a user in the identity store.+--+-- 'identityStoreId', 'user_identityStoreId' - The globally unique identifier for the identity store.+newUser ::+  -- | 'userId'+  Prelude.Text ->+  -- | 'identityStoreId'+  Prelude.Text ->+  User+newUser pUserId_ pIdentityStoreId_ =+  User'+    { addresses = Prelude.Nothing,+      displayName = Prelude.Nothing,+      emails = Prelude.Nothing,+      externalIds = Prelude.Nothing,+      locale = Prelude.Nothing,+      name = Prelude.Nothing,+      nickName = Prelude.Nothing,+      phoneNumbers = Prelude.Nothing,+      preferredLanguage = Prelude.Nothing,+      profileUrl = Prelude.Nothing,+      timezone = Prelude.Nothing,+      title = Prelude.Nothing,+      userName = Prelude.Nothing,+      userType = Prelude.Nothing,+      userId = pUserId_,+      identityStoreId = pIdentityStoreId_+    }++-- | A list of @Address@ objects containing addresses associated with the+-- user.+user_addresses :: Lens.Lens' User (Prelude.Maybe (Prelude.NonEmpty Address))+user_addresses = Lens.lens (\User' {addresses} -> addresses) (\s@User' {} a -> s {addresses = a} :: User) Prelude.. Lens.mapping Lens.coerced++-- | A string containing the user\'s name that\'s formatted for display when+-- the user is referenced. For example, \"John Doe.\"+user_displayName :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_displayName = Lens.lens (\User' {displayName} -> displayName) (\s@User' {} a -> s {displayName = a} :: User) Prelude.. Lens.mapping Data._Sensitive++-- | A list of @Email@ objects containing email addresses associated with the+-- user.+user_emails :: Lens.Lens' User (Prelude.Maybe (Prelude.NonEmpty Email))+user_emails = Lens.lens (\User' {emails} -> emails) (\s@User' {} a -> s {emails = a} :: User) Prelude.. Lens.mapping Lens.coerced++-- | A list of @ExternalId@ objects that contains the identifiers issued to+-- this resource by an external identity provider.+user_externalIds :: Lens.Lens' User (Prelude.Maybe (Prelude.NonEmpty ExternalId))+user_externalIds = Lens.lens (\User' {externalIds} -> externalIds) (\s@User' {} a -> s {externalIds = a} :: User) Prelude.. Lens.mapping Lens.coerced++-- | A string containing the user\'s geographical region or location.+user_locale :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_locale = Lens.lens (\User' {locale} -> locale) (\s@User' {} a -> s {locale = a} :: User) Prelude.. Lens.mapping Data._Sensitive++-- | An object containing the user\'s name.+user_name :: Lens.Lens' User (Prelude.Maybe Name)+user_name = Lens.lens (\User' {name} -> name) (\s@User' {} a -> s {name = a} :: User)++-- | A string containing an alternate name for the user.+user_nickName :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_nickName = Lens.lens (\User' {nickName} -> nickName) (\s@User' {} a -> s {nickName = a} :: User) Prelude.. Lens.mapping Data._Sensitive++-- | A list of @PhoneNumber@ objects containing phone numbers associated with+-- the user.+user_phoneNumbers :: Lens.Lens' User (Prelude.Maybe (Prelude.NonEmpty PhoneNumber))+user_phoneNumbers = Lens.lens (\User' {phoneNumbers} -> phoneNumbers) (\s@User' {} a -> s {phoneNumbers = a} :: User) Prelude.. Lens.mapping Lens.coerced++-- | A string containing the preferred language of the user. For example,+-- \"American English\" or \"en-us.\"+user_preferredLanguage :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_preferredLanguage = Lens.lens (\User' {preferredLanguage} -> preferredLanguage) (\s@User' {} a -> s {preferredLanguage = a} :: User) Prelude.. Lens.mapping Data._Sensitive++-- | A string containing a URL that may be associated with the user.+user_profileUrl :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_profileUrl = Lens.lens (\User' {profileUrl} -> profileUrl) (\s@User' {} a -> s {profileUrl = a} :: User) Prelude.. Lens.mapping Data._Sensitive++-- | A string containing the user\'s time zone.+user_timezone :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_timezone = Lens.lens (\User' {timezone} -> timezone) (\s@User' {} a -> s {timezone = a} :: User) Prelude.. Lens.mapping Data._Sensitive++-- | A string containing the user\'s title. Possible values depend on each+-- customer\'s specific needs, so they are left unspecified.+user_title :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_title = Lens.lens (\User' {title} -> title) (\s@User' {} a -> s {title = a} :: User) Prelude.. Lens.mapping Data._Sensitive++-- | A unique string used to identify the user. The length limit is 128+-- characters. This value can consist of letters, accented characters,+-- symbols, numbers, and punctuation. This value is specified at the time+-- the user is created and stored as an attribute of the user object in the+-- identity store.+user_userName :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_userName = Lens.lens (\User' {userName} -> userName) (\s@User' {} a -> s {userName = a} :: User) Prelude.. Lens.mapping Data._Sensitive++-- | A string indicating the user\'s type. Possible values depend on each+-- customer\'s specific needs, so they are left unspecified.+user_userType :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_userType = Lens.lens (\User' {userType} -> userType) (\s@User' {} a -> s {userType = a} :: User) Prelude.. Lens.mapping Data._Sensitive++-- | The identifier for a user in the identity store.+user_userId :: Lens.Lens' User Prelude.Text+user_userId = Lens.lens (\User' {userId} -> userId) (\s@User' {} a -> s {userId = a} :: User)++-- | The globally unique identifier for the identity store.+user_identityStoreId :: Lens.Lens' User Prelude.Text+user_identityStoreId = Lens.lens (\User' {identityStoreId} -> identityStoreId) (\s@User' {} a -> s {identityStoreId = a} :: User)++instance Data.FromJSON User where+  parseJSON =+    Data.withObject+      "User"+      ( \x ->+          User'+            Prelude.<$> (x Data..:? "Addresses")+            Prelude.<*> (x Data..:? "DisplayName")+            Prelude.<*> (x Data..:? "Emails")+            Prelude.<*> (x Data..:? "ExternalIds")+            Prelude.<*> (x Data..:? "Locale")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "NickName")+            Prelude.<*> (x Data..:? "PhoneNumbers")+            Prelude.<*> (x Data..:? "PreferredLanguage")+            Prelude.<*> (x Data..:? "ProfileUrl")+            Prelude.<*> (x Data..:? "Timezone")+            Prelude.<*> (x Data..:? "Title")+            Prelude.<*> (x Data..:? "UserName")+            Prelude.<*> (x Data..:? "UserType")+            Prelude.<*> (x Data..: "UserId")+            Prelude.<*> (x Data..: "IdentityStoreId")+      )++instance Prelude.Hashable User where+  hashWithSalt _salt User' {..} =+    _salt+      `Prelude.hashWithSalt` addresses+      `Prelude.hashWithSalt` displayName+      `Prelude.hashWithSalt` emails+      `Prelude.hashWithSalt` externalIds+      `Prelude.hashWithSalt` locale+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nickName+      `Prelude.hashWithSalt` phoneNumbers+      `Prelude.hashWithSalt` preferredLanguage+      `Prelude.hashWithSalt` profileUrl+      `Prelude.hashWithSalt` timezone+      `Prelude.hashWithSalt` title+      `Prelude.hashWithSalt` userName+      `Prelude.hashWithSalt` userType+      `Prelude.hashWithSalt` userId+      `Prelude.hashWithSalt` identityStoreId++instance Prelude.NFData User where+  rnf User' {..} =+    Prelude.rnf addresses+      `Prelude.seq` Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf emails+      `Prelude.seq` Prelude.rnf externalIds+      `Prelude.seq` Prelude.rnf locale+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nickName+      `Prelude.seq` Prelude.rnf phoneNumbers+      `Prelude.seq` Prelude.rnf preferredLanguage+      `Prelude.seq` Prelude.rnf profileUrl+      `Prelude.seq` Prelude.rnf timezone+      `Prelude.seq` Prelude.rnf title+      `Prelude.seq` Prelude.rnf userName+      `Prelude.seq` Prelude.rnf userType+      `Prelude.seq` Prelude.rnf userId+      `Prelude.seq` Prelude.rnf identityStoreId
+ gen/Amazonka/IdentityStore/UpdateGroup.hs view
@@ -0,0 +1,193 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.UpdateGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- For the specified group in the specified identity store, updates the+-- group metadata and attributes.+module Amazonka.IdentityStore.UpdateGroup+  ( -- * Creating a Request+    UpdateGroup (..),+    newUpdateGroup,++    -- * Request Lenses+    updateGroup_identityStoreId,+    updateGroup_groupId,+    updateGroup_operations,++    -- * Destructuring the Response+    UpdateGroupResponse (..),+    newUpdateGroupResponse,++    -- * Response Lenses+    updateGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateGroup' smart constructor.+data UpdateGroup = UpdateGroup'+  { -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text,+    -- | The identifier for a group in the identity store.+    groupId :: Prelude.Text,+    -- | A list of @AttributeOperation@ objects to apply to the requested group.+    -- These operations might add, replace, or remove an attribute.+    operations :: Prelude.NonEmpty AttributeOperation+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'updateGroup_identityStoreId' - The globally unique identifier for the identity store.+--+-- 'groupId', 'updateGroup_groupId' - The identifier for a group in the identity store.+--+-- 'operations', 'updateGroup_operations' - A list of @AttributeOperation@ objects to apply to the requested group.+-- These operations might add, replace, or remove an attribute.+newUpdateGroup ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'groupId'+  Prelude.Text ->+  -- | 'operations'+  Prelude.NonEmpty AttributeOperation ->+  UpdateGroup+newUpdateGroup+  pIdentityStoreId_+  pGroupId_+  pOperations_ =+    UpdateGroup'+      { identityStoreId = pIdentityStoreId_,+        groupId = pGroupId_,+        operations = Lens.coerced Lens.# pOperations_+      }++-- | The globally unique identifier for the identity store.+updateGroup_identityStoreId :: Lens.Lens' UpdateGroup Prelude.Text+updateGroup_identityStoreId = Lens.lens (\UpdateGroup' {identityStoreId} -> identityStoreId) (\s@UpdateGroup' {} a -> s {identityStoreId = a} :: UpdateGroup)++-- | The identifier for a group in the identity store.+updateGroup_groupId :: Lens.Lens' UpdateGroup Prelude.Text+updateGroup_groupId = Lens.lens (\UpdateGroup' {groupId} -> groupId) (\s@UpdateGroup' {} a -> s {groupId = a} :: UpdateGroup)++-- | A list of @AttributeOperation@ objects to apply to the requested group.+-- These operations might add, replace, or remove an attribute.+updateGroup_operations :: Lens.Lens' UpdateGroup (Prelude.NonEmpty AttributeOperation)+updateGroup_operations = Lens.lens (\UpdateGroup' {operations} -> operations) (\s@UpdateGroup' {} a -> s {operations = a} :: UpdateGroup) Prelude.. Lens.coerced++instance Core.AWSRequest UpdateGroup where+  type AWSResponse UpdateGroup = UpdateGroupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateGroupResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateGroup where+  hashWithSalt _salt UpdateGroup' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` groupId+      `Prelude.hashWithSalt` operations++instance Prelude.NFData UpdateGroup where+  rnf UpdateGroup' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf groupId+      `Prelude.seq` Prelude.rnf operations++instance Data.ToHeaders UpdateGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.UpdateGroup" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateGroup where+  toJSON UpdateGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just ("GroupId" Data..= groupId),+            Prelude.Just ("Operations" Data..= operations)+          ]+      )++instance Data.ToPath UpdateGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateGroup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateGroupResponse' smart constructor.+data UpdateGroupResponse = UpdateGroupResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'updateGroupResponse_httpStatus' - The response's http status code.+newUpdateGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateGroupResponse+newUpdateGroupResponse pHttpStatus_ =+  UpdateGroupResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+updateGroupResponse_httpStatus :: Lens.Lens' UpdateGroupResponse Prelude.Int+updateGroupResponse_httpStatus = Lens.lens (\UpdateGroupResponse' {httpStatus} -> httpStatus) (\s@UpdateGroupResponse' {} a -> s {httpStatus = a} :: UpdateGroupResponse)++instance Prelude.NFData UpdateGroupResponse where+  rnf UpdateGroupResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/IdentityStore/UpdateUser.hs view
@@ -0,0 +1,190 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.UpdateUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- For the specified user in the specified identity store, updates the user+-- metadata and attributes.+module Amazonka.IdentityStore.UpdateUser+  ( -- * Creating a Request+    UpdateUser (..),+    newUpdateUser,++    -- * Request Lenses+    updateUser_identityStoreId,+    updateUser_userId,+    updateUser_operations,++    -- * Destructuring the Response+    UpdateUserResponse (..),+    newUpdateUserResponse,++    -- * Response Lenses+    updateUserResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateUser' smart constructor.+data UpdateUser = UpdateUser'+  { -- | The globally unique identifier for the identity store.+    identityStoreId :: Prelude.Text,+    -- | The identifier for a user in the identity store.+    userId :: Prelude.Text,+    -- | A list of @AttributeOperation@ objects to apply to the requested user.+    -- These operations might add, replace, or remove an attribute.+    operations :: Prelude.NonEmpty AttributeOperation+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'updateUser_identityStoreId' - The globally unique identifier for the identity store.+--+-- 'userId', 'updateUser_userId' - The identifier for a user in the identity store.+--+-- 'operations', 'updateUser_operations' - A list of @AttributeOperation@ objects to apply to the requested user.+-- These operations might add, replace, or remove an attribute.+newUpdateUser ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'userId'+  Prelude.Text ->+  -- | 'operations'+  Prelude.NonEmpty AttributeOperation ->+  UpdateUser+newUpdateUser pIdentityStoreId_ pUserId_ pOperations_ =+  UpdateUser'+    { identityStoreId = pIdentityStoreId_,+      userId = pUserId_,+      operations = Lens.coerced Lens.# pOperations_+    }++-- | The globally unique identifier for the identity store.+updateUser_identityStoreId :: Lens.Lens' UpdateUser Prelude.Text+updateUser_identityStoreId = Lens.lens (\UpdateUser' {identityStoreId} -> identityStoreId) (\s@UpdateUser' {} a -> s {identityStoreId = a} :: UpdateUser)++-- | The identifier for a user in the identity store.+updateUser_userId :: Lens.Lens' UpdateUser Prelude.Text+updateUser_userId = Lens.lens (\UpdateUser' {userId} -> userId) (\s@UpdateUser' {} a -> s {userId = a} :: UpdateUser)++-- | A list of @AttributeOperation@ objects to apply to the requested user.+-- These operations might add, replace, or remove an attribute.+updateUser_operations :: Lens.Lens' UpdateUser (Prelude.NonEmpty AttributeOperation)+updateUser_operations = Lens.lens (\UpdateUser' {operations} -> operations) (\s@UpdateUser' {} a -> s {operations = a} :: UpdateUser) Prelude.. Lens.coerced++instance Core.AWSRequest UpdateUser where+  type AWSResponse UpdateUser = UpdateUserResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateUserResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateUser where+  hashWithSalt _salt UpdateUser' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` userId+      `Prelude.hashWithSalt` operations++instance Prelude.NFData UpdateUser where+  rnf UpdateUser' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf userId+      `Prelude.seq` Prelude.rnf operations++instance Data.ToHeaders UpdateUser where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSIdentityStore.UpdateUser" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateUser where+  toJSON UpdateUser' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityStoreId" Data..= identityStoreId),+            Prelude.Just ("UserId" Data..= userId),+            Prelude.Just ("Operations" Data..= operations)+          ]+      )++instance Data.ToPath UpdateUser where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateUser where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateUserResponse' smart constructor.+data UpdateUserResponse = UpdateUserResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateUserResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'updateUserResponse_httpStatus' - The response's http status code.+newUpdateUserResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateUserResponse+newUpdateUserResponse pHttpStatus_ =+  UpdateUserResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+updateUserResponse_httpStatus :: Lens.Lens' UpdateUserResponse Prelude.Int+updateUserResponse_httpStatus = Lens.lens (\UpdateUserResponse' {httpStatus} -> httpStatus) (\s@UpdateUserResponse' {} a -> s {httpStatus = a} :: UpdateUserResponse)++instance Prelude.NFData UpdateUserResponse where+  rnf UpdateUserResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/IdentityStore/Waiters.hs view
@@ -0,0 +1,24 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IdentityStore.Waiters+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IdentityStore.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IdentityStore.Lens+import Amazonka.IdentityStore.Types+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.IdentityStore+import Test.Amazonka.IdentityStore.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "IdentityStore"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/IdentityStore.hs view
@@ -0,0 +1,418 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.Amazonka.Gen.IdentityStore+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.Gen.IdentityStore where++import Amazonka.IdentityStore+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.IdentityStore.Internal+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestCreateGroup $+--             newCreateGroup+--+--         , requestCreateGroupMembership $+--             newCreateGroupMembership+--+--         , requestCreateUser $+--             newCreateUser+--+--         , requestDeleteGroup $+--             newDeleteGroup+--+--         , requestDeleteGroupMembership $+--             newDeleteGroupMembership+--+--         , requestDeleteUser $+--             newDeleteUser+--+--         , requestDescribeGroup $+--             newDescribeGroup+--+--         , requestDescribeGroupMembership $+--             newDescribeGroupMembership+--+--         , requestDescribeUser $+--             newDescribeUser+--+--         , requestGetGroupId $+--             newGetGroupId+--+--         , requestGetGroupMembershipId $+--             newGetGroupMembershipId+--+--         , requestGetUserId $+--             newGetUserId+--+--         , requestIsMemberInGroups $+--             newIsMemberInGroups+--+--         , requestListGroupMemberships $+--             newListGroupMemberships+--+--         , requestListGroupMembershipsForMember $+--             newListGroupMembershipsForMember+--+--         , requestListGroups $+--             newListGroups+--+--         , requestListUsers $+--             newListUsers+--+--         , requestUpdateGroup $+--             newUpdateGroup+--+--         , requestUpdateUser $+--             newUpdateUser+--+--           ]++--     , testGroup "response"+--         [ responseCreateGroup $+--             newCreateGroupResponse+--+--         , responseCreateGroupMembership $+--             newCreateGroupMembershipResponse+--+--         , responseCreateUser $+--             newCreateUserResponse+--+--         , responseDeleteGroup $+--             newDeleteGroupResponse+--+--         , responseDeleteGroupMembership $+--             newDeleteGroupMembershipResponse+--+--         , responseDeleteUser $+--             newDeleteUserResponse+--+--         , responseDescribeGroup $+--             newDescribeGroupResponse+--+--         , responseDescribeGroupMembership $+--             newDescribeGroupMembershipResponse+--+--         , responseDescribeUser $+--             newDescribeUserResponse+--+--         , responseGetGroupId $+--             newGetGroupIdResponse+--+--         , responseGetGroupMembershipId $+--             newGetGroupMembershipIdResponse+--+--         , responseGetUserId $+--             newGetUserIdResponse+--+--         , responseIsMemberInGroups $+--             newIsMemberInGroupsResponse+--+--         , responseListGroupMemberships $+--             newListGroupMembershipsResponse+--+--         , responseListGroupMembershipsForMember $+--             newListGroupMembershipsForMemberResponse+--+--         , responseListGroups $+--             newListGroupsResponse+--+--         , responseListUsers $+--             newListUsersResponse+--+--         , responseUpdateGroup $+--             newUpdateGroupResponse+--+--         , responseUpdateUser $+--             newUpdateUserResponse+--+--           ]+--     ]++-- Requests++requestCreateGroup :: CreateGroup -> TestTree+requestCreateGroup =+  req+    "CreateGroup"+    "fixture/CreateGroup.yaml"++requestCreateGroupMembership :: CreateGroupMembership -> TestTree+requestCreateGroupMembership =+  req+    "CreateGroupMembership"+    "fixture/CreateGroupMembership.yaml"++requestCreateUser :: CreateUser -> TestTree+requestCreateUser =+  req+    "CreateUser"+    "fixture/CreateUser.yaml"++requestDeleteGroup :: DeleteGroup -> TestTree+requestDeleteGroup =+  req+    "DeleteGroup"+    "fixture/DeleteGroup.yaml"++requestDeleteGroupMembership :: DeleteGroupMembership -> TestTree+requestDeleteGroupMembership =+  req+    "DeleteGroupMembership"+    "fixture/DeleteGroupMembership.yaml"++requestDeleteUser :: DeleteUser -> TestTree+requestDeleteUser =+  req+    "DeleteUser"+    "fixture/DeleteUser.yaml"++requestDescribeGroup :: DescribeGroup -> TestTree+requestDescribeGroup =+  req+    "DescribeGroup"+    "fixture/DescribeGroup.yaml"++requestDescribeGroupMembership :: DescribeGroupMembership -> TestTree+requestDescribeGroupMembership =+  req+    "DescribeGroupMembership"+    "fixture/DescribeGroupMembership.yaml"++requestDescribeUser :: DescribeUser -> TestTree+requestDescribeUser =+  req+    "DescribeUser"+    "fixture/DescribeUser.yaml"++requestGetGroupId :: GetGroupId -> TestTree+requestGetGroupId =+  req+    "GetGroupId"+    "fixture/GetGroupId.yaml"++requestGetGroupMembershipId :: GetGroupMembershipId -> TestTree+requestGetGroupMembershipId =+  req+    "GetGroupMembershipId"+    "fixture/GetGroupMembershipId.yaml"++requestGetUserId :: GetUserId -> TestTree+requestGetUserId =+  req+    "GetUserId"+    "fixture/GetUserId.yaml"++requestIsMemberInGroups :: IsMemberInGroups -> TestTree+requestIsMemberInGroups =+  req+    "IsMemberInGroups"+    "fixture/IsMemberInGroups.yaml"++requestListGroupMemberships :: ListGroupMemberships -> TestTree+requestListGroupMemberships =+  req+    "ListGroupMemberships"+    "fixture/ListGroupMemberships.yaml"++requestListGroupMembershipsForMember :: ListGroupMembershipsForMember -> TestTree+requestListGroupMembershipsForMember =+  req+    "ListGroupMembershipsForMember"+    "fixture/ListGroupMembershipsForMember.yaml"++requestListGroups :: ListGroups -> TestTree+requestListGroups =+  req+    "ListGroups"+    "fixture/ListGroups.yaml"++requestListUsers :: ListUsers -> TestTree+requestListUsers =+  req+    "ListUsers"+    "fixture/ListUsers.yaml"++requestUpdateGroup :: UpdateGroup -> TestTree+requestUpdateGroup =+  req+    "UpdateGroup"+    "fixture/UpdateGroup.yaml"++requestUpdateUser :: UpdateUser -> TestTree+requestUpdateUser =+  req+    "UpdateUser"+    "fixture/UpdateUser.yaml"++-- Responses++responseCreateGroup :: CreateGroupResponse -> TestTree+responseCreateGroup =+  res+    "CreateGroupResponse"+    "fixture/CreateGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateGroup)++responseCreateGroupMembership :: CreateGroupMembershipResponse -> TestTree+responseCreateGroupMembership =+  res+    "CreateGroupMembershipResponse"+    "fixture/CreateGroupMembershipResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateGroupMembership)++responseCreateUser :: CreateUserResponse -> TestTree+responseCreateUser =+  res+    "CreateUserResponse"+    "fixture/CreateUserResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateUser)++responseDeleteGroup :: DeleteGroupResponse -> TestTree+responseDeleteGroup =+  res+    "DeleteGroupResponse"+    "fixture/DeleteGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteGroup)++responseDeleteGroupMembership :: DeleteGroupMembershipResponse -> TestTree+responseDeleteGroupMembership =+  res+    "DeleteGroupMembershipResponse"+    "fixture/DeleteGroupMembershipResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteGroupMembership)++responseDeleteUser :: DeleteUserResponse -> TestTree+responseDeleteUser =+  res+    "DeleteUserResponse"+    "fixture/DeleteUserResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteUser)++responseDescribeGroup :: DescribeGroupResponse -> TestTree+responseDescribeGroup =+  res+    "DescribeGroupResponse"+    "fixture/DescribeGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeGroup)++responseDescribeGroupMembership :: DescribeGroupMembershipResponse -> TestTree+responseDescribeGroupMembership =+  res+    "DescribeGroupMembershipResponse"+    "fixture/DescribeGroupMembershipResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeGroupMembership)++responseDescribeUser :: DescribeUserResponse -> TestTree+responseDescribeUser =+  res+    "DescribeUserResponse"+    "fixture/DescribeUserResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeUser)++responseGetGroupId :: GetGroupIdResponse -> TestTree+responseGetGroupId =+  res+    "GetGroupIdResponse"+    "fixture/GetGroupIdResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetGroupId)++responseGetGroupMembershipId :: GetGroupMembershipIdResponse -> TestTree+responseGetGroupMembershipId =+  res+    "GetGroupMembershipIdResponse"+    "fixture/GetGroupMembershipIdResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetGroupMembershipId)++responseGetUserId :: GetUserIdResponse -> TestTree+responseGetUserId =+  res+    "GetUserIdResponse"+    "fixture/GetUserIdResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetUserId)++responseIsMemberInGroups :: IsMemberInGroupsResponse -> TestTree+responseIsMemberInGroups =+  res+    "IsMemberInGroupsResponse"+    "fixture/IsMemberInGroupsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy IsMemberInGroups)++responseListGroupMemberships :: ListGroupMembershipsResponse -> TestTree+responseListGroupMemberships =+  res+    "ListGroupMembershipsResponse"+    "fixture/ListGroupMembershipsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListGroupMemberships)++responseListGroupMembershipsForMember :: ListGroupMembershipsForMemberResponse -> TestTree+responseListGroupMembershipsForMember =+  res+    "ListGroupMembershipsForMemberResponse"+    "fixture/ListGroupMembershipsForMemberResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListGroupMembershipsForMember)++responseListGroups :: ListGroupsResponse -> TestTree+responseListGroups =+  res+    "ListGroupsResponse"+    "fixture/ListGroupsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListGroups)++responseListUsers :: ListUsersResponse -> TestTree+responseListUsers =+  res+    "ListUsersResponse"+    "fixture/ListUsersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListUsers)++responseUpdateGroup :: UpdateGroupResponse -> TestTree+responseUpdateGroup =+  res+    "UpdateGroupResponse"+    "fixture/UpdateGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateGroup)++responseUpdateUser :: UpdateUserResponse -> TestTree+responseUpdateUser =+  res+    "UpdateUserResponse"+    "fixture/UpdateUserResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateUser)
+ test/Test/Amazonka/IdentityStore.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.IdentityStore+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.IdentityStore+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/IdentityStore/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.IdentityStore.Internal+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.IdentityStore.Internal where