packages feed

amazonka-license-manager-user-subscriptions (empty) → 2.0

raw patch · 54 files changed

+5234/−0 lines, 54 filesdep +amazonka-coredep +amazonka-license-manager-user-subscriptionsdep +amazonka-test

Dependencies added: amazonka-core, amazonka-license-manager-user-subscriptions, 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 License Manager User Subscriptions SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2018-05-10@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-license-manager-user-subscriptions)+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.LicenseManagerUserSubscriptions](http://hackage.haskell.org/package/amazonka-license-manager-user-subscriptions/docs/Amazonka-LicenseManagerUserSubscriptions.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-license-manager-user-subscriptions` 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-license-manager-user-subscriptions.cabal view
@@ -0,0 +1,103 @@+cabal-version:      2.2+name:               amazonka-license-manager-user-subscriptions+version:            2.0+synopsis:           Amazon License Manager User Subscriptions 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 @2018-05-10@ 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.LicenseManagerUserSubscriptions.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.LicenseManagerUserSubscriptions" 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-license-manager-user-subscriptions++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.LicenseManagerUserSubscriptions+    Amazonka.LicenseManagerUserSubscriptions.AssociateUser+    Amazonka.LicenseManagerUserSubscriptions.DeregisterIdentityProvider+    Amazonka.LicenseManagerUserSubscriptions.DisassociateUser+    Amazonka.LicenseManagerUserSubscriptions.Lens+    Amazonka.LicenseManagerUserSubscriptions.ListIdentityProviders+    Amazonka.LicenseManagerUserSubscriptions.ListInstances+    Amazonka.LicenseManagerUserSubscriptions.ListProductSubscriptions+    Amazonka.LicenseManagerUserSubscriptions.ListUserAssociations+    Amazonka.LicenseManagerUserSubscriptions.RegisterIdentityProvider+    Amazonka.LicenseManagerUserSubscriptions.StartProductSubscription+    Amazonka.LicenseManagerUserSubscriptions.StopProductSubscription+    Amazonka.LicenseManagerUserSubscriptions.Types+    Amazonka.LicenseManagerUserSubscriptions.Types.ActiveDirectoryIdentityProvider+    Amazonka.LicenseManagerUserSubscriptions.Types.Filter+    Amazonka.LicenseManagerUserSubscriptions.Types.IdentityProvider+    Amazonka.LicenseManagerUserSubscriptions.Types.IdentityProviderSummary+    Amazonka.LicenseManagerUserSubscriptions.Types.InstanceSummary+    Amazonka.LicenseManagerUserSubscriptions.Types.InstanceUserSummary+    Amazonka.LicenseManagerUserSubscriptions.Types.ProductUserSummary+    Amazonka.LicenseManagerUserSubscriptions.Types.Settings+    Amazonka.LicenseManagerUserSubscriptions.Types.UpdateSettings+    Amazonka.LicenseManagerUserSubscriptions.UpdateIdentityProviderSettings+    Amazonka.LicenseManagerUserSubscriptions.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-license-manager-user-subscriptions-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.LicenseManagerUserSubscriptions+    Test.Amazonka.LicenseManagerUserSubscriptions+    Test.Amazonka.LicenseManagerUserSubscriptions.Internal++  build-depends:+    , amazonka-core                                >=2.0 && <2.1+    , amazonka-license-manager-user-subscriptions+    , amazonka-test                                >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/AssociateUser.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager-user-subscriptions/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  license-manager-user-subscriptions.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/AssociateUserResponse.proto view
+ fixture/DeregisterIdentityProvider.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager-user-subscriptions/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  license-manager-user-subscriptions.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/DeregisterIdentityProviderResponse.proto view
+ fixture/DisassociateUser.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager-user-subscriptions/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  license-manager-user-subscriptions.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/DisassociateUserResponse.proto view
+ fixture/ListIdentityProviders.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager-user-subscriptions/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  license-manager-user-subscriptions.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/ListIdentityProvidersResponse.proto view
+ fixture/ListInstances.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager-user-subscriptions/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  license-manager-user-subscriptions.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/ListInstancesResponse.proto view
+ fixture/ListProductSubscriptions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager-user-subscriptions/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  license-manager-user-subscriptions.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/ListProductSubscriptionsResponse.proto view
+ fixture/ListUserAssociations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager-user-subscriptions/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  license-manager-user-subscriptions.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/ListUserAssociationsResponse.proto view
+ fixture/RegisterIdentityProvider.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager-user-subscriptions/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  license-manager-user-subscriptions.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/RegisterIdentityProviderResponse.proto view
+ fixture/StartProductSubscription.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager-user-subscriptions/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  license-manager-user-subscriptions.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/StartProductSubscriptionResponse.proto view
+ fixture/StopProductSubscription.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager-user-subscriptions/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  license-manager-user-subscriptions.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/StopProductSubscriptionResponse.proto view
+ fixture/UpdateIdentityProviderSettings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/license-manager-user-subscriptions/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  license-manager-user-subscriptions.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/UpdateIdentityProviderSettingsResponse.proto view
+ gen/Amazonka/LicenseManagerUserSubscriptions.hs view
@@ -0,0 +1,197 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.LicenseManagerUserSubscriptions+-- 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 @2018-05-10@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- With License Manager, you can create user-based subscriptions to utilize+-- licensed software with a per user subscription fee on Amazon EC2+-- instances.+module Amazonka.LicenseManagerUserSubscriptions+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** AssociateUser+    AssociateUser (AssociateUser'),+    newAssociateUser,+    AssociateUserResponse (AssociateUserResponse'),+    newAssociateUserResponse,++    -- ** DeregisterIdentityProvider+    DeregisterIdentityProvider (DeregisterIdentityProvider'),+    newDeregisterIdentityProvider,+    DeregisterIdentityProviderResponse (DeregisterIdentityProviderResponse'),+    newDeregisterIdentityProviderResponse,++    -- ** DisassociateUser+    DisassociateUser (DisassociateUser'),+    newDisassociateUser,+    DisassociateUserResponse (DisassociateUserResponse'),+    newDisassociateUserResponse,++    -- ** ListIdentityProviders (Paginated)+    ListIdentityProviders (ListIdentityProviders'),+    newListIdentityProviders,+    ListIdentityProvidersResponse (ListIdentityProvidersResponse'),+    newListIdentityProvidersResponse,++    -- ** ListInstances (Paginated)+    ListInstances (ListInstances'),+    newListInstances,+    ListInstancesResponse (ListInstancesResponse'),+    newListInstancesResponse,++    -- ** ListProductSubscriptions (Paginated)+    ListProductSubscriptions (ListProductSubscriptions'),+    newListProductSubscriptions,+    ListProductSubscriptionsResponse (ListProductSubscriptionsResponse'),+    newListProductSubscriptionsResponse,++    -- ** ListUserAssociations (Paginated)+    ListUserAssociations (ListUserAssociations'),+    newListUserAssociations,+    ListUserAssociationsResponse (ListUserAssociationsResponse'),+    newListUserAssociationsResponse,++    -- ** RegisterIdentityProvider+    RegisterIdentityProvider (RegisterIdentityProvider'),+    newRegisterIdentityProvider,+    RegisterIdentityProviderResponse (RegisterIdentityProviderResponse'),+    newRegisterIdentityProviderResponse,++    -- ** StartProductSubscription+    StartProductSubscription (StartProductSubscription'),+    newStartProductSubscription,+    StartProductSubscriptionResponse (StartProductSubscriptionResponse'),+    newStartProductSubscriptionResponse,++    -- ** StopProductSubscription+    StopProductSubscription (StopProductSubscription'),+    newStopProductSubscription,+    StopProductSubscriptionResponse (StopProductSubscriptionResponse'),+    newStopProductSubscriptionResponse,++    -- ** UpdateIdentityProviderSettings+    UpdateIdentityProviderSettings (UpdateIdentityProviderSettings'),+    newUpdateIdentityProviderSettings,+    UpdateIdentityProviderSettingsResponse (UpdateIdentityProviderSettingsResponse'),+    newUpdateIdentityProviderSettingsResponse,++    -- * Types++    -- ** ActiveDirectoryIdentityProvider+    ActiveDirectoryIdentityProvider (ActiveDirectoryIdentityProvider'),+    newActiveDirectoryIdentityProvider,++    -- ** Filter+    Filter (Filter'),+    newFilter,++    -- ** IdentityProvider+    IdentityProvider (IdentityProvider'),+    newIdentityProvider,++    -- ** IdentityProviderSummary+    IdentityProviderSummary (IdentityProviderSummary'),+    newIdentityProviderSummary,++    -- ** InstanceSummary+    InstanceSummary (InstanceSummary'),+    newInstanceSummary,++    -- ** InstanceUserSummary+    InstanceUserSummary (InstanceUserSummary'),+    newInstanceUserSummary,++    -- ** ProductUserSummary+    ProductUserSummary (ProductUserSummary'),+    newProductUserSummary,++    -- ** Settings+    Settings (Settings'),+    newSettings,++    -- ** UpdateSettings+    UpdateSettings (UpdateSettings'),+    newUpdateSettings,+  )+where++import Amazonka.LicenseManagerUserSubscriptions.AssociateUser+import Amazonka.LicenseManagerUserSubscriptions.DeregisterIdentityProvider+import Amazonka.LicenseManagerUserSubscriptions.DisassociateUser+import Amazonka.LicenseManagerUserSubscriptions.Lens+import Amazonka.LicenseManagerUserSubscriptions.ListIdentityProviders+import Amazonka.LicenseManagerUserSubscriptions.ListInstances+import Amazonka.LicenseManagerUserSubscriptions.ListProductSubscriptions+import Amazonka.LicenseManagerUserSubscriptions.ListUserAssociations+import Amazonka.LicenseManagerUserSubscriptions.RegisterIdentityProvider+import Amazonka.LicenseManagerUserSubscriptions.StartProductSubscription+import Amazonka.LicenseManagerUserSubscriptions.StopProductSubscription+import Amazonka.LicenseManagerUserSubscriptions.Types+import Amazonka.LicenseManagerUserSubscriptions.UpdateIdentityProviderSettings+import Amazonka.LicenseManagerUserSubscriptions.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 'LicenseManagerUserSubscriptions'.++-- $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/LicenseManagerUserSubscriptions/AssociateUser.hs view
@@ -0,0 +1,227 @@+{-# 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.LicenseManagerUserSubscriptions.AssociateUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Associates the user to an EC2 instance to utilize user-based+-- subscriptions.+--+-- Your estimated bill for charges on the number of users and related costs+-- will take 48 hours to appear for billing periods that haven\'t closed+-- (marked as __Pending__ billing status) in Amazon Web Services Billing.+-- For more information, see+-- <https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/invoice.html Viewing your monthly charges>+-- in the /Amazon Web Services Billing User Guide/.+module Amazonka.LicenseManagerUserSubscriptions.AssociateUser+  ( -- * Creating a Request+    AssociateUser (..),+    newAssociateUser,++    -- * Request Lenses+    associateUser_domain,+    associateUser_identityProvider,+    associateUser_instanceId,+    associateUser_username,++    -- * Destructuring the Response+    AssociateUserResponse (..),+    newAssociateUserResponse,++    -- * Response Lenses+    associateUserResponse_httpStatus,+    associateUserResponse_instanceUserSummary,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssociateUser' smart constructor.+data AssociateUser = AssociateUser'+  { -- | The domain name of the user.+    domain :: Prelude.Maybe Prelude.Text,+    -- | The identity provider of the user.+    identityProvider :: IdentityProvider,+    -- | The ID of the EC2 instance, which provides user-based subscriptions.+    instanceId :: Prelude.Text,+    -- | The user name from the identity provider for the user.+    username :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateUser' 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:+--+-- 'domain', 'associateUser_domain' - The domain name of the user.+--+-- 'identityProvider', 'associateUser_identityProvider' - The identity provider of the user.+--+-- 'instanceId', 'associateUser_instanceId' - The ID of the EC2 instance, which provides user-based subscriptions.+--+-- 'username', 'associateUser_username' - The user name from the identity provider for the user.+newAssociateUser ::+  -- | 'identityProvider'+  IdentityProvider ->+  -- | 'instanceId'+  Prelude.Text ->+  -- | 'username'+  Prelude.Text ->+  AssociateUser+newAssociateUser+  pIdentityProvider_+  pInstanceId_+  pUsername_ =+    AssociateUser'+      { domain = Prelude.Nothing,+        identityProvider = pIdentityProvider_,+        instanceId = pInstanceId_,+        username = pUsername_+      }++-- | The domain name of the user.+associateUser_domain :: Lens.Lens' AssociateUser (Prelude.Maybe Prelude.Text)+associateUser_domain = Lens.lens (\AssociateUser' {domain} -> domain) (\s@AssociateUser' {} a -> s {domain = a} :: AssociateUser)++-- | The identity provider of the user.+associateUser_identityProvider :: Lens.Lens' AssociateUser IdentityProvider+associateUser_identityProvider = Lens.lens (\AssociateUser' {identityProvider} -> identityProvider) (\s@AssociateUser' {} a -> s {identityProvider = a} :: AssociateUser)++-- | The ID of the EC2 instance, which provides user-based subscriptions.+associateUser_instanceId :: Lens.Lens' AssociateUser Prelude.Text+associateUser_instanceId = Lens.lens (\AssociateUser' {instanceId} -> instanceId) (\s@AssociateUser' {} a -> s {instanceId = a} :: AssociateUser)++-- | The user name from the identity provider for the user.+associateUser_username :: Lens.Lens' AssociateUser Prelude.Text+associateUser_username = Lens.lens (\AssociateUser' {username} -> username) (\s@AssociateUser' {} a -> s {username = a} :: AssociateUser)++instance Core.AWSRequest AssociateUser where+  type+    AWSResponse AssociateUser =+      AssociateUserResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AssociateUserResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "InstanceUserSummary")+      )++instance Prelude.Hashable AssociateUser where+  hashWithSalt _salt AssociateUser' {..} =+    _salt+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` identityProvider+      `Prelude.hashWithSalt` instanceId+      `Prelude.hashWithSalt` username++instance Prelude.NFData AssociateUser where+  rnf AssociateUser' {..} =+    Prelude.rnf domain+      `Prelude.seq` Prelude.rnf identityProvider+      `Prelude.seq` Prelude.rnf instanceId+      `Prelude.seq` Prelude.rnf username++instance Data.ToHeaders AssociateUser where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AssociateUser where+  toJSON AssociateUser' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Domain" Data..=) Prelude.<$> domain,+            Prelude.Just+              ("IdentityProvider" Data..= identityProvider),+            Prelude.Just ("InstanceId" Data..= instanceId),+            Prelude.Just ("Username" Data..= username)+          ]+      )++instance Data.ToPath AssociateUser where+  toPath = Prelude.const "/user/AssociateUser"++instance Data.ToQuery AssociateUser where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssociateUserResponse' smart constructor.+data AssociateUserResponse = AssociateUserResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Metadata that describes the associate user operation.+    instanceUserSummary :: InstanceUserSummary+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateUserResponse' 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', 'associateUserResponse_httpStatus' - The response's http status code.+--+-- 'instanceUserSummary', 'associateUserResponse_instanceUserSummary' - Metadata that describes the associate user operation.+newAssociateUserResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'instanceUserSummary'+  InstanceUserSummary ->+  AssociateUserResponse+newAssociateUserResponse+  pHttpStatus_+  pInstanceUserSummary_ =+    AssociateUserResponse'+      { httpStatus = pHttpStatus_,+        instanceUserSummary = pInstanceUserSummary_+      }++-- | The response's http status code.+associateUserResponse_httpStatus :: Lens.Lens' AssociateUserResponse Prelude.Int+associateUserResponse_httpStatus = Lens.lens (\AssociateUserResponse' {httpStatus} -> httpStatus) (\s@AssociateUserResponse' {} a -> s {httpStatus = a} :: AssociateUserResponse)++-- | Metadata that describes the associate user operation.+associateUserResponse_instanceUserSummary :: Lens.Lens' AssociateUserResponse InstanceUserSummary+associateUserResponse_instanceUserSummary = Lens.lens (\AssociateUserResponse' {instanceUserSummary} -> instanceUserSummary) (\s@AssociateUserResponse' {} a -> s {instanceUserSummary = a} :: AssociateUserResponse)++instance Prelude.NFData AssociateUserResponse where+  rnf AssociateUserResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf instanceUserSummary
+ gen/Amazonka/LicenseManagerUserSubscriptions/DeregisterIdentityProvider.hs view
@@ -0,0 +1,199 @@+{-# 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.LicenseManagerUserSubscriptions.DeregisterIdentityProvider+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deregisters the identity provider from providing user-based+-- subscriptions.+module Amazonka.LicenseManagerUserSubscriptions.DeregisterIdentityProvider+  ( -- * Creating a Request+    DeregisterIdentityProvider (..),+    newDeregisterIdentityProvider,++    -- * Request Lenses+    deregisterIdentityProvider_identityProvider,+    deregisterIdentityProvider_product,++    -- * Destructuring the Response+    DeregisterIdentityProviderResponse (..),+    newDeregisterIdentityProviderResponse,++    -- * Response Lenses+    deregisterIdentityProviderResponse_httpStatus,+    deregisterIdentityProviderResponse_identityProviderSummary,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeregisterIdentityProvider' smart constructor.+data DeregisterIdentityProvider = DeregisterIdentityProvider'+  { -- | An object that specifies details for the identity provider.+    identityProvider :: IdentityProvider,+    -- | The name of the user-based subscription product.+    product :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeregisterIdentityProvider' 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:+--+-- 'identityProvider', 'deregisterIdentityProvider_identityProvider' - An object that specifies details for the identity provider.+--+-- 'product', 'deregisterIdentityProvider_product' - The name of the user-based subscription product.+newDeregisterIdentityProvider ::+  -- | 'identityProvider'+  IdentityProvider ->+  -- | 'product'+  Prelude.Text ->+  DeregisterIdentityProvider+newDeregisterIdentityProvider+  pIdentityProvider_+  pProduct_ =+    DeregisterIdentityProvider'+      { identityProvider =+          pIdentityProvider_,+        product = pProduct_+      }++-- | An object that specifies details for the identity provider.+deregisterIdentityProvider_identityProvider :: Lens.Lens' DeregisterIdentityProvider IdentityProvider+deregisterIdentityProvider_identityProvider = Lens.lens (\DeregisterIdentityProvider' {identityProvider} -> identityProvider) (\s@DeregisterIdentityProvider' {} a -> s {identityProvider = a} :: DeregisterIdentityProvider)++-- | The name of the user-based subscription product.+deregisterIdentityProvider_product :: Lens.Lens' DeregisterIdentityProvider Prelude.Text+deregisterIdentityProvider_product = Lens.lens (\DeregisterIdentityProvider' {product} -> product) (\s@DeregisterIdentityProvider' {} a -> s {product = a} :: DeregisterIdentityProvider)++instance Core.AWSRequest DeregisterIdentityProvider where+  type+    AWSResponse DeregisterIdentityProvider =+      DeregisterIdentityProviderResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeregisterIdentityProviderResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "IdentityProviderSummary")+      )++instance Prelude.Hashable DeregisterIdentityProvider where+  hashWithSalt _salt DeregisterIdentityProvider' {..} =+    _salt+      `Prelude.hashWithSalt` identityProvider+      `Prelude.hashWithSalt` product++instance Prelude.NFData DeregisterIdentityProvider where+  rnf DeregisterIdentityProvider' {..} =+    Prelude.rnf identityProvider+      `Prelude.seq` Prelude.rnf product++instance Data.ToHeaders DeregisterIdentityProvider where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeregisterIdentityProvider where+  toJSON DeregisterIdentityProvider' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityProvider" Data..= identityProvider),+            Prelude.Just ("Product" Data..= product)+          ]+      )++instance Data.ToPath DeregisterIdentityProvider where+  toPath =+    Prelude.const+      "/identity-provider/DeregisterIdentityProvider"++instance Data.ToQuery DeregisterIdentityProvider where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeregisterIdentityProviderResponse' smart constructor.+data DeregisterIdentityProviderResponse = DeregisterIdentityProviderResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Metadata that describes the results of an identity provider operation.+    identityProviderSummary :: IdentityProviderSummary+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeregisterIdentityProviderResponse' 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', 'deregisterIdentityProviderResponse_httpStatus' - The response's http status code.+--+-- 'identityProviderSummary', 'deregisterIdentityProviderResponse_identityProviderSummary' - Metadata that describes the results of an identity provider operation.+newDeregisterIdentityProviderResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'identityProviderSummary'+  IdentityProviderSummary ->+  DeregisterIdentityProviderResponse+newDeregisterIdentityProviderResponse+  pHttpStatus_+  pIdentityProviderSummary_ =+    DeregisterIdentityProviderResponse'+      { httpStatus =+          pHttpStatus_,+        identityProviderSummary =+          pIdentityProviderSummary_+      }++-- | The response's http status code.+deregisterIdentityProviderResponse_httpStatus :: Lens.Lens' DeregisterIdentityProviderResponse Prelude.Int+deregisterIdentityProviderResponse_httpStatus = Lens.lens (\DeregisterIdentityProviderResponse' {httpStatus} -> httpStatus) (\s@DeregisterIdentityProviderResponse' {} a -> s {httpStatus = a} :: DeregisterIdentityProviderResponse)++-- | Metadata that describes the results of an identity provider operation.+deregisterIdentityProviderResponse_identityProviderSummary :: Lens.Lens' DeregisterIdentityProviderResponse IdentityProviderSummary+deregisterIdentityProviderResponse_identityProviderSummary = Lens.lens (\DeregisterIdentityProviderResponse' {identityProviderSummary} -> identityProviderSummary) (\s@DeregisterIdentityProviderResponse' {} a -> s {identityProviderSummary = a} :: DeregisterIdentityProviderResponse)++instance+  Prelude.NFData+    DeregisterIdentityProviderResponse+  where+  rnf DeregisterIdentityProviderResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf identityProviderSummary
+ gen/Amazonka/LicenseManagerUserSubscriptions/DisassociateUser.hs view
@@ -0,0 +1,221 @@+{-# 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.LicenseManagerUserSubscriptions.DisassociateUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disassociates the user from an EC2 instance providing user-based+-- subscriptions.+module Amazonka.LicenseManagerUserSubscriptions.DisassociateUser+  ( -- * Creating a Request+    DisassociateUser (..),+    newDisassociateUser,++    -- * Request Lenses+    disassociateUser_domain,+    disassociateUser_identityProvider,+    disassociateUser_instanceId,+    disassociateUser_username,++    -- * Destructuring the Response+    DisassociateUserResponse (..),+    newDisassociateUserResponse,++    -- * Response Lenses+    disassociateUserResponse_httpStatus,+    disassociateUserResponse_instanceUserSummary,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociateUser' smart constructor.+data DisassociateUser = DisassociateUser'+  { -- | The domain name of the user.+    domain :: Prelude.Maybe Prelude.Text,+    -- | An object that specifies details for the identity provider.+    identityProvider :: IdentityProvider,+    -- | The ID of the EC2 instance, which provides user-based subscriptions.+    instanceId :: Prelude.Text,+    -- | The user name from the identity provider for the user.+    username :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateUser' 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:+--+-- 'domain', 'disassociateUser_domain' - The domain name of the user.+--+-- 'identityProvider', 'disassociateUser_identityProvider' - An object that specifies details for the identity provider.+--+-- 'instanceId', 'disassociateUser_instanceId' - The ID of the EC2 instance, which provides user-based subscriptions.+--+-- 'username', 'disassociateUser_username' - The user name from the identity provider for the user.+newDisassociateUser ::+  -- | 'identityProvider'+  IdentityProvider ->+  -- | 'instanceId'+  Prelude.Text ->+  -- | 'username'+  Prelude.Text ->+  DisassociateUser+newDisassociateUser+  pIdentityProvider_+  pInstanceId_+  pUsername_ =+    DisassociateUser'+      { domain = Prelude.Nothing,+        identityProvider = pIdentityProvider_,+        instanceId = pInstanceId_,+        username = pUsername_+      }++-- | The domain name of the user.+disassociateUser_domain :: Lens.Lens' DisassociateUser (Prelude.Maybe Prelude.Text)+disassociateUser_domain = Lens.lens (\DisassociateUser' {domain} -> domain) (\s@DisassociateUser' {} a -> s {domain = a} :: DisassociateUser)++-- | An object that specifies details for the identity provider.+disassociateUser_identityProvider :: Lens.Lens' DisassociateUser IdentityProvider+disassociateUser_identityProvider = Lens.lens (\DisassociateUser' {identityProvider} -> identityProvider) (\s@DisassociateUser' {} a -> s {identityProvider = a} :: DisassociateUser)++-- | The ID of the EC2 instance, which provides user-based subscriptions.+disassociateUser_instanceId :: Lens.Lens' DisassociateUser Prelude.Text+disassociateUser_instanceId = Lens.lens (\DisassociateUser' {instanceId} -> instanceId) (\s@DisassociateUser' {} a -> s {instanceId = a} :: DisassociateUser)++-- | The user name from the identity provider for the user.+disassociateUser_username :: Lens.Lens' DisassociateUser Prelude.Text+disassociateUser_username = Lens.lens (\DisassociateUser' {username} -> username) (\s@DisassociateUser' {} a -> s {username = a} :: DisassociateUser)++instance Core.AWSRequest DisassociateUser where+  type+    AWSResponse DisassociateUser =+      DisassociateUserResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DisassociateUserResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "InstanceUserSummary")+      )++instance Prelude.Hashable DisassociateUser where+  hashWithSalt _salt DisassociateUser' {..} =+    _salt+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` identityProvider+      `Prelude.hashWithSalt` instanceId+      `Prelude.hashWithSalt` username++instance Prelude.NFData DisassociateUser where+  rnf DisassociateUser' {..} =+    Prelude.rnf domain+      `Prelude.seq` Prelude.rnf identityProvider+      `Prelude.seq` Prelude.rnf instanceId+      `Prelude.seq` Prelude.rnf username++instance Data.ToHeaders DisassociateUser where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DisassociateUser where+  toJSON DisassociateUser' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Domain" Data..=) Prelude.<$> domain,+            Prelude.Just+              ("IdentityProvider" Data..= identityProvider),+            Prelude.Just ("InstanceId" Data..= instanceId),+            Prelude.Just ("Username" Data..= username)+          ]+      )++instance Data.ToPath DisassociateUser where+  toPath = Prelude.const "/user/DisassociateUser"++instance Data.ToQuery DisassociateUser where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociateUserResponse' smart constructor.+data DisassociateUserResponse = DisassociateUserResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Metadata that describes the associate user operation.+    instanceUserSummary :: InstanceUserSummary+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateUserResponse' 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', 'disassociateUserResponse_httpStatus' - The response's http status code.+--+-- 'instanceUserSummary', 'disassociateUserResponse_instanceUserSummary' - Metadata that describes the associate user operation.+newDisassociateUserResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'instanceUserSummary'+  InstanceUserSummary ->+  DisassociateUserResponse+newDisassociateUserResponse+  pHttpStatus_+  pInstanceUserSummary_ =+    DisassociateUserResponse'+      { httpStatus =+          pHttpStatus_,+        instanceUserSummary = pInstanceUserSummary_+      }++-- | The response's http status code.+disassociateUserResponse_httpStatus :: Lens.Lens' DisassociateUserResponse Prelude.Int+disassociateUserResponse_httpStatus = Lens.lens (\DisassociateUserResponse' {httpStatus} -> httpStatus) (\s@DisassociateUserResponse' {} a -> s {httpStatus = a} :: DisassociateUserResponse)++-- | Metadata that describes the associate user operation.+disassociateUserResponse_instanceUserSummary :: Lens.Lens' DisassociateUserResponse InstanceUserSummary+disassociateUserResponse_instanceUserSummary = Lens.lens (\DisassociateUserResponse' {instanceUserSummary} -> instanceUserSummary) (\s@DisassociateUserResponse' {} a -> s {instanceUserSummary = a} :: DisassociateUserResponse)++instance Prelude.NFData DisassociateUserResponse where+  rnf DisassociateUserResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf instanceUserSummary
+ gen/Amazonka/LicenseManagerUserSubscriptions/Lens.hs view
@@ -0,0 +1,181 @@+{-# 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.LicenseManagerUserSubscriptions.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.LicenseManagerUserSubscriptions.Lens+  ( -- * Operations++    -- ** AssociateUser+    associateUser_domain,+    associateUser_identityProvider,+    associateUser_instanceId,+    associateUser_username,+    associateUserResponse_httpStatus,+    associateUserResponse_instanceUserSummary,++    -- ** DeregisterIdentityProvider+    deregisterIdentityProvider_identityProvider,+    deregisterIdentityProvider_product,+    deregisterIdentityProviderResponse_httpStatus,+    deregisterIdentityProviderResponse_identityProviderSummary,++    -- ** DisassociateUser+    disassociateUser_domain,+    disassociateUser_identityProvider,+    disassociateUser_instanceId,+    disassociateUser_username,+    disassociateUserResponse_httpStatus,+    disassociateUserResponse_instanceUserSummary,++    -- ** ListIdentityProviders+    listIdentityProviders_maxResults,+    listIdentityProviders_nextToken,+    listIdentityProvidersResponse_nextToken,+    listIdentityProvidersResponse_httpStatus,+    listIdentityProvidersResponse_identityProviderSummaries,++    -- ** ListInstances+    listInstances_filters,+    listInstances_maxResults,+    listInstances_nextToken,+    listInstancesResponse_instanceSummaries,+    listInstancesResponse_nextToken,+    listInstancesResponse_httpStatus,++    -- ** ListProductSubscriptions+    listProductSubscriptions_filters,+    listProductSubscriptions_maxResults,+    listProductSubscriptions_nextToken,+    listProductSubscriptions_identityProvider,+    listProductSubscriptions_product,+    listProductSubscriptionsResponse_nextToken,+    listProductSubscriptionsResponse_productUserSummaries,+    listProductSubscriptionsResponse_httpStatus,++    -- ** ListUserAssociations+    listUserAssociations_filters,+    listUserAssociations_maxResults,+    listUserAssociations_nextToken,+    listUserAssociations_identityProvider,+    listUserAssociations_instanceId,+    listUserAssociationsResponse_instanceUserSummaries,+    listUserAssociationsResponse_nextToken,+    listUserAssociationsResponse_httpStatus,++    -- ** RegisterIdentityProvider+    registerIdentityProvider_settings,+    registerIdentityProvider_identityProvider,+    registerIdentityProvider_product,+    registerIdentityProviderResponse_httpStatus,+    registerIdentityProviderResponse_identityProviderSummary,++    -- ** StartProductSubscription+    startProductSubscription_domain,+    startProductSubscription_identityProvider,+    startProductSubscription_product,+    startProductSubscription_username,+    startProductSubscriptionResponse_httpStatus,+    startProductSubscriptionResponse_productUserSummary,++    -- ** StopProductSubscription+    stopProductSubscription_domain,+    stopProductSubscription_identityProvider,+    stopProductSubscription_product,+    stopProductSubscription_username,+    stopProductSubscriptionResponse_httpStatus,+    stopProductSubscriptionResponse_productUserSummary,++    -- ** UpdateIdentityProviderSettings+    updateIdentityProviderSettings_identityProvider,+    updateIdentityProviderSettings_product,+    updateIdentityProviderSettings_updateSettings,+    updateIdentityProviderSettingsResponse_httpStatus,+    updateIdentityProviderSettingsResponse_identityProviderSummary,++    -- * Types++    -- ** ActiveDirectoryIdentityProvider+    activeDirectoryIdentityProvider_directoryId,++    -- ** Filter+    filter_attribute,+    filter_operation,+    filter_value,++    -- ** IdentityProvider+    identityProvider_activeDirectoryIdentityProvider,++    -- ** IdentityProviderSummary+    identityProviderSummary_failureMessage,+    identityProviderSummary_identityProvider,+    identityProviderSummary_product,+    identityProviderSummary_settings,+    identityProviderSummary_status,++    -- ** InstanceSummary+    instanceSummary_lastStatusCheckDate,+    instanceSummary_statusMessage,+    instanceSummary_instanceId,+    instanceSummary_products,+    instanceSummary_status,++    -- ** InstanceUserSummary+    instanceUserSummary_associationDate,+    instanceUserSummary_disassociationDate,+    instanceUserSummary_domain,+    instanceUserSummary_statusMessage,+    instanceUserSummary_identityProvider,+    instanceUserSummary_instanceId,+    instanceUserSummary_status,+    instanceUserSummary_username,++    -- ** ProductUserSummary+    productUserSummary_domain,+    productUserSummary_statusMessage,+    productUserSummary_subscriptionEndDate,+    productUserSummary_subscriptionStartDate,+    productUserSummary_identityProvider,+    productUserSummary_product,+    productUserSummary_status,+    productUserSummary_username,++    -- ** Settings+    settings_securityGroupId,+    settings_subnets,++    -- ** UpdateSettings+    updateSettings_securityGroupId,+    updateSettings_addSubnets,+    updateSettings_removeSubnets,+  )+where++import Amazonka.LicenseManagerUserSubscriptions.AssociateUser+import Amazonka.LicenseManagerUserSubscriptions.DeregisterIdentityProvider+import Amazonka.LicenseManagerUserSubscriptions.DisassociateUser+import Amazonka.LicenseManagerUserSubscriptions.ListIdentityProviders+import Amazonka.LicenseManagerUserSubscriptions.ListInstances+import Amazonka.LicenseManagerUserSubscriptions.ListProductSubscriptions+import Amazonka.LicenseManagerUserSubscriptions.ListUserAssociations+import Amazonka.LicenseManagerUserSubscriptions.RegisterIdentityProvider+import Amazonka.LicenseManagerUserSubscriptions.StartProductSubscription+import Amazonka.LicenseManagerUserSubscriptions.StopProductSubscription+import Amazonka.LicenseManagerUserSubscriptions.Types.ActiveDirectoryIdentityProvider+import Amazonka.LicenseManagerUserSubscriptions.Types.Filter+import Amazonka.LicenseManagerUserSubscriptions.Types.IdentityProvider+import Amazonka.LicenseManagerUserSubscriptions.Types.IdentityProviderSummary+import Amazonka.LicenseManagerUserSubscriptions.Types.InstanceSummary+import Amazonka.LicenseManagerUserSubscriptions.Types.InstanceUserSummary+import Amazonka.LicenseManagerUserSubscriptions.Types.ProductUserSummary+import Amazonka.LicenseManagerUserSubscriptions.Types.Settings+import Amazonka.LicenseManagerUserSubscriptions.Types.UpdateSettings+import Amazonka.LicenseManagerUserSubscriptions.UpdateIdentityProviderSettings
+ gen/Amazonka/LicenseManagerUserSubscriptions/ListIdentityProviders.hs view
@@ -0,0 +1,221 @@+{-# 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.LicenseManagerUserSubscriptions.ListIdentityProviders+-- 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 the identity providers for user-based subscriptions.+--+-- This operation returns paginated results.+module Amazonka.LicenseManagerUserSubscriptions.ListIdentityProviders+  ( -- * Creating a Request+    ListIdentityProviders (..),+    newListIdentityProviders,++    -- * Request Lenses+    listIdentityProviders_maxResults,+    listIdentityProviders_nextToken,++    -- * Destructuring the Response+    ListIdentityProvidersResponse (..),+    newListIdentityProvidersResponse,++    -- * Response Lenses+    listIdentityProvidersResponse_nextToken,+    listIdentityProvidersResponse_httpStatus,+    listIdentityProvidersResponse_identityProviderSummaries,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListIdentityProviders' smart constructor.+data ListIdentityProviders = ListIdentityProviders'+  { -- | Maximum number of results to return in a single call.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | Token for the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListIdentityProviders' 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', 'listIdentityProviders_maxResults' - Maximum number of results to return in a single call.+--+-- 'nextToken', 'listIdentityProviders_nextToken' - Token for the next set of results.+newListIdentityProviders ::+  ListIdentityProviders+newListIdentityProviders =+  ListIdentityProviders'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Maximum number of results to return in a single call.+listIdentityProviders_maxResults :: Lens.Lens' ListIdentityProviders (Prelude.Maybe Prelude.Int)+listIdentityProviders_maxResults = Lens.lens (\ListIdentityProviders' {maxResults} -> maxResults) (\s@ListIdentityProviders' {} a -> s {maxResults = a} :: ListIdentityProviders)++-- | Token for the next set of results.+listIdentityProviders_nextToken :: Lens.Lens' ListIdentityProviders (Prelude.Maybe Prelude.Text)+listIdentityProviders_nextToken = Lens.lens (\ListIdentityProviders' {nextToken} -> nextToken) (\s@ListIdentityProviders' {} a -> s {nextToken = a} :: ListIdentityProviders)++instance Core.AWSPager ListIdentityProviders where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listIdentityProvidersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^. listIdentityProvidersResponse_identityProviderSummaries+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listIdentityProviders_nextToken+          Lens..~ rs+          Lens.^? listIdentityProvidersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListIdentityProviders where+  type+    AWSResponse ListIdentityProviders =+      ListIdentityProvidersResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListIdentityProvidersResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "IdentityProviderSummaries"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable ListIdentityProviders where+  hashWithSalt _salt ListIdentityProviders' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListIdentityProviders where+  rnf ListIdentityProviders' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListIdentityProviders where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListIdentityProviders where+  toJSON ListIdentityProviders' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListIdentityProviders where+  toPath =+    Prelude.const+      "/identity-provider/ListIdentityProviders"++instance Data.ToQuery ListIdentityProviders where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListIdentityProvidersResponse' smart constructor.+data ListIdentityProvidersResponse = ListIdentityProvidersResponse'+  { -- | Token for the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Metadata that describes the list identity providers operation.+    identityProviderSummaries :: [IdentityProviderSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListIdentityProvidersResponse' 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', 'listIdentityProvidersResponse_nextToken' - Token for the next set of results.+--+-- 'httpStatus', 'listIdentityProvidersResponse_httpStatus' - The response's http status code.+--+-- 'identityProviderSummaries', 'listIdentityProvidersResponse_identityProviderSummaries' - Metadata that describes the list identity providers operation.+newListIdentityProvidersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListIdentityProvidersResponse+newListIdentityProvidersResponse pHttpStatus_ =+  ListIdentityProvidersResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      identityProviderSummaries = Prelude.mempty+    }++-- | Token for the next set of results.+listIdentityProvidersResponse_nextToken :: Lens.Lens' ListIdentityProvidersResponse (Prelude.Maybe Prelude.Text)+listIdentityProvidersResponse_nextToken = Lens.lens (\ListIdentityProvidersResponse' {nextToken} -> nextToken) (\s@ListIdentityProvidersResponse' {} a -> s {nextToken = a} :: ListIdentityProvidersResponse)++-- | The response's http status code.+listIdentityProvidersResponse_httpStatus :: Lens.Lens' ListIdentityProvidersResponse Prelude.Int+listIdentityProvidersResponse_httpStatus = Lens.lens (\ListIdentityProvidersResponse' {httpStatus} -> httpStatus) (\s@ListIdentityProvidersResponse' {} a -> s {httpStatus = a} :: ListIdentityProvidersResponse)++-- | Metadata that describes the list identity providers operation.+listIdentityProvidersResponse_identityProviderSummaries :: Lens.Lens' ListIdentityProvidersResponse [IdentityProviderSummary]+listIdentityProvidersResponse_identityProviderSummaries = Lens.lens (\ListIdentityProvidersResponse' {identityProviderSummaries} -> identityProviderSummaries) (\s@ListIdentityProvidersResponse' {} a -> s {identityProviderSummaries = a} :: ListIdentityProvidersResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListIdentityProvidersResponse where+  rnf ListIdentityProvidersResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf identityProviderSummaries
+ gen/Amazonka/LicenseManagerUserSubscriptions/ListInstances.hs view
@@ -0,0 +1,235 @@+{-# 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.LicenseManagerUserSubscriptions.ListInstances+-- 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 the EC2 instances providing user-based subscriptions.+--+-- This operation returns paginated results.+module Amazonka.LicenseManagerUserSubscriptions.ListInstances+  ( -- * Creating a Request+    ListInstances (..),+    newListInstances,++    -- * Request Lenses+    listInstances_filters,+    listInstances_maxResults,+    listInstances_nextToken,++    -- * Destructuring the Response+    ListInstancesResponse (..),+    newListInstancesResponse,++    -- * Response Lenses+    listInstancesResponse_instanceSummaries,+    listInstancesResponse_nextToken,+    listInstancesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListInstances' smart constructor.+data ListInstances = ListInstances'+  { -- | An array of structures that you can use to filter the results to those+    -- that match one or more sets of key-value pairs that you specify.+    filters :: Prelude.Maybe [Filter],+    -- | Maximum number of results to return in a single call.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | Token for the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInstances' 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', 'listInstances_filters' - An array of structures that you can use to filter the results to those+-- that match one or more sets of key-value pairs that you specify.+--+-- 'maxResults', 'listInstances_maxResults' - Maximum number of results to return in a single call.+--+-- 'nextToken', 'listInstances_nextToken' - Token for the next set of results.+newListInstances ::+  ListInstances+newListInstances =+  ListInstances'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | An array of structures that you can use to filter the results to those+-- that match one or more sets of key-value pairs that you specify.+listInstances_filters :: Lens.Lens' ListInstances (Prelude.Maybe [Filter])+listInstances_filters = Lens.lens (\ListInstances' {filters} -> filters) (\s@ListInstances' {} a -> s {filters = a} :: ListInstances) Prelude.. Lens.mapping Lens.coerced++-- | Maximum number of results to return in a single call.+listInstances_maxResults :: Lens.Lens' ListInstances (Prelude.Maybe Prelude.Int)+listInstances_maxResults = Lens.lens (\ListInstances' {maxResults} -> maxResults) (\s@ListInstances' {} a -> s {maxResults = a} :: ListInstances)++-- | Token for the next set of results.+listInstances_nextToken :: Lens.Lens' ListInstances (Prelude.Maybe Prelude.Text)+listInstances_nextToken = Lens.lens (\ListInstances' {nextToken} -> nextToken) (\s@ListInstances' {} a -> s {nextToken = a} :: ListInstances)++instance Core.AWSPager ListInstances where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listInstancesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listInstancesResponse_instanceSummaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listInstances_nextToken+          Lens..~ rs+          Lens.^? listInstancesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListInstances where+  type+    AWSResponse ListInstances =+      ListInstancesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListInstancesResponse'+            Prelude.<$> ( x+                            Data..?> "InstanceSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListInstances where+  hashWithSalt _salt ListInstances' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListInstances where+  rnf ListInstances' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListInstances where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListInstances where+  toJSON ListInstances' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListInstances where+  toPath = Prelude.const "/instance/ListInstances"++instance Data.ToQuery ListInstances where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListInstancesResponse' smart constructor.+data ListInstancesResponse = ListInstancesResponse'+  { -- | Metadata that describes the list instances operation.+    instanceSummaries :: Prelude.Maybe [InstanceSummary],+    -- | Token for the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListInstancesResponse' 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:+--+-- 'instanceSummaries', 'listInstancesResponse_instanceSummaries' - Metadata that describes the list instances operation.+--+-- 'nextToken', 'listInstancesResponse_nextToken' - Token for the next set of results.+--+-- 'httpStatus', 'listInstancesResponse_httpStatus' - The response's http status code.+newListInstancesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListInstancesResponse+newListInstancesResponse pHttpStatus_ =+  ListInstancesResponse'+    { instanceSummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Metadata that describes the list instances operation.+listInstancesResponse_instanceSummaries :: Lens.Lens' ListInstancesResponse (Prelude.Maybe [InstanceSummary])+listInstancesResponse_instanceSummaries = Lens.lens (\ListInstancesResponse' {instanceSummaries} -> instanceSummaries) (\s@ListInstancesResponse' {} a -> s {instanceSummaries = a} :: ListInstancesResponse) Prelude.. Lens.mapping Lens.coerced++-- | Token for the next set of results.+listInstancesResponse_nextToken :: Lens.Lens' ListInstancesResponse (Prelude.Maybe Prelude.Text)+listInstancesResponse_nextToken = Lens.lens (\ListInstancesResponse' {nextToken} -> nextToken) (\s@ListInstancesResponse' {} a -> s {nextToken = a} :: ListInstancesResponse)++-- | The response's http status code.+listInstancesResponse_httpStatus :: Lens.Lens' ListInstancesResponse Prelude.Int+listInstancesResponse_httpStatus = Lens.lens (\ListInstancesResponse' {httpStatus} -> httpStatus) (\s@ListInstancesResponse' {} a -> s {httpStatus = a} :: ListInstancesResponse)++instance Prelude.NFData ListInstancesResponse where+  rnf ListInstancesResponse' {..} =+    Prelude.rnf instanceSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LicenseManagerUserSubscriptions/ListProductSubscriptions.hs view
@@ -0,0 +1,274 @@+{-# 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.LicenseManagerUserSubscriptions.ListProductSubscriptions+-- 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 the user-based subscription products available from an identity+-- provider.+--+-- This operation returns paginated results.+module Amazonka.LicenseManagerUserSubscriptions.ListProductSubscriptions+  ( -- * Creating a Request+    ListProductSubscriptions (..),+    newListProductSubscriptions,++    -- * Request Lenses+    listProductSubscriptions_filters,+    listProductSubscriptions_maxResults,+    listProductSubscriptions_nextToken,+    listProductSubscriptions_identityProvider,+    listProductSubscriptions_product,++    -- * Destructuring the Response+    ListProductSubscriptionsResponse (..),+    newListProductSubscriptionsResponse,++    -- * Response Lenses+    listProductSubscriptionsResponse_nextToken,+    listProductSubscriptionsResponse_productUserSummaries,+    listProductSubscriptionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListProductSubscriptions' smart constructor.+data ListProductSubscriptions = ListProductSubscriptions'+  { -- | An array of structures that you can use to filter the results to those+    -- that match one or more sets of key-value pairs that you specify.+    filters :: Prelude.Maybe [Filter],+    -- | Maximum number of results to return in a single call.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | Token for the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An object that specifies details for the identity provider.+    identityProvider :: IdentityProvider,+    -- | The name of the user-based subscription product.+    product :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProductSubscriptions' 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', 'listProductSubscriptions_filters' - An array of structures that you can use to filter the results to those+-- that match one or more sets of key-value pairs that you specify.+--+-- 'maxResults', 'listProductSubscriptions_maxResults' - Maximum number of results to return in a single call.+--+-- 'nextToken', 'listProductSubscriptions_nextToken' - Token for the next set of results.+--+-- 'identityProvider', 'listProductSubscriptions_identityProvider' - An object that specifies details for the identity provider.+--+-- 'product', 'listProductSubscriptions_product' - The name of the user-based subscription product.+newListProductSubscriptions ::+  -- | 'identityProvider'+  IdentityProvider ->+  -- | 'product'+  Prelude.Text ->+  ListProductSubscriptions+newListProductSubscriptions+  pIdentityProvider_+  pProduct_ =+    ListProductSubscriptions'+      { filters =+          Prelude.Nothing,+        maxResults = Prelude.Nothing,+        nextToken = Prelude.Nothing,+        identityProvider = pIdentityProvider_,+        product = pProduct_+      }++-- | An array of structures that you can use to filter the results to those+-- that match one or more sets of key-value pairs that you specify.+listProductSubscriptions_filters :: Lens.Lens' ListProductSubscriptions (Prelude.Maybe [Filter])+listProductSubscriptions_filters = Lens.lens (\ListProductSubscriptions' {filters} -> filters) (\s@ListProductSubscriptions' {} a -> s {filters = a} :: ListProductSubscriptions) Prelude.. Lens.mapping Lens.coerced++-- | Maximum number of results to return in a single call.+listProductSubscriptions_maxResults :: Lens.Lens' ListProductSubscriptions (Prelude.Maybe Prelude.Int)+listProductSubscriptions_maxResults = Lens.lens (\ListProductSubscriptions' {maxResults} -> maxResults) (\s@ListProductSubscriptions' {} a -> s {maxResults = a} :: ListProductSubscriptions)++-- | Token for the next set of results.+listProductSubscriptions_nextToken :: Lens.Lens' ListProductSubscriptions (Prelude.Maybe Prelude.Text)+listProductSubscriptions_nextToken = Lens.lens (\ListProductSubscriptions' {nextToken} -> nextToken) (\s@ListProductSubscriptions' {} a -> s {nextToken = a} :: ListProductSubscriptions)++-- | An object that specifies details for the identity provider.+listProductSubscriptions_identityProvider :: Lens.Lens' ListProductSubscriptions IdentityProvider+listProductSubscriptions_identityProvider = Lens.lens (\ListProductSubscriptions' {identityProvider} -> identityProvider) (\s@ListProductSubscriptions' {} a -> s {identityProvider = a} :: ListProductSubscriptions)++-- | The name of the user-based subscription product.+listProductSubscriptions_product :: Lens.Lens' ListProductSubscriptions Prelude.Text+listProductSubscriptions_product = Lens.lens (\ListProductSubscriptions' {product} -> product) (\s@ListProductSubscriptions' {} a -> s {product = a} :: ListProductSubscriptions)++instance Core.AWSPager ListProductSubscriptions where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listProductSubscriptionsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listProductSubscriptionsResponse_productUserSummaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listProductSubscriptions_nextToken+          Lens..~ rs+          Lens.^? listProductSubscriptionsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListProductSubscriptions where+  type+    AWSResponse ListProductSubscriptions =+      ListProductSubscriptionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListProductSubscriptionsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> ( x+                            Data..?> "ProductUserSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListProductSubscriptions where+  hashWithSalt _salt ListProductSubscriptions' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` identityProvider+      `Prelude.hashWithSalt` product++instance Prelude.NFData ListProductSubscriptions where+  rnf ListProductSubscriptions' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf identityProvider+      `Prelude.seq` Prelude.rnf product++instance Data.ToHeaders ListProductSubscriptions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListProductSubscriptions where+  toJSON ListProductSubscriptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("IdentityProvider" Data..= identityProvider),+            Prelude.Just ("Product" Data..= product)+          ]+      )++instance Data.ToPath ListProductSubscriptions where+  toPath =+    Prelude.const "/user/ListProductSubscriptions"++instance Data.ToQuery ListProductSubscriptions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListProductSubscriptionsResponse' smart constructor.+data ListProductSubscriptionsResponse = ListProductSubscriptionsResponse'+  { -- | Token for the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Metadata that describes the list product subscriptions operation.+    productUserSummaries :: Prelude.Maybe [ProductUserSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProductSubscriptionsResponse' 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', 'listProductSubscriptionsResponse_nextToken' - Token for the next set of results.+--+-- 'productUserSummaries', 'listProductSubscriptionsResponse_productUserSummaries' - Metadata that describes the list product subscriptions operation.+--+-- 'httpStatus', 'listProductSubscriptionsResponse_httpStatus' - The response's http status code.+newListProductSubscriptionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListProductSubscriptionsResponse+newListProductSubscriptionsResponse pHttpStatus_ =+  ListProductSubscriptionsResponse'+    { nextToken =+        Prelude.Nothing,+      productUserSummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Token for the next set of results.+listProductSubscriptionsResponse_nextToken :: Lens.Lens' ListProductSubscriptionsResponse (Prelude.Maybe Prelude.Text)+listProductSubscriptionsResponse_nextToken = Lens.lens (\ListProductSubscriptionsResponse' {nextToken} -> nextToken) (\s@ListProductSubscriptionsResponse' {} a -> s {nextToken = a} :: ListProductSubscriptionsResponse)++-- | Metadata that describes the list product subscriptions operation.+listProductSubscriptionsResponse_productUserSummaries :: Lens.Lens' ListProductSubscriptionsResponse (Prelude.Maybe [ProductUserSummary])+listProductSubscriptionsResponse_productUserSummaries = Lens.lens (\ListProductSubscriptionsResponse' {productUserSummaries} -> productUserSummaries) (\s@ListProductSubscriptionsResponse' {} a -> s {productUserSummaries = a} :: ListProductSubscriptionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listProductSubscriptionsResponse_httpStatus :: Lens.Lens' ListProductSubscriptionsResponse Prelude.Int+listProductSubscriptionsResponse_httpStatus = Lens.lens (\ListProductSubscriptionsResponse' {httpStatus} -> httpStatus) (\s@ListProductSubscriptionsResponse' {} a -> s {httpStatus = a} :: ListProductSubscriptionsResponse)++instance+  Prelude.NFData+    ListProductSubscriptionsResponse+  where+  rnf ListProductSubscriptionsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf productUserSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LicenseManagerUserSubscriptions/ListUserAssociations.hs view
@@ -0,0 +1,268 @@+{-# 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.LicenseManagerUserSubscriptions.ListUserAssociations+-- 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 user associations for an identity provider.+--+-- This operation returns paginated results.+module Amazonka.LicenseManagerUserSubscriptions.ListUserAssociations+  ( -- * Creating a Request+    ListUserAssociations (..),+    newListUserAssociations,++    -- * Request Lenses+    listUserAssociations_filters,+    listUserAssociations_maxResults,+    listUserAssociations_nextToken,+    listUserAssociations_identityProvider,+    listUserAssociations_instanceId,++    -- * Destructuring the Response+    ListUserAssociationsResponse (..),+    newListUserAssociationsResponse,++    -- * Response Lenses+    listUserAssociationsResponse_instanceUserSummaries,+    listUserAssociationsResponse_nextToken,+    listUserAssociationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListUserAssociations' smart constructor.+data ListUserAssociations = ListUserAssociations'+  { -- | An array of structures that you can use to filter the results to those+    -- that match one or more sets of key-value pairs that you specify.+    filters :: Prelude.Maybe [Filter],+    -- | Maximum number of results to return in a single call.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | Token for the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An object that specifies details for the identity provider.+    identityProvider :: IdentityProvider,+    -- | The ID of the EC2 instance, which provides user-based subscriptions.+    instanceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListUserAssociations' 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', 'listUserAssociations_filters' - An array of structures that you can use to filter the results to those+-- that match one or more sets of key-value pairs that you specify.+--+-- 'maxResults', 'listUserAssociations_maxResults' - Maximum number of results to return in a single call.+--+-- 'nextToken', 'listUserAssociations_nextToken' - Token for the next set of results.+--+-- 'identityProvider', 'listUserAssociations_identityProvider' - An object that specifies details for the identity provider.+--+-- 'instanceId', 'listUserAssociations_instanceId' - The ID of the EC2 instance, which provides user-based subscriptions.+newListUserAssociations ::+  -- | 'identityProvider'+  IdentityProvider ->+  -- | 'instanceId'+  Prelude.Text ->+  ListUserAssociations+newListUserAssociations+  pIdentityProvider_+  pInstanceId_ =+    ListUserAssociations'+      { filters = Prelude.Nothing,+        maxResults = Prelude.Nothing,+        nextToken = Prelude.Nothing,+        identityProvider = pIdentityProvider_,+        instanceId = pInstanceId_+      }++-- | An array of structures that you can use to filter the results to those+-- that match one or more sets of key-value pairs that you specify.+listUserAssociations_filters :: Lens.Lens' ListUserAssociations (Prelude.Maybe [Filter])+listUserAssociations_filters = Lens.lens (\ListUserAssociations' {filters} -> filters) (\s@ListUserAssociations' {} a -> s {filters = a} :: ListUserAssociations) Prelude.. Lens.mapping Lens.coerced++-- | Maximum number of results to return in a single call.+listUserAssociations_maxResults :: Lens.Lens' ListUserAssociations (Prelude.Maybe Prelude.Int)+listUserAssociations_maxResults = Lens.lens (\ListUserAssociations' {maxResults} -> maxResults) (\s@ListUserAssociations' {} a -> s {maxResults = a} :: ListUserAssociations)++-- | Token for the next set of results.+listUserAssociations_nextToken :: Lens.Lens' ListUserAssociations (Prelude.Maybe Prelude.Text)+listUserAssociations_nextToken = Lens.lens (\ListUserAssociations' {nextToken} -> nextToken) (\s@ListUserAssociations' {} a -> s {nextToken = a} :: ListUserAssociations)++-- | An object that specifies details for the identity provider.+listUserAssociations_identityProvider :: Lens.Lens' ListUserAssociations IdentityProvider+listUserAssociations_identityProvider = Lens.lens (\ListUserAssociations' {identityProvider} -> identityProvider) (\s@ListUserAssociations' {} a -> s {identityProvider = a} :: ListUserAssociations)++-- | The ID of the EC2 instance, which provides user-based subscriptions.+listUserAssociations_instanceId :: Lens.Lens' ListUserAssociations Prelude.Text+listUserAssociations_instanceId = Lens.lens (\ListUserAssociations' {instanceId} -> instanceId) (\s@ListUserAssociations' {} a -> s {instanceId = a} :: ListUserAssociations)++instance Core.AWSPager ListUserAssociations where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listUserAssociationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listUserAssociationsResponse_instanceUserSummaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listUserAssociations_nextToken+          Lens..~ rs+          Lens.^? listUserAssociationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListUserAssociations where+  type+    AWSResponse ListUserAssociations =+      ListUserAssociationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListUserAssociationsResponse'+            Prelude.<$> ( x+                            Data..?> "InstanceUserSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListUserAssociations where+  hashWithSalt _salt ListUserAssociations' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` identityProvider+      `Prelude.hashWithSalt` instanceId++instance Prelude.NFData ListUserAssociations where+  rnf ListUserAssociations' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf identityProvider+      `Prelude.seq` Prelude.rnf instanceId++instance Data.ToHeaders ListUserAssociations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListUserAssociations where+  toJSON ListUserAssociations' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("IdentityProvider" Data..= identityProvider),+            Prelude.Just ("InstanceId" Data..= instanceId)+          ]+      )++instance Data.ToPath ListUserAssociations where+  toPath = Prelude.const "/user/ListUserAssociations"++instance Data.ToQuery ListUserAssociations where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListUserAssociationsResponse' smart constructor.+data ListUserAssociationsResponse = ListUserAssociationsResponse'+  { -- | Metadata that describes the list user association operation.+    instanceUserSummaries :: Prelude.Maybe [InstanceUserSummary],+    -- | Token for the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListUserAssociationsResponse' 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:+--+-- 'instanceUserSummaries', 'listUserAssociationsResponse_instanceUserSummaries' - Metadata that describes the list user association operation.+--+-- 'nextToken', 'listUserAssociationsResponse_nextToken' - Token for the next set of results.+--+-- 'httpStatus', 'listUserAssociationsResponse_httpStatus' - The response's http status code.+newListUserAssociationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListUserAssociationsResponse+newListUserAssociationsResponse pHttpStatus_ =+  ListUserAssociationsResponse'+    { instanceUserSummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Metadata that describes the list user association operation.+listUserAssociationsResponse_instanceUserSummaries :: Lens.Lens' ListUserAssociationsResponse (Prelude.Maybe [InstanceUserSummary])+listUserAssociationsResponse_instanceUserSummaries = Lens.lens (\ListUserAssociationsResponse' {instanceUserSummaries} -> instanceUserSummaries) (\s@ListUserAssociationsResponse' {} a -> s {instanceUserSummaries = a} :: ListUserAssociationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Token for the next set of results.+listUserAssociationsResponse_nextToken :: Lens.Lens' ListUserAssociationsResponse (Prelude.Maybe Prelude.Text)+listUserAssociationsResponse_nextToken = Lens.lens (\ListUserAssociationsResponse' {nextToken} -> nextToken) (\s@ListUserAssociationsResponse' {} a -> s {nextToken = a} :: ListUserAssociationsResponse)++-- | The response's http status code.+listUserAssociationsResponse_httpStatus :: Lens.Lens' ListUserAssociationsResponse Prelude.Int+listUserAssociationsResponse_httpStatus = Lens.lens (\ListUserAssociationsResponse' {httpStatus} -> httpStatus) (\s@ListUserAssociationsResponse' {} a -> s {httpStatus = a} :: ListUserAssociationsResponse)++instance Prelude.NFData ListUserAssociationsResponse where+  rnf ListUserAssociationsResponse' {..} =+    Prelude.rnf instanceUserSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LicenseManagerUserSubscriptions/RegisterIdentityProvider.hs view
@@ -0,0 +1,214 @@+{-# 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.LicenseManagerUserSubscriptions.RegisterIdentityProvider+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Registers an identity provider for user-based subscriptions.+module Amazonka.LicenseManagerUserSubscriptions.RegisterIdentityProvider+  ( -- * Creating a Request+    RegisterIdentityProvider (..),+    newRegisterIdentityProvider,++    -- * Request Lenses+    registerIdentityProvider_settings,+    registerIdentityProvider_identityProvider,+    registerIdentityProvider_product,++    -- * Destructuring the Response+    RegisterIdentityProviderResponse (..),+    newRegisterIdentityProviderResponse,++    -- * Response Lenses+    registerIdentityProviderResponse_httpStatus,+    registerIdentityProviderResponse_identityProviderSummary,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRegisterIdentityProvider' smart constructor.+data RegisterIdentityProvider = RegisterIdentityProvider'+  { -- | The registered identity provider’s product related configuration+    -- settings such as the subnets to provision VPC endpoints.+    settings :: Prelude.Maybe Settings,+    -- | An object that specifies details for the identity provider.+    identityProvider :: IdentityProvider,+    -- | The name of the user-based subscription product.+    product :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RegisterIdentityProvider' 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:+--+-- 'settings', 'registerIdentityProvider_settings' - The registered identity provider’s product related configuration+-- settings such as the subnets to provision VPC endpoints.+--+-- 'identityProvider', 'registerIdentityProvider_identityProvider' - An object that specifies details for the identity provider.+--+-- 'product', 'registerIdentityProvider_product' - The name of the user-based subscription product.+newRegisterIdentityProvider ::+  -- | 'identityProvider'+  IdentityProvider ->+  -- | 'product'+  Prelude.Text ->+  RegisterIdentityProvider+newRegisterIdentityProvider+  pIdentityProvider_+  pProduct_ =+    RegisterIdentityProvider'+      { settings =+          Prelude.Nothing,+        identityProvider = pIdentityProvider_,+        product = pProduct_+      }++-- | The registered identity provider’s product related configuration+-- settings such as the subnets to provision VPC endpoints.+registerIdentityProvider_settings :: Lens.Lens' RegisterIdentityProvider (Prelude.Maybe Settings)+registerIdentityProvider_settings = Lens.lens (\RegisterIdentityProvider' {settings} -> settings) (\s@RegisterIdentityProvider' {} a -> s {settings = a} :: RegisterIdentityProvider)++-- | An object that specifies details for the identity provider.+registerIdentityProvider_identityProvider :: Lens.Lens' RegisterIdentityProvider IdentityProvider+registerIdentityProvider_identityProvider = Lens.lens (\RegisterIdentityProvider' {identityProvider} -> identityProvider) (\s@RegisterIdentityProvider' {} a -> s {identityProvider = a} :: RegisterIdentityProvider)++-- | The name of the user-based subscription product.+registerIdentityProvider_product :: Lens.Lens' RegisterIdentityProvider Prelude.Text+registerIdentityProvider_product = Lens.lens (\RegisterIdentityProvider' {product} -> product) (\s@RegisterIdentityProvider' {} a -> s {product = a} :: RegisterIdentityProvider)++instance Core.AWSRequest RegisterIdentityProvider where+  type+    AWSResponse RegisterIdentityProvider =+      RegisterIdentityProviderResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          RegisterIdentityProviderResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "IdentityProviderSummary")+      )++instance Prelude.Hashable RegisterIdentityProvider where+  hashWithSalt _salt RegisterIdentityProvider' {..} =+    _salt+      `Prelude.hashWithSalt` settings+      `Prelude.hashWithSalt` identityProvider+      `Prelude.hashWithSalt` product++instance Prelude.NFData RegisterIdentityProvider where+  rnf RegisterIdentityProvider' {..} =+    Prelude.rnf settings+      `Prelude.seq` Prelude.rnf identityProvider+      `Prelude.seq` Prelude.rnf product++instance Data.ToHeaders RegisterIdentityProvider where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON RegisterIdentityProvider where+  toJSON RegisterIdentityProvider' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Settings" Data..=) Prelude.<$> settings,+            Prelude.Just+              ("IdentityProvider" Data..= identityProvider),+            Prelude.Just ("Product" Data..= product)+          ]+      )++instance Data.ToPath RegisterIdentityProvider where+  toPath =+    Prelude.const+      "/identity-provider/RegisterIdentityProvider"++instance Data.ToQuery RegisterIdentityProvider where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRegisterIdentityProviderResponse' smart constructor.+data RegisterIdentityProviderResponse = RegisterIdentityProviderResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Metadata that describes the results of an identity provider operation.+    identityProviderSummary :: IdentityProviderSummary+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RegisterIdentityProviderResponse' 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', 'registerIdentityProviderResponse_httpStatus' - The response's http status code.+--+-- 'identityProviderSummary', 'registerIdentityProviderResponse_identityProviderSummary' - Metadata that describes the results of an identity provider operation.+newRegisterIdentityProviderResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'identityProviderSummary'+  IdentityProviderSummary ->+  RegisterIdentityProviderResponse+newRegisterIdentityProviderResponse+  pHttpStatus_+  pIdentityProviderSummary_ =+    RegisterIdentityProviderResponse'+      { httpStatus =+          pHttpStatus_,+        identityProviderSummary =+          pIdentityProviderSummary_+      }++-- | The response's http status code.+registerIdentityProviderResponse_httpStatus :: Lens.Lens' RegisterIdentityProviderResponse Prelude.Int+registerIdentityProviderResponse_httpStatus = Lens.lens (\RegisterIdentityProviderResponse' {httpStatus} -> httpStatus) (\s@RegisterIdentityProviderResponse' {} a -> s {httpStatus = a} :: RegisterIdentityProviderResponse)++-- | Metadata that describes the results of an identity provider operation.+registerIdentityProviderResponse_identityProviderSummary :: Lens.Lens' RegisterIdentityProviderResponse IdentityProviderSummary+registerIdentityProviderResponse_identityProviderSummary = Lens.lens (\RegisterIdentityProviderResponse' {identityProviderSummary} -> identityProviderSummary) (\s@RegisterIdentityProviderResponse' {} a -> s {identityProviderSummary = a} :: RegisterIdentityProviderResponse)++instance+  Prelude.NFData+    RegisterIdentityProviderResponse+  where+  rnf RegisterIdentityProviderResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf identityProviderSummary
+ gen/Amazonka/LicenseManagerUserSubscriptions/StartProductSubscription.hs view
@@ -0,0 +1,232 @@+{-# 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.LicenseManagerUserSubscriptions.StartProductSubscription+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts a product subscription for a user with the specified identity+-- provider.+--+-- Your estimated bill for charges on the number of users and related costs+-- will take 48 hours to appear for billing periods that haven\'t closed+-- (marked as __Pending__ billing status) in Amazon Web Services Billing.+-- For more information, see+-- <https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/invoice.html Viewing your monthly charges>+-- in the /Amazon Web Services Billing User Guide/.+module Amazonka.LicenseManagerUserSubscriptions.StartProductSubscription+  ( -- * Creating a Request+    StartProductSubscription (..),+    newStartProductSubscription,++    -- * Request Lenses+    startProductSubscription_domain,+    startProductSubscription_identityProvider,+    startProductSubscription_product,+    startProductSubscription_username,++    -- * Destructuring the Response+    StartProductSubscriptionResponse (..),+    newStartProductSubscriptionResponse,++    -- * Response Lenses+    startProductSubscriptionResponse_httpStatus,+    startProductSubscriptionResponse_productUserSummary,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartProductSubscription' smart constructor.+data StartProductSubscription = StartProductSubscription'+  { -- | The domain name of the user.+    domain :: Prelude.Maybe Prelude.Text,+    -- | An object that specifies details for the identity provider.+    identityProvider :: IdentityProvider,+    -- | The name of the user-based subscription product.+    product :: Prelude.Text,+    -- | The user name from the identity provider of the user.+    username :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartProductSubscription' 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:+--+-- 'domain', 'startProductSubscription_domain' - The domain name of the user.+--+-- 'identityProvider', 'startProductSubscription_identityProvider' - An object that specifies details for the identity provider.+--+-- 'product', 'startProductSubscription_product' - The name of the user-based subscription product.+--+-- 'username', 'startProductSubscription_username' - The user name from the identity provider of the user.+newStartProductSubscription ::+  -- | 'identityProvider'+  IdentityProvider ->+  -- | 'product'+  Prelude.Text ->+  -- | 'username'+  Prelude.Text ->+  StartProductSubscription+newStartProductSubscription+  pIdentityProvider_+  pProduct_+  pUsername_ =+    StartProductSubscription'+      { domain = Prelude.Nothing,+        identityProvider = pIdentityProvider_,+        product = pProduct_,+        username = pUsername_+      }++-- | The domain name of the user.+startProductSubscription_domain :: Lens.Lens' StartProductSubscription (Prelude.Maybe Prelude.Text)+startProductSubscription_domain = Lens.lens (\StartProductSubscription' {domain} -> domain) (\s@StartProductSubscription' {} a -> s {domain = a} :: StartProductSubscription)++-- | An object that specifies details for the identity provider.+startProductSubscription_identityProvider :: Lens.Lens' StartProductSubscription IdentityProvider+startProductSubscription_identityProvider = Lens.lens (\StartProductSubscription' {identityProvider} -> identityProvider) (\s@StartProductSubscription' {} a -> s {identityProvider = a} :: StartProductSubscription)++-- | The name of the user-based subscription product.+startProductSubscription_product :: Lens.Lens' StartProductSubscription Prelude.Text+startProductSubscription_product = Lens.lens (\StartProductSubscription' {product} -> product) (\s@StartProductSubscription' {} a -> s {product = a} :: StartProductSubscription)++-- | The user name from the identity provider of the user.+startProductSubscription_username :: Lens.Lens' StartProductSubscription Prelude.Text+startProductSubscription_username = Lens.lens (\StartProductSubscription' {username} -> username) (\s@StartProductSubscription' {} a -> s {username = a} :: StartProductSubscription)++instance Core.AWSRequest StartProductSubscription where+  type+    AWSResponse StartProductSubscription =+      StartProductSubscriptionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartProductSubscriptionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "ProductUserSummary")+      )++instance Prelude.Hashable StartProductSubscription where+  hashWithSalt _salt StartProductSubscription' {..} =+    _salt+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` identityProvider+      `Prelude.hashWithSalt` product+      `Prelude.hashWithSalt` username++instance Prelude.NFData StartProductSubscription where+  rnf StartProductSubscription' {..} =+    Prelude.rnf domain+      `Prelude.seq` Prelude.rnf identityProvider+      `Prelude.seq` Prelude.rnf product+      `Prelude.seq` Prelude.rnf username++instance Data.ToHeaders StartProductSubscription where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartProductSubscription where+  toJSON StartProductSubscription' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Domain" Data..=) Prelude.<$> domain,+            Prelude.Just+              ("IdentityProvider" Data..= identityProvider),+            Prelude.Just ("Product" Data..= product),+            Prelude.Just ("Username" Data..= username)+          ]+      )++instance Data.ToPath StartProductSubscription where+  toPath =+    Prelude.const "/user/StartProductSubscription"++instance Data.ToQuery StartProductSubscription where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartProductSubscriptionResponse' smart constructor.+data StartProductSubscriptionResponse = StartProductSubscriptionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Metadata that describes the start product subscription operation.+    productUserSummary :: ProductUserSummary+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartProductSubscriptionResponse' 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', 'startProductSubscriptionResponse_httpStatus' - The response's http status code.+--+-- 'productUserSummary', 'startProductSubscriptionResponse_productUserSummary' - Metadata that describes the start product subscription operation.+newStartProductSubscriptionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'productUserSummary'+  ProductUserSummary ->+  StartProductSubscriptionResponse+newStartProductSubscriptionResponse+  pHttpStatus_+  pProductUserSummary_ =+    StartProductSubscriptionResponse'+      { httpStatus =+          pHttpStatus_,+        productUserSummary = pProductUserSummary_+      }++-- | The response's http status code.+startProductSubscriptionResponse_httpStatus :: Lens.Lens' StartProductSubscriptionResponse Prelude.Int+startProductSubscriptionResponse_httpStatus = Lens.lens (\StartProductSubscriptionResponse' {httpStatus} -> httpStatus) (\s@StartProductSubscriptionResponse' {} a -> s {httpStatus = a} :: StartProductSubscriptionResponse)++-- | Metadata that describes the start product subscription operation.+startProductSubscriptionResponse_productUserSummary :: Lens.Lens' StartProductSubscriptionResponse ProductUserSummary+startProductSubscriptionResponse_productUserSummary = Lens.lens (\StartProductSubscriptionResponse' {productUserSummary} -> productUserSummary) (\s@StartProductSubscriptionResponse' {} a -> s {productUserSummary = a} :: StartProductSubscriptionResponse)++instance+  Prelude.NFData+    StartProductSubscriptionResponse+  where+  rnf StartProductSubscriptionResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf productUserSummary
+ gen/Amazonka/LicenseManagerUserSubscriptions/StopProductSubscription.hs view
@@ -0,0 +1,225 @@+{-# 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.LicenseManagerUserSubscriptions.StopProductSubscription+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stops a product subscription for a user with the specified identity+-- provider.+module Amazonka.LicenseManagerUserSubscriptions.StopProductSubscription+  ( -- * Creating a Request+    StopProductSubscription (..),+    newStopProductSubscription,++    -- * Request Lenses+    stopProductSubscription_domain,+    stopProductSubscription_identityProvider,+    stopProductSubscription_product,+    stopProductSubscription_username,++    -- * Destructuring the Response+    StopProductSubscriptionResponse (..),+    newStopProductSubscriptionResponse,++    -- * Response Lenses+    stopProductSubscriptionResponse_httpStatus,+    stopProductSubscriptionResponse_productUserSummary,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStopProductSubscription' smart constructor.+data StopProductSubscription = StopProductSubscription'+  { -- | The domain name of the user.+    domain :: Prelude.Maybe Prelude.Text,+    -- | An object that specifies details for the identity provider.+    identityProvider :: IdentityProvider,+    -- | The name of the user-based subscription product.+    product :: Prelude.Text,+    -- | The user name from the identity provider for the user.+    username :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopProductSubscription' 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:+--+-- 'domain', 'stopProductSubscription_domain' - The domain name of the user.+--+-- 'identityProvider', 'stopProductSubscription_identityProvider' - An object that specifies details for the identity provider.+--+-- 'product', 'stopProductSubscription_product' - The name of the user-based subscription product.+--+-- 'username', 'stopProductSubscription_username' - The user name from the identity provider for the user.+newStopProductSubscription ::+  -- | 'identityProvider'+  IdentityProvider ->+  -- | 'product'+  Prelude.Text ->+  -- | 'username'+  Prelude.Text ->+  StopProductSubscription+newStopProductSubscription+  pIdentityProvider_+  pProduct_+  pUsername_ =+    StopProductSubscription'+      { domain = Prelude.Nothing,+        identityProvider = pIdentityProvider_,+        product = pProduct_,+        username = pUsername_+      }++-- | The domain name of the user.+stopProductSubscription_domain :: Lens.Lens' StopProductSubscription (Prelude.Maybe Prelude.Text)+stopProductSubscription_domain = Lens.lens (\StopProductSubscription' {domain} -> domain) (\s@StopProductSubscription' {} a -> s {domain = a} :: StopProductSubscription)++-- | An object that specifies details for the identity provider.+stopProductSubscription_identityProvider :: Lens.Lens' StopProductSubscription IdentityProvider+stopProductSubscription_identityProvider = Lens.lens (\StopProductSubscription' {identityProvider} -> identityProvider) (\s@StopProductSubscription' {} a -> s {identityProvider = a} :: StopProductSubscription)++-- | The name of the user-based subscription product.+stopProductSubscription_product :: Lens.Lens' StopProductSubscription Prelude.Text+stopProductSubscription_product = Lens.lens (\StopProductSubscription' {product} -> product) (\s@StopProductSubscription' {} a -> s {product = a} :: StopProductSubscription)++-- | The user name from the identity provider for the user.+stopProductSubscription_username :: Lens.Lens' StopProductSubscription Prelude.Text+stopProductSubscription_username = Lens.lens (\StopProductSubscription' {username} -> username) (\s@StopProductSubscription' {} a -> s {username = a} :: StopProductSubscription)++instance Core.AWSRequest StopProductSubscription where+  type+    AWSResponse StopProductSubscription =+      StopProductSubscriptionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StopProductSubscriptionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "ProductUserSummary")+      )++instance Prelude.Hashable StopProductSubscription where+  hashWithSalt _salt StopProductSubscription' {..} =+    _salt+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` identityProvider+      `Prelude.hashWithSalt` product+      `Prelude.hashWithSalt` username++instance Prelude.NFData StopProductSubscription where+  rnf StopProductSubscription' {..} =+    Prelude.rnf domain+      `Prelude.seq` Prelude.rnf identityProvider+      `Prelude.seq` Prelude.rnf product+      `Prelude.seq` Prelude.rnf username++instance Data.ToHeaders StopProductSubscription where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StopProductSubscription where+  toJSON StopProductSubscription' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Domain" Data..=) Prelude.<$> domain,+            Prelude.Just+              ("IdentityProvider" Data..= identityProvider),+            Prelude.Just ("Product" Data..= product),+            Prelude.Just ("Username" Data..= username)+          ]+      )++instance Data.ToPath StopProductSubscription where+  toPath =+    Prelude.const "/user/StopProductSubscription"++instance Data.ToQuery StopProductSubscription where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStopProductSubscriptionResponse' smart constructor.+data StopProductSubscriptionResponse = StopProductSubscriptionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Metadata that describes the start product subscription operation.+    productUserSummary :: ProductUserSummary+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopProductSubscriptionResponse' 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', 'stopProductSubscriptionResponse_httpStatus' - The response's http status code.+--+-- 'productUserSummary', 'stopProductSubscriptionResponse_productUserSummary' - Metadata that describes the start product subscription operation.+newStopProductSubscriptionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'productUserSummary'+  ProductUserSummary ->+  StopProductSubscriptionResponse+newStopProductSubscriptionResponse+  pHttpStatus_+  pProductUserSummary_ =+    StopProductSubscriptionResponse'+      { httpStatus =+          pHttpStatus_,+        productUserSummary = pProductUserSummary_+      }++-- | The response's http status code.+stopProductSubscriptionResponse_httpStatus :: Lens.Lens' StopProductSubscriptionResponse Prelude.Int+stopProductSubscriptionResponse_httpStatus = Lens.lens (\StopProductSubscriptionResponse' {httpStatus} -> httpStatus) (\s@StopProductSubscriptionResponse' {} a -> s {httpStatus = a} :: StopProductSubscriptionResponse)++-- | Metadata that describes the start product subscription operation.+stopProductSubscriptionResponse_productUserSummary :: Lens.Lens' StopProductSubscriptionResponse ProductUserSummary+stopProductSubscriptionResponse_productUserSummary = Lens.lens (\StopProductSubscriptionResponse' {productUserSummary} -> productUserSummary) (\s@StopProductSubscriptionResponse' {} a -> s {productUserSummary = a} :: StopProductSubscriptionResponse)++instance+  Prelude.NFData+    StopProductSubscriptionResponse+  where+  rnf StopProductSubscriptionResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf productUserSummary
+ gen/Amazonka/LicenseManagerUserSubscriptions/Types.hs view
@@ -0,0 +1,241 @@+{-# 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.LicenseManagerUserSubscriptions.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.LicenseManagerUserSubscriptions.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _ThrottlingException,+    _ValidationException,++    -- * ActiveDirectoryIdentityProvider+    ActiveDirectoryIdentityProvider (..),+    newActiveDirectoryIdentityProvider,+    activeDirectoryIdentityProvider_directoryId,++    -- * Filter+    Filter (..),+    newFilter,+    filter_attribute,+    filter_operation,+    filter_value,++    -- * IdentityProvider+    IdentityProvider (..),+    newIdentityProvider,+    identityProvider_activeDirectoryIdentityProvider,++    -- * IdentityProviderSummary+    IdentityProviderSummary (..),+    newIdentityProviderSummary,+    identityProviderSummary_failureMessage,+    identityProviderSummary_identityProvider,+    identityProviderSummary_product,+    identityProviderSummary_settings,+    identityProviderSummary_status,++    -- * InstanceSummary+    InstanceSummary (..),+    newInstanceSummary,+    instanceSummary_lastStatusCheckDate,+    instanceSummary_statusMessage,+    instanceSummary_instanceId,+    instanceSummary_products,+    instanceSummary_status,++    -- * InstanceUserSummary+    InstanceUserSummary (..),+    newInstanceUserSummary,+    instanceUserSummary_associationDate,+    instanceUserSummary_disassociationDate,+    instanceUserSummary_domain,+    instanceUserSummary_statusMessage,+    instanceUserSummary_identityProvider,+    instanceUserSummary_instanceId,+    instanceUserSummary_status,+    instanceUserSummary_username,++    -- * ProductUserSummary+    ProductUserSummary (..),+    newProductUserSummary,+    productUserSummary_domain,+    productUserSummary_statusMessage,+    productUserSummary_subscriptionEndDate,+    productUserSummary_subscriptionStartDate,+    productUserSummary_identityProvider,+    productUserSummary_product,+    productUserSummary_status,+    productUserSummary_username,++    -- * Settings+    Settings (..),+    newSettings,+    settings_securityGroupId,+    settings_subnets,++    -- * UpdateSettings+    UpdateSettings (..),+    newUpdateSettings,+    updateSettings_securityGroupId,+    updateSettings_addSubnets,+    updateSettings_removeSubnets,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.LicenseManagerUserSubscriptions.Types.ActiveDirectoryIdentityProvider+import Amazonka.LicenseManagerUserSubscriptions.Types.Filter+import Amazonka.LicenseManagerUserSubscriptions.Types.IdentityProvider+import Amazonka.LicenseManagerUserSubscriptions.Types.IdentityProviderSummary+import Amazonka.LicenseManagerUserSubscriptions.Types.InstanceSummary+import Amazonka.LicenseManagerUserSubscriptions.Types.InstanceUserSummary+import Amazonka.LicenseManagerUserSubscriptions.Types.ProductUserSummary+import Amazonka.LicenseManagerUserSubscriptions.Types.Settings+import Amazonka.LicenseManagerUserSubscriptions.Types.UpdateSettings+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2018-05-10@ of the Amazon License Manager User Subscriptions SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev =+        "LicenseManagerUserSubscriptions",+      Core.signer = Sign.v4,+      Core.endpointPrefix =+        "license-manager-user-subscriptions",+      Core.signingName =+        "license-manager-user-subscriptions",+      Core.version = "2018-05-10",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error =+        Core.parseJSONError+          "LicenseManagerUserSubscriptions",+      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 don\'t have sufficient access to perform this action.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"++-- | The request couldn\'t be completed because it conflicted with the+-- current state of the resource.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"++-- | An exception occurred with the service.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"++-- | The resource couldn\'t be found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | The request failed because a service quota is exceeded.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"++-- | The request was denied because of request throttling. Retry the request.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"++-- | A parameter is not valid.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"
+ gen/Amazonka/LicenseManagerUserSubscriptions/Types/ActiveDirectoryIdentityProvider.hs view
@@ -0,0 +1,90 @@+{-# 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.LicenseManagerUserSubscriptions.Types.ActiveDirectoryIdentityProvider+-- 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.LicenseManagerUserSubscriptions.Types.ActiveDirectoryIdentityProvider 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++-- | Details about an Active Directory identity provider.+--+-- /See:/ 'newActiveDirectoryIdentityProvider' smart constructor.+data ActiveDirectoryIdentityProvider = ActiveDirectoryIdentityProvider'+  { -- | The directory ID for an Active Directory identity provider.+    directoryId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ActiveDirectoryIdentityProvider' 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:+--+-- 'directoryId', 'activeDirectoryIdentityProvider_directoryId' - The directory ID for an Active Directory identity provider.+newActiveDirectoryIdentityProvider ::+  ActiveDirectoryIdentityProvider+newActiveDirectoryIdentityProvider =+  ActiveDirectoryIdentityProvider'+    { directoryId =+        Prelude.Nothing+    }++-- | The directory ID for an Active Directory identity provider.+activeDirectoryIdentityProvider_directoryId :: Lens.Lens' ActiveDirectoryIdentityProvider (Prelude.Maybe Prelude.Text)+activeDirectoryIdentityProvider_directoryId = Lens.lens (\ActiveDirectoryIdentityProvider' {directoryId} -> directoryId) (\s@ActiveDirectoryIdentityProvider' {} a -> s {directoryId = a} :: ActiveDirectoryIdentityProvider)++instance+  Data.FromJSON+    ActiveDirectoryIdentityProvider+  where+  parseJSON =+    Data.withObject+      "ActiveDirectoryIdentityProvider"+      ( \x ->+          ActiveDirectoryIdentityProvider'+            Prelude.<$> (x Data..:? "DirectoryId")+      )++instance+  Prelude.Hashable+    ActiveDirectoryIdentityProvider+  where+  hashWithSalt+    _salt+    ActiveDirectoryIdentityProvider' {..} =+      _salt `Prelude.hashWithSalt` directoryId++instance+  Prelude.NFData+    ActiveDirectoryIdentityProvider+  where+  rnf ActiveDirectoryIdentityProvider' {..} =+    Prelude.rnf directoryId++instance Data.ToJSON ActiveDirectoryIdentityProvider where+  toJSON ActiveDirectoryIdentityProvider' {..} =+    Data.object+      ( Prelude.catMaybes+          [("DirectoryId" Data..=) Prelude.<$> directoryId]+      )
+ gen/Amazonka/LicenseManagerUserSubscriptions/Types/Filter.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.LicenseManagerUserSubscriptions.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.LicenseManagerUserSubscriptions.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 filter name and value pair that is used to return more specific+-- results from a describe operation. Filters can be used to match a set of+-- resources by specific criteria, such as tags, attributes, or IDs.+--+-- /See:/ 'newFilter' smart constructor.+data Filter = Filter'+  { -- | The name of an attribute to use as a filter.+    attribute :: Prelude.Maybe Prelude.Text,+    -- | The type of search (For example, eq, geq, leq)+    operation :: Prelude.Maybe Prelude.Text,+    -- | Value of the filter.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, 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:+--+-- 'attribute', 'filter_attribute' - The name of an attribute to use as a filter.+--+-- 'operation', 'filter_operation' - The type of search (For example, eq, geq, leq)+--+-- 'value', 'filter_value' - Value of the filter.+newFilter ::+  Filter+newFilter =+  Filter'+    { attribute = Prelude.Nothing,+      operation = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The name of an attribute to use as a filter.+filter_attribute :: Lens.Lens' Filter (Prelude.Maybe Prelude.Text)+filter_attribute = Lens.lens (\Filter' {attribute} -> attribute) (\s@Filter' {} a -> s {attribute = a} :: Filter)++-- | The type of search (For example, eq, geq, leq)+filter_operation :: Lens.Lens' Filter (Prelude.Maybe Prelude.Text)+filter_operation = Lens.lens (\Filter' {operation} -> operation) (\s@Filter' {} a -> s {operation = a} :: Filter)++-- | Value of the filter.+filter_value :: Lens.Lens' Filter (Prelude.Maybe Prelude.Text)+filter_value = Lens.lens (\Filter' {value} -> value) (\s@Filter' {} a -> s {value = a} :: Filter)++instance Prelude.Hashable Filter where+  hashWithSalt _salt Filter' {..} =+    _salt+      `Prelude.hashWithSalt` attribute+      `Prelude.hashWithSalt` operation+      `Prelude.hashWithSalt` value++instance Prelude.NFData Filter where+  rnf Filter' {..} =+    Prelude.rnf attribute+      `Prelude.seq` Prelude.rnf operation+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Filter where+  toJSON Filter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Attribute" Data..=) Prelude.<$> attribute,+            ("Operation" Data..=) Prelude.<$> operation,+            ("Value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/LicenseManagerUserSubscriptions/Types/IdentityProvider.hs view
@@ -0,0 +1,83 @@+{-# 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.LicenseManagerUserSubscriptions.Types.IdentityProvider+-- 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.LicenseManagerUserSubscriptions.Types.IdentityProvider where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types.ActiveDirectoryIdentityProvider+import qualified Amazonka.Prelude as Prelude++-- | Details about an identity provider.+--+-- /See:/ 'newIdentityProvider' smart constructor.+data IdentityProvider = IdentityProvider'+  { -- | An object that details an Active Directory identity provider.+    activeDirectoryIdentityProvider :: Prelude.Maybe ActiveDirectoryIdentityProvider+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IdentityProvider' 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:+--+-- 'activeDirectoryIdentityProvider', 'identityProvider_activeDirectoryIdentityProvider' - An object that details an Active Directory identity provider.+newIdentityProvider ::+  IdentityProvider+newIdentityProvider =+  IdentityProvider'+    { activeDirectoryIdentityProvider =+        Prelude.Nothing+    }++-- | An object that details an Active Directory identity provider.+identityProvider_activeDirectoryIdentityProvider :: Lens.Lens' IdentityProvider (Prelude.Maybe ActiveDirectoryIdentityProvider)+identityProvider_activeDirectoryIdentityProvider = Lens.lens (\IdentityProvider' {activeDirectoryIdentityProvider} -> activeDirectoryIdentityProvider) (\s@IdentityProvider' {} a -> s {activeDirectoryIdentityProvider = a} :: IdentityProvider)++instance Data.FromJSON IdentityProvider where+  parseJSON =+    Data.withObject+      "IdentityProvider"+      ( \x ->+          IdentityProvider'+            Prelude.<$> (x Data..:? "ActiveDirectoryIdentityProvider")+      )++instance Prelude.Hashable IdentityProvider where+  hashWithSalt _salt IdentityProvider' {..} =+    _salt+      `Prelude.hashWithSalt` activeDirectoryIdentityProvider++instance Prelude.NFData IdentityProvider where+  rnf IdentityProvider' {..} =+    Prelude.rnf activeDirectoryIdentityProvider++instance Data.ToJSON IdentityProvider where+  toJSON IdentityProvider' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ActiveDirectoryIdentityProvider" Data..=)+              Prelude.<$> activeDirectoryIdentityProvider+          ]+      )
+ gen/Amazonka/LicenseManagerUserSubscriptions/Types/IdentityProviderSummary.hs view
@@ -0,0 +1,141 @@+{-# 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.LicenseManagerUserSubscriptions.Types.IdentityProviderSummary+-- 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.LicenseManagerUserSubscriptions.Types.IdentityProviderSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types.IdentityProvider+import Amazonka.LicenseManagerUserSubscriptions.Types.Settings+import qualified Amazonka.Prelude as Prelude++-- | Describes an identity provider.+--+-- /See:/ 'newIdentityProviderSummary' smart constructor.+data IdentityProviderSummary = IdentityProviderSummary'+  { -- | The failure message associated with an identity provider.+    failureMessage :: Prelude.Maybe Prelude.Text,+    -- | An object that specifies details for the identity provider.+    identityProvider :: IdentityProvider,+    -- | The name of the user-based subscription product.+    product :: Prelude.Text,+    -- | An object that details the registered identity provider’s product+    -- related configuration settings such as the subnets to provision VPC+    -- endpoints.+    settings :: Settings,+    -- | The status of an identity provider.+    status :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IdentityProviderSummary' 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:+--+-- 'failureMessage', 'identityProviderSummary_failureMessage' - The failure message associated with an identity provider.+--+-- 'identityProvider', 'identityProviderSummary_identityProvider' - An object that specifies details for the identity provider.+--+-- 'product', 'identityProviderSummary_product' - The name of the user-based subscription product.+--+-- 'settings', 'identityProviderSummary_settings' - An object that details the registered identity provider’s product+-- related configuration settings such as the subnets to provision VPC+-- endpoints.+--+-- 'status', 'identityProviderSummary_status' - The status of an identity provider.+newIdentityProviderSummary ::+  -- | 'identityProvider'+  IdentityProvider ->+  -- | 'product'+  Prelude.Text ->+  -- | 'settings'+  Settings ->+  -- | 'status'+  Prelude.Text ->+  IdentityProviderSummary+newIdentityProviderSummary+  pIdentityProvider_+  pProduct_+  pSettings_+  pStatus_ =+    IdentityProviderSummary'+      { failureMessage =+          Prelude.Nothing,+        identityProvider = pIdentityProvider_,+        product = pProduct_,+        settings = pSettings_,+        status = pStatus_+      }++-- | The failure message associated with an identity provider.+identityProviderSummary_failureMessage :: Lens.Lens' IdentityProviderSummary (Prelude.Maybe Prelude.Text)+identityProviderSummary_failureMessage = Lens.lens (\IdentityProviderSummary' {failureMessage} -> failureMessage) (\s@IdentityProviderSummary' {} a -> s {failureMessage = a} :: IdentityProviderSummary)++-- | An object that specifies details for the identity provider.+identityProviderSummary_identityProvider :: Lens.Lens' IdentityProviderSummary IdentityProvider+identityProviderSummary_identityProvider = Lens.lens (\IdentityProviderSummary' {identityProvider} -> identityProvider) (\s@IdentityProviderSummary' {} a -> s {identityProvider = a} :: IdentityProviderSummary)++-- | The name of the user-based subscription product.+identityProviderSummary_product :: Lens.Lens' IdentityProviderSummary Prelude.Text+identityProviderSummary_product = Lens.lens (\IdentityProviderSummary' {product} -> product) (\s@IdentityProviderSummary' {} a -> s {product = a} :: IdentityProviderSummary)++-- | An object that details the registered identity provider’s product+-- related configuration settings such as the subnets to provision VPC+-- endpoints.+identityProviderSummary_settings :: Lens.Lens' IdentityProviderSummary Settings+identityProviderSummary_settings = Lens.lens (\IdentityProviderSummary' {settings} -> settings) (\s@IdentityProviderSummary' {} a -> s {settings = a} :: IdentityProviderSummary)++-- | The status of an identity provider.+identityProviderSummary_status :: Lens.Lens' IdentityProviderSummary Prelude.Text+identityProviderSummary_status = Lens.lens (\IdentityProviderSummary' {status} -> status) (\s@IdentityProviderSummary' {} a -> s {status = a} :: IdentityProviderSummary)++instance Data.FromJSON IdentityProviderSummary where+  parseJSON =+    Data.withObject+      "IdentityProviderSummary"+      ( \x ->+          IdentityProviderSummary'+            Prelude.<$> (x Data..:? "FailureMessage")+            Prelude.<*> (x Data..: "IdentityProvider")+            Prelude.<*> (x Data..: "Product")+            Prelude.<*> (x Data..: "Settings")+            Prelude.<*> (x Data..: "Status")+      )++instance Prelude.Hashable IdentityProviderSummary where+  hashWithSalt _salt IdentityProviderSummary' {..} =+    _salt+      `Prelude.hashWithSalt` failureMessage+      `Prelude.hashWithSalt` identityProvider+      `Prelude.hashWithSalt` product+      `Prelude.hashWithSalt` settings+      `Prelude.hashWithSalt` status++instance Prelude.NFData IdentityProviderSummary where+  rnf IdentityProviderSummary' {..} =+    Prelude.rnf failureMessage+      `Prelude.seq` Prelude.rnf identityProvider+      `Prelude.seq` Prelude.rnf product+      `Prelude.seq` Prelude.rnf settings+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/LicenseManagerUserSubscriptions/Types/InstanceSummary.hs view
@@ -0,0 +1,125 @@+{-# 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.LicenseManagerUserSubscriptions.Types.InstanceSummary+-- 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.LicenseManagerUserSubscriptions.Types.InstanceSummary 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++-- | Describes an EC2 instance providing user-based subscriptions.+--+-- /See:/ 'newInstanceSummary' smart constructor.+data InstanceSummary = InstanceSummary'+  { -- | The date of the last status check.+    lastStatusCheckDate :: Prelude.Maybe Prelude.Text,+    -- | The status message for an EC2 instance.+    statusMessage :: Prelude.Maybe Prelude.Text,+    -- | The ID of the EC2 instance, which provides user-based subscriptions.+    instanceId :: Prelude.Text,+    -- | A list of provided user-based subscription products.+    products :: [Prelude.Text],+    -- | The status of an EC2 instance resource.+    status :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InstanceSummary' 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:+--+-- 'lastStatusCheckDate', 'instanceSummary_lastStatusCheckDate' - The date of the last status check.+--+-- 'statusMessage', 'instanceSummary_statusMessage' - The status message for an EC2 instance.+--+-- 'instanceId', 'instanceSummary_instanceId' - The ID of the EC2 instance, which provides user-based subscriptions.+--+-- 'products', 'instanceSummary_products' - A list of provided user-based subscription products.+--+-- 'status', 'instanceSummary_status' - The status of an EC2 instance resource.+newInstanceSummary ::+  -- | 'instanceId'+  Prelude.Text ->+  -- | 'status'+  Prelude.Text ->+  InstanceSummary+newInstanceSummary pInstanceId_ pStatus_ =+  InstanceSummary'+    { lastStatusCheckDate =+        Prelude.Nothing,+      statusMessage = Prelude.Nothing,+      instanceId = pInstanceId_,+      products = Prelude.mempty,+      status = pStatus_+    }++-- | The date of the last status check.+instanceSummary_lastStatusCheckDate :: Lens.Lens' InstanceSummary (Prelude.Maybe Prelude.Text)+instanceSummary_lastStatusCheckDate = Lens.lens (\InstanceSummary' {lastStatusCheckDate} -> lastStatusCheckDate) (\s@InstanceSummary' {} a -> s {lastStatusCheckDate = a} :: InstanceSummary)++-- | The status message for an EC2 instance.+instanceSummary_statusMessage :: Lens.Lens' InstanceSummary (Prelude.Maybe Prelude.Text)+instanceSummary_statusMessage = Lens.lens (\InstanceSummary' {statusMessage} -> statusMessage) (\s@InstanceSummary' {} a -> s {statusMessage = a} :: InstanceSummary)++-- | The ID of the EC2 instance, which provides user-based subscriptions.+instanceSummary_instanceId :: Lens.Lens' InstanceSummary Prelude.Text+instanceSummary_instanceId = Lens.lens (\InstanceSummary' {instanceId} -> instanceId) (\s@InstanceSummary' {} a -> s {instanceId = a} :: InstanceSummary)++-- | A list of provided user-based subscription products.+instanceSummary_products :: Lens.Lens' InstanceSummary [Prelude.Text]+instanceSummary_products = Lens.lens (\InstanceSummary' {products} -> products) (\s@InstanceSummary' {} a -> s {products = a} :: InstanceSummary) Prelude.. Lens.coerced++-- | The status of an EC2 instance resource.+instanceSummary_status :: Lens.Lens' InstanceSummary Prelude.Text+instanceSummary_status = Lens.lens (\InstanceSummary' {status} -> status) (\s@InstanceSummary' {} a -> s {status = a} :: InstanceSummary)++instance Data.FromJSON InstanceSummary where+  parseJSON =+    Data.withObject+      "InstanceSummary"+      ( \x ->+          InstanceSummary'+            Prelude.<$> (x Data..:? "LastStatusCheckDate")+            Prelude.<*> (x Data..:? "StatusMessage")+            Prelude.<*> (x Data..: "InstanceId")+            Prelude.<*> (x Data..:? "Products" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Status")+      )++instance Prelude.Hashable InstanceSummary where+  hashWithSalt _salt InstanceSummary' {..} =+    _salt+      `Prelude.hashWithSalt` lastStatusCheckDate+      `Prelude.hashWithSalt` statusMessage+      `Prelude.hashWithSalt` instanceId+      `Prelude.hashWithSalt` products+      `Prelude.hashWithSalt` status++instance Prelude.NFData InstanceSummary where+  rnf InstanceSummary' {..} =+    Prelude.rnf lastStatusCheckDate+      `Prelude.seq` Prelude.rnf statusMessage+      `Prelude.seq` Prelude.rnf instanceId+      `Prelude.seq` Prelude.rnf products+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/LicenseManagerUserSubscriptions/Types/InstanceUserSummary.hs view
@@ -0,0 +1,170 @@+{-# 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.LicenseManagerUserSubscriptions.Types.InstanceUserSummary+-- 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.LicenseManagerUserSubscriptions.Types.InstanceUserSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types.IdentityProvider+import qualified Amazonka.Prelude as Prelude++-- | Describes users of an EC2 instance providing user-based subscriptions.+--+-- /See:/ 'newInstanceUserSummary' smart constructor.+data InstanceUserSummary = InstanceUserSummary'+  { -- | The date a user was associated with an EC2 instance.+    associationDate :: Prelude.Maybe Prelude.Text,+    -- | The date a user was disassociated from an EC2 instance.+    disassociationDate :: Prelude.Maybe Prelude.Text,+    -- | The domain name of the user.+    domain :: Prelude.Maybe Prelude.Text,+    -- | The status message for users of an EC2 instance.+    statusMessage :: Prelude.Maybe Prelude.Text,+    -- | An object that specifies details for the identity provider.+    identityProvider :: IdentityProvider,+    -- | The ID of the EC2 instance, which provides user-based subscriptions.+    instanceId :: Prelude.Text,+    -- | The status of a user associated with an EC2 instance.+    status :: Prelude.Text,+    -- | The user name from the identity provider for the user.+    username :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InstanceUserSummary' 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:+--+-- 'associationDate', 'instanceUserSummary_associationDate' - The date a user was associated with an EC2 instance.+--+-- 'disassociationDate', 'instanceUserSummary_disassociationDate' - The date a user was disassociated from an EC2 instance.+--+-- 'domain', 'instanceUserSummary_domain' - The domain name of the user.+--+-- 'statusMessage', 'instanceUserSummary_statusMessage' - The status message for users of an EC2 instance.+--+-- 'identityProvider', 'instanceUserSummary_identityProvider' - An object that specifies details for the identity provider.+--+-- 'instanceId', 'instanceUserSummary_instanceId' - The ID of the EC2 instance, which provides user-based subscriptions.+--+-- 'status', 'instanceUserSummary_status' - The status of a user associated with an EC2 instance.+--+-- 'username', 'instanceUserSummary_username' - The user name from the identity provider for the user.+newInstanceUserSummary ::+  -- | 'identityProvider'+  IdentityProvider ->+  -- | 'instanceId'+  Prelude.Text ->+  -- | 'status'+  Prelude.Text ->+  -- | 'username'+  Prelude.Text ->+  InstanceUserSummary+newInstanceUserSummary+  pIdentityProvider_+  pInstanceId_+  pStatus_+  pUsername_ =+    InstanceUserSummary'+      { associationDate =+          Prelude.Nothing,+        disassociationDate = Prelude.Nothing,+        domain = Prelude.Nothing,+        statusMessage = Prelude.Nothing,+        identityProvider = pIdentityProvider_,+        instanceId = pInstanceId_,+        status = pStatus_,+        username = pUsername_+      }++-- | The date a user was associated with an EC2 instance.+instanceUserSummary_associationDate :: Lens.Lens' InstanceUserSummary (Prelude.Maybe Prelude.Text)+instanceUserSummary_associationDate = Lens.lens (\InstanceUserSummary' {associationDate} -> associationDate) (\s@InstanceUserSummary' {} a -> s {associationDate = a} :: InstanceUserSummary)++-- | The date a user was disassociated from an EC2 instance.+instanceUserSummary_disassociationDate :: Lens.Lens' InstanceUserSummary (Prelude.Maybe Prelude.Text)+instanceUserSummary_disassociationDate = Lens.lens (\InstanceUserSummary' {disassociationDate} -> disassociationDate) (\s@InstanceUserSummary' {} a -> s {disassociationDate = a} :: InstanceUserSummary)++-- | The domain name of the user.+instanceUserSummary_domain :: Lens.Lens' InstanceUserSummary (Prelude.Maybe Prelude.Text)+instanceUserSummary_domain = Lens.lens (\InstanceUserSummary' {domain} -> domain) (\s@InstanceUserSummary' {} a -> s {domain = a} :: InstanceUserSummary)++-- | The status message for users of an EC2 instance.+instanceUserSummary_statusMessage :: Lens.Lens' InstanceUserSummary (Prelude.Maybe Prelude.Text)+instanceUserSummary_statusMessage = Lens.lens (\InstanceUserSummary' {statusMessage} -> statusMessage) (\s@InstanceUserSummary' {} a -> s {statusMessage = a} :: InstanceUserSummary)++-- | An object that specifies details for the identity provider.+instanceUserSummary_identityProvider :: Lens.Lens' InstanceUserSummary IdentityProvider+instanceUserSummary_identityProvider = Lens.lens (\InstanceUserSummary' {identityProvider} -> identityProvider) (\s@InstanceUserSummary' {} a -> s {identityProvider = a} :: InstanceUserSummary)++-- | The ID of the EC2 instance, which provides user-based subscriptions.+instanceUserSummary_instanceId :: Lens.Lens' InstanceUserSummary Prelude.Text+instanceUserSummary_instanceId = Lens.lens (\InstanceUserSummary' {instanceId} -> instanceId) (\s@InstanceUserSummary' {} a -> s {instanceId = a} :: InstanceUserSummary)++-- | The status of a user associated with an EC2 instance.+instanceUserSummary_status :: Lens.Lens' InstanceUserSummary Prelude.Text+instanceUserSummary_status = Lens.lens (\InstanceUserSummary' {status} -> status) (\s@InstanceUserSummary' {} a -> s {status = a} :: InstanceUserSummary)++-- | The user name from the identity provider for the user.+instanceUserSummary_username :: Lens.Lens' InstanceUserSummary Prelude.Text+instanceUserSummary_username = Lens.lens (\InstanceUserSummary' {username} -> username) (\s@InstanceUserSummary' {} a -> s {username = a} :: InstanceUserSummary)++instance Data.FromJSON InstanceUserSummary where+  parseJSON =+    Data.withObject+      "InstanceUserSummary"+      ( \x ->+          InstanceUserSummary'+            Prelude.<$> (x Data..:? "AssociationDate")+            Prelude.<*> (x Data..:? "DisassociationDate")+            Prelude.<*> (x Data..:? "Domain")+            Prelude.<*> (x Data..:? "StatusMessage")+            Prelude.<*> (x Data..: "IdentityProvider")+            Prelude.<*> (x Data..: "InstanceId")+            Prelude.<*> (x Data..: "Status")+            Prelude.<*> (x Data..: "Username")+      )++instance Prelude.Hashable InstanceUserSummary where+  hashWithSalt _salt InstanceUserSummary' {..} =+    _salt+      `Prelude.hashWithSalt` associationDate+      `Prelude.hashWithSalt` disassociationDate+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` statusMessage+      `Prelude.hashWithSalt` identityProvider+      `Prelude.hashWithSalt` instanceId+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` username++instance Prelude.NFData InstanceUserSummary where+  rnf InstanceUserSummary' {..} =+    Prelude.rnf associationDate+      `Prelude.seq` Prelude.rnf disassociationDate+      `Prelude.seq` Prelude.rnf domain+      `Prelude.seq` Prelude.rnf statusMessage+      `Prelude.seq` Prelude.rnf identityProvider+      `Prelude.seq` Prelude.rnf instanceId+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf username
+ gen/Amazonka/LicenseManagerUserSubscriptions/Types/ProductUserSummary.hs view
@@ -0,0 +1,169 @@+{-# 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.LicenseManagerUserSubscriptions.Types.ProductUserSummary+-- 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.LicenseManagerUserSubscriptions.Types.ProductUserSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types.IdentityProvider+import qualified Amazonka.Prelude as Prelude++-- | The summary of the user-based subscription products for a user.+--+-- /See:/ 'newProductUserSummary' smart constructor.+data ProductUserSummary = ProductUserSummary'+  { -- | The domain name of the user.+    domain :: Prelude.Maybe Prelude.Text,+    -- | The status message for a product for a user.+    statusMessage :: Prelude.Maybe Prelude.Text,+    -- | The end date of a subscription.+    subscriptionEndDate :: Prelude.Maybe Prelude.Text,+    -- | The start date of a subscription.+    subscriptionStartDate :: Prelude.Maybe Prelude.Text,+    -- | An object that specifies details for the identity provider.+    identityProvider :: IdentityProvider,+    -- | The name of the user-based subscription product.+    product :: Prelude.Text,+    -- | The status of a product for a user.+    status :: Prelude.Text,+    -- | The user name from the identity provider of the user.+    username :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProductUserSummary' 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:+--+-- 'domain', 'productUserSummary_domain' - The domain name of the user.+--+-- 'statusMessage', 'productUserSummary_statusMessage' - The status message for a product for a user.+--+-- 'subscriptionEndDate', 'productUserSummary_subscriptionEndDate' - The end date of a subscription.+--+-- 'subscriptionStartDate', 'productUserSummary_subscriptionStartDate' - The start date of a subscription.+--+-- 'identityProvider', 'productUserSummary_identityProvider' - An object that specifies details for the identity provider.+--+-- 'product', 'productUserSummary_product' - The name of the user-based subscription product.+--+-- 'status', 'productUserSummary_status' - The status of a product for a user.+--+-- 'username', 'productUserSummary_username' - The user name from the identity provider of the user.+newProductUserSummary ::+  -- | 'identityProvider'+  IdentityProvider ->+  -- | 'product'+  Prelude.Text ->+  -- | 'status'+  Prelude.Text ->+  -- | 'username'+  Prelude.Text ->+  ProductUserSummary+newProductUserSummary+  pIdentityProvider_+  pProduct_+  pStatus_+  pUsername_ =+    ProductUserSummary'+      { domain = Prelude.Nothing,+        statusMessage = Prelude.Nothing,+        subscriptionEndDate = Prelude.Nothing,+        subscriptionStartDate = Prelude.Nothing,+        identityProvider = pIdentityProvider_,+        product = pProduct_,+        status = pStatus_,+        username = pUsername_+      }++-- | The domain name of the user.+productUserSummary_domain :: Lens.Lens' ProductUserSummary (Prelude.Maybe Prelude.Text)+productUserSummary_domain = Lens.lens (\ProductUserSummary' {domain} -> domain) (\s@ProductUserSummary' {} a -> s {domain = a} :: ProductUserSummary)++-- | The status message for a product for a user.+productUserSummary_statusMessage :: Lens.Lens' ProductUserSummary (Prelude.Maybe Prelude.Text)+productUserSummary_statusMessage = Lens.lens (\ProductUserSummary' {statusMessage} -> statusMessage) (\s@ProductUserSummary' {} a -> s {statusMessage = a} :: ProductUserSummary)++-- | The end date of a subscription.+productUserSummary_subscriptionEndDate :: Lens.Lens' ProductUserSummary (Prelude.Maybe Prelude.Text)+productUserSummary_subscriptionEndDate = Lens.lens (\ProductUserSummary' {subscriptionEndDate} -> subscriptionEndDate) (\s@ProductUserSummary' {} a -> s {subscriptionEndDate = a} :: ProductUserSummary)++-- | The start date of a subscription.+productUserSummary_subscriptionStartDate :: Lens.Lens' ProductUserSummary (Prelude.Maybe Prelude.Text)+productUserSummary_subscriptionStartDate = Lens.lens (\ProductUserSummary' {subscriptionStartDate} -> subscriptionStartDate) (\s@ProductUserSummary' {} a -> s {subscriptionStartDate = a} :: ProductUserSummary)++-- | An object that specifies details for the identity provider.+productUserSummary_identityProvider :: Lens.Lens' ProductUserSummary IdentityProvider+productUserSummary_identityProvider = Lens.lens (\ProductUserSummary' {identityProvider} -> identityProvider) (\s@ProductUserSummary' {} a -> s {identityProvider = a} :: ProductUserSummary)++-- | The name of the user-based subscription product.+productUserSummary_product :: Lens.Lens' ProductUserSummary Prelude.Text+productUserSummary_product = Lens.lens (\ProductUserSummary' {product} -> product) (\s@ProductUserSummary' {} a -> s {product = a} :: ProductUserSummary)++-- | The status of a product for a user.+productUserSummary_status :: Lens.Lens' ProductUserSummary Prelude.Text+productUserSummary_status = Lens.lens (\ProductUserSummary' {status} -> status) (\s@ProductUserSummary' {} a -> s {status = a} :: ProductUserSummary)++-- | The user name from the identity provider of the user.+productUserSummary_username :: Lens.Lens' ProductUserSummary Prelude.Text+productUserSummary_username = Lens.lens (\ProductUserSummary' {username} -> username) (\s@ProductUserSummary' {} a -> s {username = a} :: ProductUserSummary)++instance Data.FromJSON ProductUserSummary where+  parseJSON =+    Data.withObject+      "ProductUserSummary"+      ( \x ->+          ProductUserSummary'+            Prelude.<$> (x Data..:? "Domain")+            Prelude.<*> (x Data..:? "StatusMessage")+            Prelude.<*> (x Data..:? "SubscriptionEndDate")+            Prelude.<*> (x Data..:? "SubscriptionStartDate")+            Prelude.<*> (x Data..: "IdentityProvider")+            Prelude.<*> (x Data..: "Product")+            Prelude.<*> (x Data..: "Status")+            Prelude.<*> (x Data..: "Username")+      )++instance Prelude.Hashable ProductUserSummary where+  hashWithSalt _salt ProductUserSummary' {..} =+    _salt+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` statusMessage+      `Prelude.hashWithSalt` subscriptionEndDate+      `Prelude.hashWithSalt` subscriptionStartDate+      `Prelude.hashWithSalt` identityProvider+      `Prelude.hashWithSalt` product+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` username++instance Prelude.NFData ProductUserSummary where+  rnf ProductUserSummary' {..} =+    Prelude.rnf domain+      `Prelude.seq` Prelude.rnf statusMessage+      `Prelude.seq` Prelude.rnf subscriptionEndDate+      `Prelude.seq` Prelude.rnf subscriptionStartDate+      `Prelude.seq` Prelude.rnf identityProvider+      `Prelude.seq` Prelude.rnf product+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf username
+ gen/Amazonka/LicenseManagerUserSubscriptions/Types/Settings.hs view
@@ -0,0 +1,108 @@+{-# 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.LicenseManagerUserSubscriptions.Types.Settings+-- 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.LicenseManagerUserSubscriptions.Types.Settings 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 registered identity provider’s product related configuration+-- settings such as the subnets to provision VPC endpoints, and the+-- security group ID that is associated with the VPC endpoints. The+-- security group should permit inbound TCP port 1688 communication from+-- resources in the VPC.+--+-- /See:/ 'newSettings' smart constructor.+data Settings = Settings'+  { -- | A security group ID that allows inbound TCP port 1688 communication+    -- between resources in your VPC and the VPC endpoint for activation+    -- servers.+    securityGroupId :: Prelude.Text,+    -- | The subnets defined for the registered identity provider.+    subnets :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Settings' 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:+--+-- 'securityGroupId', 'settings_securityGroupId' - A security group ID that allows inbound TCP port 1688 communication+-- between resources in your VPC and the VPC endpoint for activation+-- servers.+--+-- 'subnets', 'settings_subnets' - The subnets defined for the registered identity provider.+newSettings ::+  -- | 'securityGroupId'+  Prelude.Text ->+  -- | 'subnets'+  Prelude.NonEmpty Prelude.Text ->+  Settings+newSettings pSecurityGroupId_ pSubnets_ =+  Settings'+    { securityGroupId = pSecurityGroupId_,+      subnets = Lens.coerced Lens.# pSubnets_+    }++-- | A security group ID that allows inbound TCP port 1688 communication+-- between resources in your VPC and the VPC endpoint for activation+-- servers.+settings_securityGroupId :: Lens.Lens' Settings Prelude.Text+settings_securityGroupId = Lens.lens (\Settings' {securityGroupId} -> securityGroupId) (\s@Settings' {} a -> s {securityGroupId = a} :: Settings)++-- | The subnets defined for the registered identity provider.+settings_subnets :: Lens.Lens' Settings (Prelude.NonEmpty Prelude.Text)+settings_subnets = Lens.lens (\Settings' {subnets} -> subnets) (\s@Settings' {} a -> s {subnets = a} :: Settings) Prelude.. Lens.coerced++instance Data.FromJSON Settings where+  parseJSON =+    Data.withObject+      "Settings"+      ( \x ->+          Settings'+            Prelude.<$> (x Data..: "SecurityGroupId")+            Prelude.<*> (x Data..: "Subnets")+      )++instance Prelude.Hashable Settings where+  hashWithSalt _salt Settings' {..} =+    _salt+      `Prelude.hashWithSalt` securityGroupId+      `Prelude.hashWithSalt` subnets++instance Prelude.NFData Settings where+  rnf Settings' {..} =+    Prelude.rnf securityGroupId+      `Prelude.seq` Prelude.rnf subnets++instance Data.ToJSON Settings where+  toJSON Settings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("SecurityGroupId" Data..= securityGroupId),+            Prelude.Just ("Subnets" Data..= subnets)+          ]+      )
+ gen/Amazonka/LicenseManagerUserSubscriptions/Types/UpdateSettings.hs view
@@ -0,0 +1,107 @@+{-# 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.LicenseManagerUserSubscriptions.Types.UpdateSettings+-- 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.LicenseManagerUserSubscriptions.Types.UpdateSettings 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++-- | Updates the registered identity provider’s product related configuration+-- settings such as the subnets to provision VPC endpoints.+--+-- /See:/ 'newUpdateSettings' smart constructor.+data UpdateSettings = UpdateSettings'+  { -- | A security group ID that allows inbound TCP port 1688 communication+    -- between resources in your VPC and the VPC endpoints for activation+    -- servers.+    securityGroupId :: Prelude.Maybe Prelude.Text,+    -- | The ID of one or more subnets in which License Manager will create a VPC+    -- endpoint for products that require connectivity to activation servers.+    addSubnets :: [Prelude.Text],+    -- | The ID of one or more subnets to remove.+    removeSubnets :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSettings' 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:+--+-- 'securityGroupId', 'updateSettings_securityGroupId' - A security group ID that allows inbound TCP port 1688 communication+-- between resources in your VPC and the VPC endpoints for activation+-- servers.+--+-- 'addSubnets', 'updateSettings_addSubnets' - The ID of one or more subnets in which License Manager will create a VPC+-- endpoint for products that require connectivity to activation servers.+--+-- 'removeSubnets', 'updateSettings_removeSubnets' - The ID of one or more subnets to remove.+newUpdateSettings ::+  UpdateSettings+newUpdateSettings =+  UpdateSettings'+    { securityGroupId = Prelude.Nothing,+      addSubnets = Prelude.mempty,+      removeSubnets = Prelude.mempty+    }++-- | A security group ID that allows inbound TCP port 1688 communication+-- between resources in your VPC and the VPC endpoints for activation+-- servers.+updateSettings_securityGroupId :: Lens.Lens' UpdateSettings (Prelude.Maybe Prelude.Text)+updateSettings_securityGroupId = Lens.lens (\UpdateSettings' {securityGroupId} -> securityGroupId) (\s@UpdateSettings' {} a -> s {securityGroupId = a} :: UpdateSettings)++-- | The ID of one or more subnets in which License Manager will create a VPC+-- endpoint for products that require connectivity to activation servers.+updateSettings_addSubnets :: Lens.Lens' UpdateSettings [Prelude.Text]+updateSettings_addSubnets = Lens.lens (\UpdateSettings' {addSubnets} -> addSubnets) (\s@UpdateSettings' {} a -> s {addSubnets = a} :: UpdateSettings) Prelude.. Lens.coerced++-- | The ID of one or more subnets to remove.+updateSettings_removeSubnets :: Lens.Lens' UpdateSettings [Prelude.Text]+updateSettings_removeSubnets = Lens.lens (\UpdateSettings' {removeSubnets} -> removeSubnets) (\s@UpdateSettings' {} a -> s {removeSubnets = a} :: UpdateSettings) Prelude.. Lens.coerced++instance Prelude.Hashable UpdateSettings where+  hashWithSalt _salt UpdateSettings' {..} =+    _salt+      `Prelude.hashWithSalt` securityGroupId+      `Prelude.hashWithSalt` addSubnets+      `Prelude.hashWithSalt` removeSubnets++instance Prelude.NFData UpdateSettings where+  rnf UpdateSettings' {..} =+    Prelude.rnf securityGroupId+      `Prelude.seq` Prelude.rnf addSubnets+      `Prelude.seq` Prelude.rnf removeSubnets++instance Data.ToJSON UpdateSettings where+  toJSON UpdateSettings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("SecurityGroupId" Data..=)+              Prelude.<$> securityGroupId,+            Prelude.Just ("AddSubnets" Data..= addSubnets),+            Prelude.Just+              ("RemoveSubnets" Data..= removeSubnets)+          ]+      )
+ gen/Amazonka/LicenseManagerUserSubscriptions/UpdateIdentityProviderSettings.hs view
@@ -0,0 +1,252 @@+{-# 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.LicenseManagerUserSubscriptions.UpdateIdentityProviderSettings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates additional product configuration settings for the registered+-- identity provider.+module Amazonka.LicenseManagerUserSubscriptions.UpdateIdentityProviderSettings+  ( -- * Creating a Request+    UpdateIdentityProviderSettings (..),+    newUpdateIdentityProviderSettings,++    -- * Request Lenses+    updateIdentityProviderSettings_identityProvider,+    updateIdentityProviderSettings_product,+    updateIdentityProviderSettings_updateSettings,++    -- * Destructuring the Response+    UpdateIdentityProviderSettingsResponse (..),+    newUpdateIdentityProviderSettingsResponse,++    -- * Response Lenses+    updateIdentityProviderSettingsResponse_httpStatus,+    updateIdentityProviderSettingsResponse_identityProviderSummary,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateIdentityProviderSettings' smart constructor.+data UpdateIdentityProviderSettings = UpdateIdentityProviderSettings'+  { identityProvider :: IdentityProvider,+    -- | The name of the user-based subscription product.+    product :: Prelude.Text,+    -- | Updates the registered identity provider’s product related configuration+    -- settings. You can update any combination of settings in a single+    -- operation such as the:+    --+    -- -   Subnets which you want to add to provision VPC endpoints.+    --+    -- -   Subnets which you want to remove the VPC endpoints from.+    --+    -- -   Security group ID which permits traffic to the VPC endpoints.+    updateSettings :: UpdateSettings+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateIdentityProviderSettings' 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:+--+-- 'identityProvider', 'updateIdentityProviderSettings_identityProvider' - Undocumented member.+--+-- 'product', 'updateIdentityProviderSettings_product' - The name of the user-based subscription product.+--+-- 'updateSettings', 'updateIdentityProviderSettings_updateSettings' - Updates the registered identity provider’s product related configuration+-- settings. You can update any combination of settings in a single+-- operation such as the:+--+-- -   Subnets which you want to add to provision VPC endpoints.+--+-- -   Subnets which you want to remove the VPC endpoints from.+--+-- -   Security group ID which permits traffic to the VPC endpoints.+newUpdateIdentityProviderSettings ::+  -- | 'identityProvider'+  IdentityProvider ->+  -- | 'product'+  Prelude.Text ->+  -- | 'updateSettings'+  UpdateSettings ->+  UpdateIdentityProviderSettings+newUpdateIdentityProviderSettings+  pIdentityProvider_+  pProduct_+  pUpdateSettings_ =+    UpdateIdentityProviderSettings'+      { identityProvider =+          pIdentityProvider_,+        product = pProduct_,+        updateSettings = pUpdateSettings_+      }++-- | Undocumented member.+updateIdentityProviderSettings_identityProvider :: Lens.Lens' UpdateIdentityProviderSettings IdentityProvider+updateIdentityProviderSettings_identityProvider = Lens.lens (\UpdateIdentityProviderSettings' {identityProvider} -> identityProvider) (\s@UpdateIdentityProviderSettings' {} a -> s {identityProvider = a} :: UpdateIdentityProviderSettings)++-- | The name of the user-based subscription product.+updateIdentityProviderSettings_product :: Lens.Lens' UpdateIdentityProviderSettings Prelude.Text+updateIdentityProviderSettings_product = Lens.lens (\UpdateIdentityProviderSettings' {product} -> product) (\s@UpdateIdentityProviderSettings' {} a -> s {product = a} :: UpdateIdentityProviderSettings)++-- | Updates the registered identity provider’s product related configuration+-- settings. You can update any combination of settings in a single+-- operation such as the:+--+-- -   Subnets which you want to add to provision VPC endpoints.+--+-- -   Subnets which you want to remove the VPC endpoints from.+--+-- -   Security group ID which permits traffic to the VPC endpoints.+updateIdentityProviderSettings_updateSettings :: Lens.Lens' UpdateIdentityProviderSettings UpdateSettings+updateIdentityProviderSettings_updateSettings = Lens.lens (\UpdateIdentityProviderSettings' {updateSettings} -> updateSettings) (\s@UpdateIdentityProviderSettings' {} a -> s {updateSettings = a} :: UpdateIdentityProviderSettings)++instance+  Core.AWSRequest+    UpdateIdentityProviderSettings+  where+  type+    AWSResponse UpdateIdentityProviderSettings =+      UpdateIdentityProviderSettingsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateIdentityProviderSettingsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "IdentityProviderSummary")+      )++instance+  Prelude.Hashable+    UpdateIdentityProviderSettings+  where+  hashWithSalt+    _salt+    UpdateIdentityProviderSettings' {..} =+      _salt+        `Prelude.hashWithSalt` identityProvider+        `Prelude.hashWithSalt` product+        `Prelude.hashWithSalt` updateSettings++instance+  Prelude.NFData+    UpdateIdentityProviderSettings+  where+  rnf UpdateIdentityProviderSettings' {..} =+    Prelude.rnf identityProvider+      `Prelude.seq` Prelude.rnf product+      `Prelude.seq` Prelude.rnf updateSettings++instance+  Data.ToHeaders+    UpdateIdentityProviderSettings+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateIdentityProviderSettings where+  toJSON UpdateIdentityProviderSettings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("IdentityProvider" Data..= identityProvider),+            Prelude.Just ("Product" Data..= product),+            Prelude.Just+              ("UpdateSettings" Data..= updateSettings)+          ]+      )++instance Data.ToPath UpdateIdentityProviderSettings where+  toPath =+    Prelude.const+      "/identity-provider/UpdateIdentityProviderSettings"++instance Data.ToQuery UpdateIdentityProviderSettings where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateIdentityProviderSettingsResponse' smart constructor.+data UpdateIdentityProviderSettingsResponse = UpdateIdentityProviderSettingsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    identityProviderSummary :: IdentityProviderSummary+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateIdentityProviderSettingsResponse' 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', 'updateIdentityProviderSettingsResponse_httpStatus' - The response's http status code.+--+-- 'identityProviderSummary', 'updateIdentityProviderSettingsResponse_identityProviderSummary' - Undocumented member.+newUpdateIdentityProviderSettingsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'identityProviderSummary'+  IdentityProviderSummary ->+  UpdateIdentityProviderSettingsResponse+newUpdateIdentityProviderSettingsResponse+  pHttpStatus_+  pIdentityProviderSummary_ =+    UpdateIdentityProviderSettingsResponse'+      { httpStatus =+          pHttpStatus_,+        identityProviderSummary =+          pIdentityProviderSummary_+      }++-- | The response's http status code.+updateIdentityProviderSettingsResponse_httpStatus :: Lens.Lens' UpdateIdentityProviderSettingsResponse Prelude.Int+updateIdentityProviderSettingsResponse_httpStatus = Lens.lens (\UpdateIdentityProviderSettingsResponse' {httpStatus} -> httpStatus) (\s@UpdateIdentityProviderSettingsResponse' {} a -> s {httpStatus = a} :: UpdateIdentityProviderSettingsResponse)++-- | Undocumented member.+updateIdentityProviderSettingsResponse_identityProviderSummary :: Lens.Lens' UpdateIdentityProviderSettingsResponse IdentityProviderSummary+updateIdentityProviderSettingsResponse_identityProviderSummary = Lens.lens (\UpdateIdentityProviderSettingsResponse' {identityProviderSummary} -> identityProviderSummary) (\s@UpdateIdentityProviderSettingsResponse' {} a -> s {identityProviderSummary = a} :: UpdateIdentityProviderSettingsResponse)++instance+  Prelude.NFData+    UpdateIdentityProviderSettingsResponse+  where+  rnf UpdateIdentityProviderSettingsResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf identityProviderSummary
+ gen/Amazonka/LicenseManagerUserSubscriptions/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.LicenseManagerUserSubscriptions.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.LicenseManagerUserSubscriptions.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LicenseManagerUserSubscriptions.Lens+import Amazonka.LicenseManagerUserSubscriptions.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.LicenseManagerUserSubscriptions+import Test.Amazonka.LicenseManagerUserSubscriptions.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "LicenseManagerUserSubscriptions"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/LicenseManagerUserSubscriptions.hs view
@@ -0,0 +1,258 @@+{-# 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.LicenseManagerUserSubscriptions+-- 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.LicenseManagerUserSubscriptions where++import Amazonka.LicenseManagerUserSubscriptions+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.LicenseManagerUserSubscriptions.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"+--         [ requestAssociateUser $+--             newAssociateUser+--+--         , requestDeregisterIdentityProvider $+--             newDeregisterIdentityProvider+--+--         , requestDisassociateUser $+--             newDisassociateUser+--+--         , requestListIdentityProviders $+--             newListIdentityProviders+--+--         , requestListInstances $+--             newListInstances+--+--         , requestListProductSubscriptions $+--             newListProductSubscriptions+--+--         , requestListUserAssociations $+--             newListUserAssociations+--+--         , requestRegisterIdentityProvider $+--             newRegisterIdentityProvider+--+--         , requestStartProductSubscription $+--             newStartProductSubscription+--+--         , requestStopProductSubscription $+--             newStopProductSubscription+--+--         , requestUpdateIdentityProviderSettings $+--             newUpdateIdentityProviderSettings+--+--           ]++--     , testGroup "response"+--         [ responseAssociateUser $+--             newAssociateUserResponse+--+--         , responseDeregisterIdentityProvider $+--             newDeregisterIdentityProviderResponse+--+--         , responseDisassociateUser $+--             newDisassociateUserResponse+--+--         , responseListIdentityProviders $+--             newListIdentityProvidersResponse+--+--         , responseListInstances $+--             newListInstancesResponse+--+--         , responseListProductSubscriptions $+--             newListProductSubscriptionsResponse+--+--         , responseListUserAssociations $+--             newListUserAssociationsResponse+--+--         , responseRegisterIdentityProvider $+--             newRegisterIdentityProviderResponse+--+--         , responseStartProductSubscription $+--             newStartProductSubscriptionResponse+--+--         , responseStopProductSubscription $+--             newStopProductSubscriptionResponse+--+--         , responseUpdateIdentityProviderSettings $+--             newUpdateIdentityProviderSettingsResponse+--+--           ]+--     ]++-- Requests++requestAssociateUser :: AssociateUser -> TestTree+requestAssociateUser =+  req+    "AssociateUser"+    "fixture/AssociateUser.yaml"++requestDeregisterIdentityProvider :: DeregisterIdentityProvider -> TestTree+requestDeregisterIdentityProvider =+  req+    "DeregisterIdentityProvider"+    "fixture/DeregisterIdentityProvider.yaml"++requestDisassociateUser :: DisassociateUser -> TestTree+requestDisassociateUser =+  req+    "DisassociateUser"+    "fixture/DisassociateUser.yaml"++requestListIdentityProviders :: ListIdentityProviders -> TestTree+requestListIdentityProviders =+  req+    "ListIdentityProviders"+    "fixture/ListIdentityProviders.yaml"++requestListInstances :: ListInstances -> TestTree+requestListInstances =+  req+    "ListInstances"+    "fixture/ListInstances.yaml"++requestListProductSubscriptions :: ListProductSubscriptions -> TestTree+requestListProductSubscriptions =+  req+    "ListProductSubscriptions"+    "fixture/ListProductSubscriptions.yaml"++requestListUserAssociations :: ListUserAssociations -> TestTree+requestListUserAssociations =+  req+    "ListUserAssociations"+    "fixture/ListUserAssociations.yaml"++requestRegisterIdentityProvider :: RegisterIdentityProvider -> TestTree+requestRegisterIdentityProvider =+  req+    "RegisterIdentityProvider"+    "fixture/RegisterIdentityProvider.yaml"++requestStartProductSubscription :: StartProductSubscription -> TestTree+requestStartProductSubscription =+  req+    "StartProductSubscription"+    "fixture/StartProductSubscription.yaml"++requestStopProductSubscription :: StopProductSubscription -> TestTree+requestStopProductSubscription =+  req+    "StopProductSubscription"+    "fixture/StopProductSubscription.yaml"++requestUpdateIdentityProviderSettings :: UpdateIdentityProviderSettings -> TestTree+requestUpdateIdentityProviderSettings =+  req+    "UpdateIdentityProviderSettings"+    "fixture/UpdateIdentityProviderSettings.yaml"++-- Responses++responseAssociateUser :: AssociateUserResponse -> TestTree+responseAssociateUser =+  res+    "AssociateUserResponse"+    "fixture/AssociateUserResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AssociateUser)++responseDeregisterIdentityProvider :: DeregisterIdentityProviderResponse -> TestTree+responseDeregisterIdentityProvider =+  res+    "DeregisterIdentityProviderResponse"+    "fixture/DeregisterIdentityProviderResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeregisterIdentityProvider)++responseDisassociateUser :: DisassociateUserResponse -> TestTree+responseDisassociateUser =+  res+    "DisassociateUserResponse"+    "fixture/DisassociateUserResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociateUser)++responseListIdentityProviders :: ListIdentityProvidersResponse -> TestTree+responseListIdentityProviders =+  res+    "ListIdentityProvidersResponse"+    "fixture/ListIdentityProvidersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListIdentityProviders)++responseListInstances :: ListInstancesResponse -> TestTree+responseListInstances =+  res+    "ListInstancesResponse"+    "fixture/ListInstancesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListInstances)++responseListProductSubscriptions :: ListProductSubscriptionsResponse -> TestTree+responseListProductSubscriptions =+  res+    "ListProductSubscriptionsResponse"+    "fixture/ListProductSubscriptionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListProductSubscriptions)++responseListUserAssociations :: ListUserAssociationsResponse -> TestTree+responseListUserAssociations =+  res+    "ListUserAssociationsResponse"+    "fixture/ListUserAssociationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListUserAssociations)++responseRegisterIdentityProvider :: RegisterIdentityProviderResponse -> TestTree+responseRegisterIdentityProvider =+  res+    "RegisterIdentityProviderResponse"+    "fixture/RegisterIdentityProviderResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RegisterIdentityProvider)++responseStartProductSubscription :: StartProductSubscriptionResponse -> TestTree+responseStartProductSubscription =+  res+    "StartProductSubscriptionResponse"+    "fixture/StartProductSubscriptionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartProductSubscription)++responseStopProductSubscription :: StopProductSubscriptionResponse -> TestTree+responseStopProductSubscription =+  res+    "StopProductSubscriptionResponse"+    "fixture/StopProductSubscriptionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StopProductSubscription)++responseUpdateIdentityProviderSettings :: UpdateIdentityProviderSettingsResponse -> TestTree+responseUpdateIdentityProviderSettings =+  res+    "UpdateIdentityProviderSettingsResponse"+    "fixture/UpdateIdentityProviderSettingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateIdentityProviderSettings)
+ test/Test/Amazonka/LicenseManagerUserSubscriptions.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.LicenseManagerUserSubscriptions+-- 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.LicenseManagerUserSubscriptions+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/LicenseManagerUserSubscriptions/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.LicenseManagerUserSubscriptions.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.LicenseManagerUserSubscriptions.Internal where