packages feed

amazonka-ssm-sap (empty) → 2.0

raw patch · 79 files changed

+6837/−0 lines, 79 filesdep +amazonka-coredep +amazonka-ssm-sapdep +amazonka-test

Dependencies added: amazonka-core, amazonka-ssm-sap, 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 Systems Manager for SAP 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-ssm-sap)+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.SSMSAP](http://hackage.haskell.org/package/amazonka-ssm-sap/docs/Amazonka-SSMSAP.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-ssm-sap` 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-ssm-sap.cabal view
@@ -0,0 +1,118 @@+cabal-version:      2.2+name:               amazonka-ssm-sap+version:            2.0+synopsis:           Amazon Systems Manager for SAP 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.SSMSAP.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.SSMSAP" 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-ssm-sap++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.SSMSAP+    Amazonka.SSMSAP.DeleteResourcePermission+    Amazonka.SSMSAP.DeregisterApplication+    Amazonka.SSMSAP.GetApplication+    Amazonka.SSMSAP.GetComponent+    Amazonka.SSMSAP.GetDatabase+    Amazonka.SSMSAP.GetOperation+    Amazonka.SSMSAP.GetResourcePermission+    Amazonka.SSMSAP.Lens+    Amazonka.SSMSAP.ListApplications+    Amazonka.SSMSAP.ListComponents+    Amazonka.SSMSAP.ListDatabases+    Amazonka.SSMSAP.ListTagsForResource+    Amazonka.SSMSAP.PutResourcePermission+    Amazonka.SSMSAP.RegisterApplication+    Amazonka.SSMSAP.TagResource+    Amazonka.SSMSAP.Types+    Amazonka.SSMSAP.Types.Application+    Amazonka.SSMSAP.Types.ApplicationCredential+    Amazonka.SSMSAP.Types.ApplicationStatus+    Amazonka.SSMSAP.Types.ApplicationSummary+    Amazonka.SSMSAP.Types.ApplicationType+    Amazonka.SSMSAP.Types.Component+    Amazonka.SSMSAP.Types.ComponentStatus+    Amazonka.SSMSAP.Types.ComponentSummary+    Amazonka.SSMSAP.Types.ComponentType+    Amazonka.SSMSAP.Types.CredentialType+    Amazonka.SSMSAP.Types.Database+    Amazonka.SSMSAP.Types.DatabaseStatus+    Amazonka.SSMSAP.Types.DatabaseSummary+    Amazonka.SSMSAP.Types.DatabaseType+    Amazonka.SSMSAP.Types.Host+    Amazonka.SSMSAP.Types.HostRole+    Amazonka.SSMSAP.Types.Operation+    Amazonka.SSMSAP.Types.OperationStatus+    Amazonka.SSMSAP.Types.PermissionActionType+    Amazonka.SSMSAP.UntagResource+    Amazonka.SSMSAP.UpdateApplicationSettings+    Amazonka.SSMSAP.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-ssm-sap-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.SSMSAP+    Test.Amazonka.SSMSAP+    Test.Amazonka.SSMSAP.Internal++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-ssm-sap+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/DeleteResourcePermission.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/DeleteResourcePermissionResponse.proto view
+ fixture/DeregisterApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/DeregisterApplicationResponse.proto view
+ fixture/GetApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/GetApplicationResponse.proto view
+ fixture/GetComponent.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/GetComponentResponse.proto view
+ fixture/GetDatabase.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/GetDatabaseResponse.proto view
+ fixture/GetOperation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/GetOperationResponse.proto view
+ fixture/GetResourcePermission.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/GetResourcePermissionResponse.proto view
+ fixture/ListApplications.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/ListApplicationsResponse.proto view
+ fixture/ListComponents.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/ListComponentsResponse.proto view
+ fixture/ListDatabases.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/ListDatabasesResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/ListTagsForResourceResponse.proto view
+ fixture/PutResourcePermission.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/PutResourcePermissionResponse.proto view
+ fixture/RegisterApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/RegisterApplicationResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/UntagResourceResponse.proto view
+ fixture/UpdateApplicationSettings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ssm-sap/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ssm-sap.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/UpdateApplicationSettingsResponse.proto view
+ gen/Amazonka/SSMSAP.hs view
@@ -0,0 +1,254 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.SSMSAP+-- 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.+--+-- This API reference provides descriptions, syntax, and other details+-- about each of the actions and data types for AWS Systems Manager for+-- SAP. The topic for each action shows the API request parameters and+-- responses.+module Amazonka.SSMSAP+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** DeleteResourcePermission+    DeleteResourcePermission (DeleteResourcePermission'),+    newDeleteResourcePermission,+    DeleteResourcePermissionResponse (DeleteResourcePermissionResponse'),+    newDeleteResourcePermissionResponse,++    -- ** DeregisterApplication+    DeregisterApplication (DeregisterApplication'),+    newDeregisterApplication,+    DeregisterApplicationResponse (DeregisterApplicationResponse'),+    newDeregisterApplicationResponse,++    -- ** GetApplication+    GetApplication (GetApplication'),+    newGetApplication,+    GetApplicationResponse (GetApplicationResponse'),+    newGetApplicationResponse,++    -- ** GetComponent+    GetComponent (GetComponent'),+    newGetComponent,+    GetComponentResponse (GetComponentResponse'),+    newGetComponentResponse,++    -- ** GetDatabase+    GetDatabase (GetDatabase'),+    newGetDatabase,+    GetDatabaseResponse (GetDatabaseResponse'),+    newGetDatabaseResponse,++    -- ** GetOperation+    GetOperation (GetOperation'),+    newGetOperation,+    GetOperationResponse (GetOperationResponse'),+    newGetOperationResponse,++    -- ** GetResourcePermission+    GetResourcePermission (GetResourcePermission'),+    newGetResourcePermission,+    GetResourcePermissionResponse (GetResourcePermissionResponse'),+    newGetResourcePermissionResponse,++    -- ** ListApplications (Paginated)+    ListApplications (ListApplications'),+    newListApplications,+    ListApplicationsResponse (ListApplicationsResponse'),+    newListApplicationsResponse,++    -- ** ListComponents (Paginated)+    ListComponents (ListComponents'),+    newListComponents,+    ListComponentsResponse (ListComponentsResponse'),+    newListComponentsResponse,++    -- ** ListDatabases (Paginated)+    ListDatabases (ListDatabases'),+    newListDatabases,+    ListDatabasesResponse (ListDatabasesResponse'),+    newListDatabasesResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** PutResourcePermission+    PutResourcePermission (PutResourcePermission'),+    newPutResourcePermission,+    PutResourcePermissionResponse (PutResourcePermissionResponse'),+    newPutResourcePermissionResponse,++    -- ** RegisterApplication+    RegisterApplication (RegisterApplication'),+    newRegisterApplication,+    RegisterApplicationResponse (RegisterApplicationResponse'),+    newRegisterApplicationResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateApplicationSettings+    UpdateApplicationSettings (UpdateApplicationSettings'),+    newUpdateApplicationSettings,+    UpdateApplicationSettingsResponse (UpdateApplicationSettingsResponse'),+    newUpdateApplicationSettingsResponse,++    -- * Types++    -- ** ApplicationStatus+    ApplicationStatus (..),++    -- ** ApplicationType+    ApplicationType (..),++    -- ** ComponentStatus+    ComponentStatus (..),++    -- ** ComponentType+    ComponentType (..),++    -- ** CredentialType+    CredentialType (..),++    -- ** DatabaseStatus+    DatabaseStatus (..),++    -- ** DatabaseType+    DatabaseType (..),++    -- ** HostRole+    HostRole (..),++    -- ** OperationStatus+    OperationStatus (..),++    -- ** PermissionActionType+    PermissionActionType (..),++    -- ** Application+    Application (Application'),+    newApplication,++    -- ** ApplicationCredential+    ApplicationCredential (ApplicationCredential'),+    newApplicationCredential,++    -- ** ApplicationSummary+    ApplicationSummary (ApplicationSummary'),+    newApplicationSummary,++    -- ** Component+    Component (Component'),+    newComponent,++    -- ** ComponentSummary+    ComponentSummary (ComponentSummary'),+    newComponentSummary,++    -- ** Database+    Database (Database'),+    newDatabase,++    -- ** DatabaseSummary+    DatabaseSummary (DatabaseSummary'),+    newDatabaseSummary,++    -- ** Host+    Host (Host'),+    newHost,++    -- ** Operation+    Operation (Operation'),+    newOperation,+  )+where++import Amazonka.SSMSAP.DeleteResourcePermission+import Amazonka.SSMSAP.DeregisterApplication+import Amazonka.SSMSAP.GetApplication+import Amazonka.SSMSAP.GetComponent+import Amazonka.SSMSAP.GetDatabase+import Amazonka.SSMSAP.GetOperation+import Amazonka.SSMSAP.GetResourcePermission+import Amazonka.SSMSAP.Lens+import Amazonka.SSMSAP.ListApplications+import Amazonka.SSMSAP.ListComponents+import Amazonka.SSMSAP.ListDatabases+import Amazonka.SSMSAP.ListTagsForResource+import Amazonka.SSMSAP.PutResourcePermission+import Amazonka.SSMSAP.RegisterApplication+import Amazonka.SSMSAP.TagResource+import Amazonka.SSMSAP.Types+import Amazonka.SSMSAP.UntagResource+import Amazonka.SSMSAP.UpdateApplicationSettings+import Amazonka.SSMSAP.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 'SSMSAP'.++-- $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/SSMSAP/DeleteResourcePermission.hs view
@@ -0,0 +1,192 @@+{-# 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.SSMSAP.DeleteResourcePermission+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes permissions associated with the target database.+module Amazonka.SSMSAP.DeleteResourcePermission+  ( -- * Creating a Request+    DeleteResourcePermission (..),+    newDeleteResourcePermission,++    -- * Request Lenses+    deleteResourcePermission_actionType,+    deleteResourcePermission_sourceResourceArn,+    deleteResourcePermission_resourceArn,++    -- * Destructuring the Response+    DeleteResourcePermissionResponse (..),+    newDeleteResourcePermissionResponse,++    -- * Response Lenses+    deleteResourcePermissionResponse_policy,+    deleteResourcePermissionResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newDeleteResourcePermission' smart constructor.+data DeleteResourcePermission = DeleteResourcePermission'+  { actionType :: Prelude.Maybe PermissionActionType,+    sourceResourceArn :: Prelude.Maybe Prelude.Text,+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteResourcePermission' 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:+--+-- 'actionType', 'deleteResourcePermission_actionType' -+--+-- 'sourceResourceArn', 'deleteResourcePermission_sourceResourceArn' -+--+-- 'resourceArn', 'deleteResourcePermission_resourceArn' -+newDeleteResourcePermission ::+  -- | 'resourceArn'+  Prelude.Text ->+  DeleteResourcePermission+newDeleteResourcePermission pResourceArn_ =+  DeleteResourcePermission'+    { actionType =+        Prelude.Nothing,+      sourceResourceArn = Prelude.Nothing,+      resourceArn = pResourceArn_+    }++deleteResourcePermission_actionType :: Lens.Lens' DeleteResourcePermission (Prelude.Maybe PermissionActionType)+deleteResourcePermission_actionType = Lens.lens (\DeleteResourcePermission' {actionType} -> actionType) (\s@DeleteResourcePermission' {} a -> s {actionType = a} :: DeleteResourcePermission)++deleteResourcePermission_sourceResourceArn :: Lens.Lens' DeleteResourcePermission (Prelude.Maybe Prelude.Text)+deleteResourcePermission_sourceResourceArn = Lens.lens (\DeleteResourcePermission' {sourceResourceArn} -> sourceResourceArn) (\s@DeleteResourcePermission' {} a -> s {sourceResourceArn = a} :: DeleteResourcePermission)++deleteResourcePermission_resourceArn :: Lens.Lens' DeleteResourcePermission Prelude.Text+deleteResourcePermission_resourceArn = Lens.lens (\DeleteResourcePermission' {resourceArn} -> resourceArn) (\s@DeleteResourcePermission' {} a -> s {resourceArn = a} :: DeleteResourcePermission)++instance Core.AWSRequest DeleteResourcePermission where+  type+    AWSResponse DeleteResourcePermission =+      DeleteResourcePermissionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteResourcePermissionResponse'+            Prelude.<$> (x Data..?> "Policy")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteResourcePermission where+  hashWithSalt _salt DeleteResourcePermission' {..} =+    _salt+      `Prelude.hashWithSalt` actionType+      `Prelude.hashWithSalt` sourceResourceArn+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData DeleteResourcePermission where+  rnf DeleteResourcePermission' {..} =+    Prelude.rnf actionType+      `Prelude.seq` Prelude.rnf sourceResourceArn+      `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToHeaders DeleteResourcePermission where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteResourcePermission where+  toJSON DeleteResourcePermission' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ActionType" Data..=) Prelude.<$> actionType,+            ("SourceResourceArn" Data..=)+              Prelude.<$> sourceResourceArn,+            Prelude.Just ("ResourceArn" Data..= resourceArn)+          ]+      )++instance Data.ToPath DeleteResourcePermission where+  toPath = Prelude.const "/delete-resource-permission"++instance Data.ToQuery DeleteResourcePermission where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteResourcePermissionResponse' smart constructor.+data DeleteResourcePermissionResponse = DeleteResourcePermissionResponse'+  { policy :: 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 'DeleteResourcePermissionResponse' 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:+--+-- 'policy', 'deleteResourcePermissionResponse_policy' -+--+-- 'httpStatus', 'deleteResourcePermissionResponse_httpStatus' - The response's http status code.+newDeleteResourcePermissionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteResourcePermissionResponse+newDeleteResourcePermissionResponse pHttpStatus_ =+  DeleteResourcePermissionResponse'+    { policy =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++deleteResourcePermissionResponse_policy :: Lens.Lens' DeleteResourcePermissionResponse (Prelude.Maybe Prelude.Text)+deleteResourcePermissionResponse_policy = Lens.lens (\DeleteResourcePermissionResponse' {policy} -> policy) (\s@DeleteResourcePermissionResponse' {} a -> s {policy = a} :: DeleteResourcePermissionResponse)++-- | The response's http status code.+deleteResourcePermissionResponse_httpStatus :: Lens.Lens' DeleteResourcePermissionResponse Prelude.Int+deleteResourcePermissionResponse_httpStatus = Lens.lens (\DeleteResourcePermissionResponse' {httpStatus} -> httpStatus) (\s@DeleteResourcePermissionResponse' {} a -> s {httpStatus = a} :: DeleteResourcePermissionResponse)++instance+  Prelude.NFData+    DeleteResourcePermissionResponse+  where+  rnf DeleteResourcePermissionResponse' {..} =+    Prelude.rnf policy+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/DeregisterApplication.hs view
@@ -0,0 +1,158 @@+{-# 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.SSMSAP.DeregisterApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deregister an SAP application with AWS Systems Manager for SAP. This+-- action does not affect the existing setup of your SAP workloads on Amazon+-- EC2.+module Amazonka.SSMSAP.DeregisterApplication+  ( -- * Creating a Request+    DeregisterApplication (..),+    newDeregisterApplication,++    -- * Request Lenses+    deregisterApplication_applicationId,++    -- * Destructuring the Response+    DeregisterApplicationResponse (..),+    newDeregisterApplicationResponse,++    -- * Response Lenses+    deregisterApplicationResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newDeregisterApplication' smart constructor.+data DeregisterApplication = DeregisterApplication'+  { applicationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeregisterApplication' 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:+--+-- 'applicationId', 'deregisterApplication_applicationId' -+newDeregisterApplication ::+  -- | 'applicationId'+  Prelude.Text ->+  DeregisterApplication+newDeregisterApplication pApplicationId_ =+  DeregisterApplication'+    { applicationId =+        pApplicationId_+    }++deregisterApplication_applicationId :: Lens.Lens' DeregisterApplication Prelude.Text+deregisterApplication_applicationId = Lens.lens (\DeregisterApplication' {applicationId} -> applicationId) (\s@DeregisterApplication' {} a -> s {applicationId = a} :: DeregisterApplication)++instance Core.AWSRequest DeregisterApplication where+  type+    AWSResponse DeregisterApplication =+      DeregisterApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeregisterApplicationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeregisterApplication where+  hashWithSalt _salt DeregisterApplication' {..} =+    _salt `Prelude.hashWithSalt` applicationId++instance Prelude.NFData DeregisterApplication where+  rnf DeregisterApplication' {..} =+    Prelude.rnf applicationId++instance Data.ToHeaders DeregisterApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeregisterApplication where+  toJSON DeregisterApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("ApplicationId" Data..= applicationId)+          ]+      )++instance Data.ToPath DeregisterApplication where+  toPath = Prelude.const "/deregister-application"++instance Data.ToQuery DeregisterApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeregisterApplicationResponse' smart constructor.+data DeregisterApplicationResponse = DeregisterApplicationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeregisterApplicationResponse' 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', 'deregisterApplicationResponse_httpStatus' - The response's http status code.+newDeregisterApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeregisterApplicationResponse+newDeregisterApplicationResponse pHttpStatus_ =+  DeregisterApplicationResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deregisterApplicationResponse_httpStatus :: Lens.Lens' DeregisterApplicationResponse Prelude.Int+deregisterApplicationResponse_httpStatus = Lens.lens (\DeregisterApplicationResponse' {httpStatus} -> httpStatus) (\s@DeregisterApplicationResponse' {} a -> s {httpStatus = a} :: DeregisterApplicationResponse)++instance Prelude.NFData DeregisterApplicationResponse where+  rnf DeregisterApplicationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/GetApplication.hs view
@@ -0,0 +1,186 @@+{-# 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.SSMSAP.GetApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets an application registered with AWS Systems Manager for SAP. It also+-- returns the components of the application.+module Amazonka.SSMSAP.GetApplication+  ( -- * Creating a Request+    GetApplication (..),+    newGetApplication,++    -- * Request Lenses+    getApplication_applicationArn,+    getApplication_applicationId,++    -- * Destructuring the Response+    GetApplicationResponse (..),+    newGetApplicationResponse,++    -- * Response Lenses+    getApplicationResponse_application,+    getApplicationResponse_tags,+    getApplicationResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newGetApplication' smart constructor.+data GetApplication = GetApplication'+  { applicationArn :: Prelude.Maybe Prelude.Text,+    applicationId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetApplication' 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:+--+-- 'applicationArn', 'getApplication_applicationArn' -+--+-- 'applicationId', 'getApplication_applicationId' -+newGetApplication ::+  GetApplication+newGetApplication =+  GetApplication'+    { applicationArn = Prelude.Nothing,+      applicationId = Prelude.Nothing+    }++getApplication_applicationArn :: Lens.Lens' GetApplication (Prelude.Maybe Prelude.Text)+getApplication_applicationArn = Lens.lens (\GetApplication' {applicationArn} -> applicationArn) (\s@GetApplication' {} a -> s {applicationArn = a} :: GetApplication)++getApplication_applicationId :: Lens.Lens' GetApplication (Prelude.Maybe Prelude.Text)+getApplication_applicationId = Lens.lens (\GetApplication' {applicationId} -> applicationId) (\s@GetApplication' {} a -> s {applicationId = a} :: GetApplication)++instance Core.AWSRequest GetApplication where+  type+    AWSResponse GetApplication =+      GetApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetApplicationResponse'+            Prelude.<$> (x Data..?> "Application")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetApplication where+  hashWithSalt _salt GetApplication' {..} =+    _salt+      `Prelude.hashWithSalt` applicationArn+      `Prelude.hashWithSalt` applicationId++instance Prelude.NFData GetApplication where+  rnf GetApplication' {..} =+    Prelude.rnf applicationArn+      `Prelude.seq` Prelude.rnf applicationId++instance Data.ToHeaders GetApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetApplication where+  toJSON GetApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ApplicationArn" Data..=)+              Prelude.<$> applicationArn,+            ("ApplicationId" Data..=) Prelude.<$> applicationId+          ]+      )++instance Data.ToPath GetApplication where+  toPath = Prelude.const "/get-application"++instance Data.ToQuery GetApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetApplicationResponse' smart constructor.+data GetApplicationResponse = GetApplicationResponse'+  { application :: Prelude.Maybe Application,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetApplicationResponse' 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:+--+-- 'application', 'getApplicationResponse_application' -+--+-- 'tags', 'getApplicationResponse_tags' -+--+-- 'httpStatus', 'getApplicationResponse_httpStatus' - The response's http status code.+newGetApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetApplicationResponse+newGetApplicationResponse pHttpStatus_ =+  GetApplicationResponse'+    { application =+        Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++getApplicationResponse_application :: Lens.Lens' GetApplicationResponse (Prelude.Maybe Application)+getApplicationResponse_application = Lens.lens (\GetApplicationResponse' {application} -> application) (\s@GetApplicationResponse' {} a -> s {application = a} :: GetApplicationResponse)++getApplicationResponse_tags :: Lens.Lens' GetApplicationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getApplicationResponse_tags = Lens.lens (\GetApplicationResponse' {tags} -> tags) (\s@GetApplicationResponse' {} a -> s {tags = a} :: GetApplicationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getApplicationResponse_httpStatus :: Lens.Lens' GetApplicationResponse Prelude.Int+getApplicationResponse_httpStatus = Lens.lens (\GetApplicationResponse' {httpStatus} -> httpStatus) (\s@GetApplicationResponse' {} a -> s {httpStatus = a} :: GetApplicationResponse)++instance Prelude.NFData GetApplicationResponse where+  rnf GetApplicationResponse' {..} =+    Prelude.rnf application+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/GetComponent.hs view
@@ -0,0 +1,177 @@+{-# 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.SSMSAP.GetComponent+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the component of an application registered with AWS Systems Manager+-- for SAP.+module Amazonka.SSMSAP.GetComponent+  ( -- * Creating a Request+    GetComponent (..),+    newGetComponent,++    -- * Request Lenses+    getComponent_applicationId,+    getComponent_componentId,++    -- * Destructuring the Response+    GetComponentResponse (..),+    newGetComponentResponse,++    -- * Response Lenses+    getComponentResponse_component,+    getComponentResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newGetComponent' smart constructor.+data GetComponent = GetComponent'+  { applicationId :: Prelude.Text,+    componentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetComponent' 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:+--+-- 'applicationId', 'getComponent_applicationId' -+--+-- 'componentId', 'getComponent_componentId' -+newGetComponent ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'componentId'+  Prelude.Text ->+  GetComponent+newGetComponent pApplicationId_ pComponentId_ =+  GetComponent'+    { applicationId = pApplicationId_,+      componentId = pComponentId_+    }++getComponent_applicationId :: Lens.Lens' GetComponent Prelude.Text+getComponent_applicationId = Lens.lens (\GetComponent' {applicationId} -> applicationId) (\s@GetComponent' {} a -> s {applicationId = a} :: GetComponent)++getComponent_componentId :: Lens.Lens' GetComponent Prelude.Text+getComponent_componentId = Lens.lens (\GetComponent' {componentId} -> componentId) (\s@GetComponent' {} a -> s {componentId = a} :: GetComponent)++instance Core.AWSRequest GetComponent where+  type AWSResponse GetComponent = GetComponentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetComponentResponse'+            Prelude.<$> (x Data..?> "Component")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetComponent where+  hashWithSalt _salt GetComponent' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` componentId++instance Prelude.NFData GetComponent where+  rnf GetComponent' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf componentId++instance Data.ToHeaders GetComponent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetComponent where+  toJSON GetComponent' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("ApplicationId" Data..= applicationId),+            Prelude.Just ("ComponentId" Data..= componentId)+          ]+      )++instance Data.ToPath GetComponent where+  toPath = Prelude.const "/get-component"++instance Data.ToQuery GetComponent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetComponentResponse' smart constructor.+data GetComponentResponse = GetComponentResponse'+  { component :: Prelude.Maybe Component,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetComponentResponse' 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:+--+-- 'component', 'getComponentResponse_component' -+--+-- 'httpStatus', 'getComponentResponse_httpStatus' - The response's http status code.+newGetComponentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetComponentResponse+newGetComponentResponse pHttpStatus_ =+  GetComponentResponse'+    { component = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++getComponentResponse_component :: Lens.Lens' GetComponentResponse (Prelude.Maybe Component)+getComponentResponse_component = Lens.lens (\GetComponentResponse' {component} -> component) (\s@GetComponentResponse' {} a -> s {component = a} :: GetComponentResponse)++-- | The response's http status code.+getComponentResponse_httpStatus :: Lens.Lens' GetComponentResponse Prelude.Int+getComponentResponse_httpStatus = Lens.lens (\GetComponentResponse' {httpStatus} -> httpStatus) (\s@GetComponentResponse' {} a -> s {httpStatus = a} :: GetComponentResponse)++instance Prelude.NFData GetComponentResponse where+  rnf GetComponentResponse' {..} =+    Prelude.rnf component+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/GetDatabase.hs view
@@ -0,0 +1,204 @@+{-# 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.SSMSAP.GetDatabase+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the SAP HANA database of an application registered with AWS Systems+-- Manager for SAP.+module Amazonka.SSMSAP.GetDatabase+  ( -- * Creating a Request+    GetDatabase (..),+    newGetDatabase,++    -- * Request Lenses+    getDatabase_applicationId,+    getDatabase_componentId,+    getDatabase_databaseArn,+    getDatabase_databaseId,++    -- * Destructuring the Response+    GetDatabaseResponse (..),+    newGetDatabaseResponse,++    -- * Response Lenses+    getDatabaseResponse_database,+    getDatabaseResponse_tags,+    getDatabaseResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newGetDatabase' smart constructor.+data GetDatabase = GetDatabase'+  { applicationId :: Prelude.Maybe Prelude.Text,+    componentId :: Prelude.Maybe Prelude.Text,+    databaseArn :: Prelude.Maybe Prelude.Text,+    databaseId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDatabase' 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:+--+-- 'applicationId', 'getDatabase_applicationId' -+--+-- 'componentId', 'getDatabase_componentId' -+--+-- 'databaseArn', 'getDatabase_databaseArn' -+--+-- 'databaseId', 'getDatabase_databaseId' -+newGetDatabase ::+  GetDatabase+newGetDatabase =+  GetDatabase'+    { applicationId = Prelude.Nothing,+      componentId = Prelude.Nothing,+      databaseArn = Prelude.Nothing,+      databaseId = Prelude.Nothing+    }++getDatabase_applicationId :: Lens.Lens' GetDatabase (Prelude.Maybe Prelude.Text)+getDatabase_applicationId = Lens.lens (\GetDatabase' {applicationId} -> applicationId) (\s@GetDatabase' {} a -> s {applicationId = a} :: GetDatabase)++getDatabase_componentId :: Lens.Lens' GetDatabase (Prelude.Maybe Prelude.Text)+getDatabase_componentId = Lens.lens (\GetDatabase' {componentId} -> componentId) (\s@GetDatabase' {} a -> s {componentId = a} :: GetDatabase)++getDatabase_databaseArn :: Lens.Lens' GetDatabase (Prelude.Maybe Prelude.Text)+getDatabase_databaseArn = Lens.lens (\GetDatabase' {databaseArn} -> databaseArn) (\s@GetDatabase' {} a -> s {databaseArn = a} :: GetDatabase)++getDatabase_databaseId :: Lens.Lens' GetDatabase (Prelude.Maybe Prelude.Text)+getDatabase_databaseId = Lens.lens (\GetDatabase' {databaseId} -> databaseId) (\s@GetDatabase' {} a -> s {databaseId = a} :: GetDatabase)++instance Core.AWSRequest GetDatabase where+  type AWSResponse GetDatabase = GetDatabaseResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDatabaseResponse'+            Prelude.<$> (x Data..?> "Database")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetDatabase where+  hashWithSalt _salt GetDatabase' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` componentId+      `Prelude.hashWithSalt` databaseArn+      `Prelude.hashWithSalt` databaseId++instance Prelude.NFData GetDatabase where+  rnf GetDatabase' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf componentId+      `Prelude.seq` Prelude.rnf databaseArn+      `Prelude.seq` Prelude.rnf databaseId++instance Data.ToHeaders GetDatabase where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetDatabase where+  toJSON GetDatabase' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ApplicationId" Data..=) Prelude.<$> applicationId,+            ("ComponentId" Data..=) Prelude.<$> componentId,+            ("DatabaseArn" Data..=) Prelude.<$> databaseArn,+            ("DatabaseId" Data..=) Prelude.<$> databaseId+          ]+      )++instance Data.ToPath GetDatabase where+  toPath = Prelude.const "/get-database"++instance Data.ToQuery GetDatabase where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDatabaseResponse' smart constructor.+data GetDatabaseResponse = GetDatabaseResponse'+  { database :: Prelude.Maybe Database,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDatabaseResponse' 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:+--+-- 'database', 'getDatabaseResponse_database' -+--+-- 'tags', 'getDatabaseResponse_tags' -+--+-- 'httpStatus', 'getDatabaseResponse_httpStatus' - The response's http status code.+newGetDatabaseResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDatabaseResponse+newGetDatabaseResponse pHttpStatus_ =+  GetDatabaseResponse'+    { database = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++getDatabaseResponse_database :: Lens.Lens' GetDatabaseResponse (Prelude.Maybe Database)+getDatabaseResponse_database = Lens.lens (\GetDatabaseResponse' {database} -> database) (\s@GetDatabaseResponse' {} a -> s {database = a} :: GetDatabaseResponse)++getDatabaseResponse_tags :: Lens.Lens' GetDatabaseResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getDatabaseResponse_tags = Lens.lens (\GetDatabaseResponse' {tags} -> tags) (\s@GetDatabaseResponse' {} a -> s {tags = a} :: GetDatabaseResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getDatabaseResponse_httpStatus :: Lens.Lens' GetDatabaseResponse Prelude.Int+getDatabaseResponse_httpStatus = Lens.lens (\GetDatabaseResponse' {httpStatus} -> httpStatus) (\s@GetDatabaseResponse' {} a -> s {httpStatus = a} :: GetDatabaseResponse)++instance Prelude.NFData GetDatabaseResponse where+  rnf GetDatabaseResponse' {..} =+    Prelude.rnf database+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/GetOperation.hs view
@@ -0,0 +1,157 @@+{-# 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.SSMSAP.GetOperation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the details of an operation by specifying the operation ID.+module Amazonka.SSMSAP.GetOperation+  ( -- * Creating a Request+    GetOperation (..),+    newGetOperation,++    -- * Request Lenses+    getOperation_operationId,++    -- * Destructuring the Response+    GetOperationResponse (..),+    newGetOperationResponse,++    -- * Response Lenses+    getOperationResponse_operation,+    getOperationResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newGetOperation' smart constructor.+data GetOperation = GetOperation'+  { operationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetOperation' 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:+--+-- 'operationId', 'getOperation_operationId' -+newGetOperation ::+  -- | 'operationId'+  Prelude.Text ->+  GetOperation+newGetOperation pOperationId_ =+  GetOperation' {operationId = pOperationId_}++getOperation_operationId :: Lens.Lens' GetOperation Prelude.Text+getOperation_operationId = Lens.lens (\GetOperation' {operationId} -> operationId) (\s@GetOperation' {} a -> s {operationId = a} :: GetOperation)++instance Core.AWSRequest GetOperation where+  type AWSResponse GetOperation = GetOperationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetOperationResponse'+            Prelude.<$> (x Data..?> "Operation")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetOperation where+  hashWithSalt _salt GetOperation' {..} =+    _salt `Prelude.hashWithSalt` operationId++instance Prelude.NFData GetOperation where+  rnf GetOperation' {..} = Prelude.rnf operationId++instance Data.ToHeaders GetOperation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetOperation where+  toJSON GetOperation' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("OperationId" Data..= operationId)]+      )++instance Data.ToPath GetOperation where+  toPath = Prelude.const "/get-operation"++instance Data.ToQuery GetOperation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetOperationResponse' smart constructor.+data GetOperationResponse = GetOperationResponse'+  { operation :: Prelude.Maybe Operation,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetOperationResponse' 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:+--+-- 'operation', 'getOperationResponse_operation' -+--+-- 'httpStatus', 'getOperationResponse_httpStatus' - The response's http status code.+newGetOperationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetOperationResponse+newGetOperationResponse pHttpStatus_ =+  GetOperationResponse'+    { operation = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++getOperationResponse_operation :: Lens.Lens' GetOperationResponse (Prelude.Maybe Operation)+getOperationResponse_operation = Lens.lens (\GetOperationResponse' {operation} -> operation) (\s@GetOperationResponse' {} a -> s {operation = a} :: GetOperationResponse)++-- | The response's http status code.+getOperationResponse_httpStatus :: Lens.Lens' GetOperationResponse Prelude.Int+getOperationResponse_httpStatus = Lens.lens (\GetOperationResponse' {httpStatus} -> httpStatus) (\s@GetOperationResponse' {} a -> s {httpStatus = a} :: GetOperationResponse)++instance Prelude.NFData GetOperationResponse where+  rnf GetOperationResponse' {..} =+    Prelude.rnf operation+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/GetResourcePermission.hs view
@@ -0,0 +1,177 @@+{-# 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.SSMSAP.GetResourcePermission+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets permissions associated with the target database.+module Amazonka.SSMSAP.GetResourcePermission+  ( -- * Creating a Request+    GetResourcePermission (..),+    newGetResourcePermission,++    -- * Request Lenses+    getResourcePermission_actionType,+    getResourcePermission_resourceArn,++    -- * Destructuring the Response+    GetResourcePermissionResponse (..),+    newGetResourcePermissionResponse,++    -- * Response Lenses+    getResourcePermissionResponse_policy,+    getResourcePermissionResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newGetResourcePermission' smart constructor.+data GetResourcePermission = GetResourcePermission'+  { actionType :: Prelude.Maybe PermissionActionType,+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetResourcePermission' 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:+--+-- 'actionType', 'getResourcePermission_actionType' -+--+-- 'resourceArn', 'getResourcePermission_resourceArn' -+newGetResourcePermission ::+  -- | 'resourceArn'+  Prelude.Text ->+  GetResourcePermission+newGetResourcePermission pResourceArn_ =+  GetResourcePermission'+    { actionType =+        Prelude.Nothing,+      resourceArn = pResourceArn_+    }++getResourcePermission_actionType :: Lens.Lens' GetResourcePermission (Prelude.Maybe PermissionActionType)+getResourcePermission_actionType = Lens.lens (\GetResourcePermission' {actionType} -> actionType) (\s@GetResourcePermission' {} a -> s {actionType = a} :: GetResourcePermission)++getResourcePermission_resourceArn :: Lens.Lens' GetResourcePermission Prelude.Text+getResourcePermission_resourceArn = Lens.lens (\GetResourcePermission' {resourceArn} -> resourceArn) (\s@GetResourcePermission' {} a -> s {resourceArn = a} :: GetResourcePermission)++instance Core.AWSRequest GetResourcePermission where+  type+    AWSResponse GetResourcePermission =+      GetResourcePermissionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetResourcePermissionResponse'+            Prelude.<$> (x Data..?> "Policy")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetResourcePermission where+  hashWithSalt _salt GetResourcePermission' {..} =+    _salt+      `Prelude.hashWithSalt` actionType+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData GetResourcePermission where+  rnf GetResourcePermission' {..} =+    Prelude.rnf actionType+      `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToHeaders GetResourcePermission where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetResourcePermission where+  toJSON GetResourcePermission' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ActionType" Data..=) Prelude.<$> actionType,+            Prelude.Just ("ResourceArn" Data..= resourceArn)+          ]+      )++instance Data.ToPath GetResourcePermission where+  toPath = Prelude.const "/get-resource-permission"++instance Data.ToQuery GetResourcePermission where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetResourcePermissionResponse' smart constructor.+data GetResourcePermissionResponse = GetResourcePermissionResponse'+  { policy :: 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 'GetResourcePermissionResponse' 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:+--+-- 'policy', 'getResourcePermissionResponse_policy' -+--+-- 'httpStatus', 'getResourcePermissionResponse_httpStatus' - The response's http status code.+newGetResourcePermissionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetResourcePermissionResponse+newGetResourcePermissionResponse pHttpStatus_ =+  GetResourcePermissionResponse'+    { policy =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++getResourcePermissionResponse_policy :: Lens.Lens' GetResourcePermissionResponse (Prelude.Maybe Prelude.Text)+getResourcePermissionResponse_policy = Lens.lens (\GetResourcePermissionResponse' {policy} -> policy) (\s@GetResourcePermissionResponse' {} a -> s {policy = a} :: GetResourcePermissionResponse)++-- | The response's http status code.+getResourcePermissionResponse_httpStatus :: Lens.Lens' GetResourcePermissionResponse Prelude.Int+getResourcePermissionResponse_httpStatus = Lens.lens (\GetResourcePermissionResponse' {httpStatus} -> httpStatus) (\s@GetResourcePermissionResponse' {} a -> s {httpStatus = a} :: GetResourcePermissionResponse)++instance Prelude.NFData GetResourcePermissionResponse where+  rnf GetResourcePermissionResponse' {..} =+    Prelude.rnf policy+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/Lens.hs view
@@ -0,0 +1,232 @@+{-# 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.SSMSAP.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.SSMSAP.Lens+  ( -- * Operations++    -- ** DeleteResourcePermission+    deleteResourcePermission_actionType,+    deleteResourcePermission_sourceResourceArn,+    deleteResourcePermission_resourceArn,+    deleteResourcePermissionResponse_policy,+    deleteResourcePermissionResponse_httpStatus,++    -- ** DeregisterApplication+    deregisterApplication_applicationId,+    deregisterApplicationResponse_httpStatus,++    -- ** GetApplication+    getApplication_applicationArn,+    getApplication_applicationId,+    getApplicationResponse_application,+    getApplicationResponse_tags,+    getApplicationResponse_httpStatus,++    -- ** GetComponent+    getComponent_applicationId,+    getComponent_componentId,+    getComponentResponse_component,+    getComponentResponse_httpStatus,++    -- ** GetDatabase+    getDatabase_applicationId,+    getDatabase_componentId,+    getDatabase_databaseArn,+    getDatabase_databaseId,+    getDatabaseResponse_database,+    getDatabaseResponse_tags,+    getDatabaseResponse_httpStatus,++    -- ** GetOperation+    getOperation_operationId,+    getOperationResponse_operation,+    getOperationResponse_httpStatus,++    -- ** GetResourcePermission+    getResourcePermission_actionType,+    getResourcePermission_resourceArn,+    getResourcePermissionResponse_policy,+    getResourcePermissionResponse_httpStatus,++    -- ** ListApplications+    listApplications_maxResults,+    listApplications_nextToken,+    listApplicationsResponse_applications,+    listApplicationsResponse_nextToken,+    listApplicationsResponse_httpStatus,++    -- ** ListComponents+    listComponents_applicationId,+    listComponents_maxResults,+    listComponents_nextToken,+    listComponentsResponse_components,+    listComponentsResponse_nextToken,+    listComponentsResponse_httpStatus,++    -- ** ListDatabases+    listDatabases_applicationId,+    listDatabases_componentId,+    listDatabases_maxResults,+    listDatabases_nextToken,+    listDatabasesResponse_databases,+    listDatabasesResponse_nextToken,+    listDatabasesResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** PutResourcePermission+    putResourcePermission_actionType,+    putResourcePermission_sourceResourceArn,+    putResourcePermission_resourceArn,+    putResourcePermissionResponse_policy,+    putResourcePermissionResponse_httpStatus,++    -- ** RegisterApplication+    registerApplication_sapInstanceNumber,+    registerApplication_sid,+    registerApplication_tags,+    registerApplication_applicationId,+    registerApplication_applicationType,+    registerApplication_instances,+    registerApplication_credentials,+    registerApplicationResponse_application,+    registerApplicationResponse_operationId,+    registerApplicationResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateApplicationSettings+    updateApplicationSettings_credentialsToAddOrUpdate,+    updateApplicationSettings_credentialsToRemove,+    updateApplicationSettings_applicationId,+    updateApplicationSettingsResponse_message,+    updateApplicationSettingsResponse_operationIds,+    updateApplicationSettingsResponse_httpStatus,++    -- * Types++    -- ** Application+    application_appRegistryArn,+    application_arn,+    application_components,+    application_id,+    application_lastUpdated,+    application_status,+    application_statusMessage,+    application_type,++    -- ** ApplicationCredential+    applicationCredential_databaseName,+    applicationCredential_credentialType,+    applicationCredential_secretId,++    -- ** ApplicationSummary+    applicationSummary_arn,+    applicationSummary_id,+    applicationSummary_tags,+    applicationSummary_type,++    -- ** Component+    component_applicationId,+    component_componentId,+    component_componentType,+    component_databases,+    component_hosts,+    component_lastUpdated,+    component_primaryHost,+    component_status,++    -- ** ComponentSummary+    componentSummary_applicationId,+    componentSummary_componentId,+    componentSummary_componentType,+    componentSummary_tags,++    -- ** Database+    database_applicationId,+    database_arn,+    database_componentId,+    database_credentials,+    database_databaseId,+    database_databaseName,+    database_databaseType,+    database_lastUpdated,+    database_primaryHost,+    database_sQLPort,+    database_status,++    -- ** DatabaseSummary+    databaseSummary_applicationId,+    databaseSummary_arn,+    databaseSummary_componentId,+    databaseSummary_databaseId,+    databaseSummary_databaseType,+    databaseSummary_tags,++    -- ** Host+    host_hostIp,+    host_hostName,+    host_hostRole,+    host_instanceId,++    -- ** Operation+    operation_endTime,+    operation_id,+    operation_lastUpdatedTime,+    operation_properties,+    operation_resourceArn,+    operation_resourceId,+    operation_resourceType,+    operation_startTime,+    operation_status,+    operation_statusMessage,+    operation_type,+  )+where++import Amazonka.SSMSAP.DeleteResourcePermission+import Amazonka.SSMSAP.DeregisterApplication+import Amazonka.SSMSAP.GetApplication+import Amazonka.SSMSAP.GetComponent+import Amazonka.SSMSAP.GetDatabase+import Amazonka.SSMSAP.GetOperation+import Amazonka.SSMSAP.GetResourcePermission+import Amazonka.SSMSAP.ListApplications+import Amazonka.SSMSAP.ListComponents+import Amazonka.SSMSAP.ListDatabases+import Amazonka.SSMSAP.ListTagsForResource+import Amazonka.SSMSAP.PutResourcePermission+import Amazonka.SSMSAP.RegisterApplication+import Amazonka.SSMSAP.TagResource+import Amazonka.SSMSAP.Types.Application+import Amazonka.SSMSAP.Types.ApplicationCredential+import Amazonka.SSMSAP.Types.ApplicationSummary+import Amazonka.SSMSAP.Types.Component+import Amazonka.SSMSAP.Types.ComponentSummary+import Amazonka.SSMSAP.Types.Database+import Amazonka.SSMSAP.Types.DatabaseSummary+import Amazonka.SSMSAP.Types.Host+import Amazonka.SSMSAP.Types.Operation+import Amazonka.SSMSAP.UntagResource+import Amazonka.SSMSAP.UpdateApplicationSettings
+ gen/Amazonka/SSMSAP/ListApplications.hs view
@@ -0,0 +1,208 @@+{-# 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.SSMSAP.ListApplications+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all the applications registered with AWS Systems Manager for SAP.+--+-- This operation returns paginated results.+module Amazonka.SSMSAP.ListApplications+  ( -- * Creating a Request+    ListApplications (..),+    newListApplications,++    -- * Request Lenses+    listApplications_maxResults,+    listApplications_nextToken,++    -- * Destructuring the Response+    ListApplicationsResponse (..),+    newListApplicationsResponse,++    -- * Response Lenses+    listApplicationsResponse_applications,+    listApplicationsResponse_nextToken,+    listApplicationsResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newListApplications' smart constructor.+data ListApplications = ListApplications'+  { maxResults :: Prelude.Maybe Prelude.Natural,+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListApplications' 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', 'listApplications_maxResults' -+--+-- 'nextToken', 'listApplications_nextToken' -+newListApplications ::+  ListApplications+newListApplications =+  ListApplications'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++listApplications_maxResults :: Lens.Lens' ListApplications (Prelude.Maybe Prelude.Natural)+listApplications_maxResults = Lens.lens (\ListApplications' {maxResults} -> maxResults) (\s@ListApplications' {} a -> s {maxResults = a} :: ListApplications)++listApplications_nextToken :: Lens.Lens' ListApplications (Prelude.Maybe Prelude.Text)+listApplications_nextToken = Lens.lens (\ListApplications' {nextToken} -> nextToken) (\s@ListApplications' {} a -> s {nextToken = a} :: ListApplications)++instance Core.AWSPager ListApplications where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listApplicationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listApplicationsResponse_applications+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listApplications_nextToken+          Lens..~ rs+          Lens.^? listApplicationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListApplications where+  type+    AWSResponse ListApplications =+      ListApplicationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListApplicationsResponse'+            Prelude.<$> (x Data..?> "Applications" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListApplications where+  hashWithSalt _salt ListApplications' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListApplications where+  rnf ListApplications' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListApplications where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListApplications where+  toJSON ListApplications' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListApplications where+  toPath = Prelude.const "/list-applications"++instance Data.ToQuery ListApplications where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListApplicationsResponse' smart constructor.+data ListApplicationsResponse = ListApplicationsResponse'+  { applications :: Prelude.Maybe [ApplicationSummary],+    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 'ListApplicationsResponse' 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:+--+-- 'applications', 'listApplicationsResponse_applications' -+--+-- 'nextToken', 'listApplicationsResponse_nextToken' -+--+-- 'httpStatus', 'listApplicationsResponse_httpStatus' - The response's http status code.+newListApplicationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListApplicationsResponse+newListApplicationsResponse pHttpStatus_ =+  ListApplicationsResponse'+    { applications =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++listApplicationsResponse_applications :: Lens.Lens' ListApplicationsResponse (Prelude.Maybe [ApplicationSummary])+listApplicationsResponse_applications = Lens.lens (\ListApplicationsResponse' {applications} -> applications) (\s@ListApplicationsResponse' {} a -> s {applications = a} :: ListApplicationsResponse) Prelude.. Lens.mapping Lens.coerced++listApplicationsResponse_nextToken :: Lens.Lens' ListApplicationsResponse (Prelude.Maybe Prelude.Text)+listApplicationsResponse_nextToken = Lens.lens (\ListApplicationsResponse' {nextToken} -> nextToken) (\s@ListApplicationsResponse' {} a -> s {nextToken = a} :: ListApplicationsResponse)++-- | The response's http status code.+listApplicationsResponse_httpStatus :: Lens.Lens' ListApplicationsResponse Prelude.Int+listApplicationsResponse_httpStatus = Lens.lens (\ListApplicationsResponse' {httpStatus} -> httpStatus) (\s@ListApplicationsResponse' {} a -> s {httpStatus = a} :: ListApplicationsResponse)++instance Prelude.NFData ListApplicationsResponse where+  rnf ListApplicationsResponse' {..} =+    Prelude.rnf applications+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/ListComponents.hs view
@@ -0,0 +1,219 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.SSMSAP.ListComponents+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all the components registered with AWS Systems Manager for SAP.+--+-- This operation returns paginated results.+module Amazonka.SSMSAP.ListComponents+  ( -- * Creating a Request+    ListComponents (..),+    newListComponents,++    -- * Request Lenses+    listComponents_applicationId,+    listComponents_maxResults,+    listComponents_nextToken,++    -- * Destructuring the Response+    ListComponentsResponse (..),+    newListComponentsResponse,++    -- * Response Lenses+    listComponentsResponse_components,+    listComponentsResponse_nextToken,+    listComponentsResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newListComponents' smart constructor.+data ListComponents = ListComponents'+  { applicationId :: Prelude.Maybe Prelude.Text,+    maxResults :: Prelude.Maybe Prelude.Natural,+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListComponents' 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:+--+-- 'applicationId', 'listComponents_applicationId' -+--+-- 'maxResults', 'listComponents_maxResults' -+--+-- 'nextToken', 'listComponents_nextToken' -+newListComponents ::+  ListComponents+newListComponents =+  ListComponents'+    { applicationId = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++listComponents_applicationId :: Lens.Lens' ListComponents (Prelude.Maybe Prelude.Text)+listComponents_applicationId = Lens.lens (\ListComponents' {applicationId} -> applicationId) (\s@ListComponents' {} a -> s {applicationId = a} :: ListComponents)++listComponents_maxResults :: Lens.Lens' ListComponents (Prelude.Maybe Prelude.Natural)+listComponents_maxResults = Lens.lens (\ListComponents' {maxResults} -> maxResults) (\s@ListComponents' {} a -> s {maxResults = a} :: ListComponents)++listComponents_nextToken :: Lens.Lens' ListComponents (Prelude.Maybe Prelude.Text)+listComponents_nextToken = Lens.lens (\ListComponents' {nextToken} -> nextToken) (\s@ListComponents' {} a -> s {nextToken = a} :: ListComponents)++instance Core.AWSPager ListComponents where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listComponentsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listComponentsResponse_components+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listComponents_nextToken+          Lens..~ rs+          Lens.^? listComponentsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListComponents where+  type+    AWSResponse ListComponents =+      ListComponentsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListComponentsResponse'+            Prelude.<$> (x Data..?> "Components" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListComponents where+  hashWithSalt _salt ListComponents' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListComponents where+  rnf ListComponents' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListComponents where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListComponents where+  toJSON ListComponents' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ApplicationId" Data..=) Prelude.<$> applicationId,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListComponents where+  toPath = Prelude.const "/list-components"++instance Data.ToQuery ListComponents where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListComponentsResponse' smart constructor.+data ListComponentsResponse = ListComponentsResponse'+  { components :: Prelude.Maybe [ComponentSummary],+    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 'ListComponentsResponse' 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:+--+-- 'components', 'listComponentsResponse_components' -+--+-- 'nextToken', 'listComponentsResponse_nextToken' -+--+-- 'httpStatus', 'listComponentsResponse_httpStatus' - The response's http status code.+newListComponentsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListComponentsResponse+newListComponentsResponse pHttpStatus_ =+  ListComponentsResponse'+    { components =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++listComponentsResponse_components :: Lens.Lens' ListComponentsResponse (Prelude.Maybe [ComponentSummary])+listComponentsResponse_components = Lens.lens (\ListComponentsResponse' {components} -> components) (\s@ListComponentsResponse' {} a -> s {components = a} :: ListComponentsResponse) Prelude.. Lens.mapping Lens.coerced++listComponentsResponse_nextToken :: Lens.Lens' ListComponentsResponse (Prelude.Maybe Prelude.Text)+listComponentsResponse_nextToken = Lens.lens (\ListComponentsResponse' {nextToken} -> nextToken) (\s@ListComponentsResponse' {} a -> s {nextToken = a} :: ListComponentsResponse)++-- | The response's http status code.+listComponentsResponse_httpStatus :: Lens.Lens' ListComponentsResponse Prelude.Int+listComponentsResponse_httpStatus = Lens.lens (\ListComponentsResponse' {httpStatus} -> httpStatus) (\s@ListComponentsResponse' {} a -> s {httpStatus = a} :: ListComponentsResponse)++instance Prelude.NFData ListComponentsResponse where+  rnf ListComponentsResponse' {..} =+    Prelude.rnf components+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/ListDatabases.hs view
@@ -0,0 +1,230 @@+{-# 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.SSMSAP.ListDatabases+-- 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 SAP HANA databases of an application registered with AWS+-- Systems Manager for SAP.+--+-- This operation returns paginated results.+module Amazonka.SSMSAP.ListDatabases+  ( -- * Creating a Request+    ListDatabases (..),+    newListDatabases,++    -- * Request Lenses+    listDatabases_applicationId,+    listDatabases_componentId,+    listDatabases_maxResults,+    listDatabases_nextToken,++    -- * Destructuring the Response+    ListDatabasesResponse (..),+    newListDatabasesResponse,++    -- * Response Lenses+    listDatabasesResponse_databases,+    listDatabasesResponse_nextToken,+    listDatabasesResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newListDatabases' smart constructor.+data ListDatabases = ListDatabases'+  { applicationId :: Prelude.Maybe Prelude.Text,+    componentId :: Prelude.Maybe Prelude.Text,+    maxResults :: Prelude.Maybe Prelude.Natural,+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDatabases' 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:+--+-- 'applicationId', 'listDatabases_applicationId' -+--+-- 'componentId', 'listDatabases_componentId' -+--+-- 'maxResults', 'listDatabases_maxResults' -+--+-- 'nextToken', 'listDatabases_nextToken' -+newListDatabases ::+  ListDatabases+newListDatabases =+  ListDatabases'+    { applicationId = Prelude.Nothing,+      componentId = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++listDatabases_applicationId :: Lens.Lens' ListDatabases (Prelude.Maybe Prelude.Text)+listDatabases_applicationId = Lens.lens (\ListDatabases' {applicationId} -> applicationId) (\s@ListDatabases' {} a -> s {applicationId = a} :: ListDatabases)++listDatabases_componentId :: Lens.Lens' ListDatabases (Prelude.Maybe Prelude.Text)+listDatabases_componentId = Lens.lens (\ListDatabases' {componentId} -> componentId) (\s@ListDatabases' {} a -> s {componentId = a} :: ListDatabases)++listDatabases_maxResults :: Lens.Lens' ListDatabases (Prelude.Maybe Prelude.Natural)+listDatabases_maxResults = Lens.lens (\ListDatabases' {maxResults} -> maxResults) (\s@ListDatabases' {} a -> s {maxResults = a} :: ListDatabases)++listDatabases_nextToken :: Lens.Lens' ListDatabases (Prelude.Maybe Prelude.Text)+listDatabases_nextToken = Lens.lens (\ListDatabases' {nextToken} -> nextToken) (\s@ListDatabases' {} a -> s {nextToken = a} :: ListDatabases)++instance Core.AWSPager ListDatabases where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDatabasesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listDatabasesResponse_databases+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDatabases_nextToken+          Lens..~ rs+          Lens.^? listDatabasesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListDatabases where+  type+    AWSResponse ListDatabases =+      ListDatabasesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDatabasesResponse'+            Prelude.<$> (x Data..?> "Databases" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDatabases where+  hashWithSalt _salt ListDatabases' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` componentId+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListDatabases where+  rnf ListDatabases' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf componentId+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListDatabases where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListDatabases where+  toJSON ListDatabases' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ApplicationId" Data..=) Prelude.<$> applicationId,+            ("ComponentId" Data..=) Prelude.<$> componentId,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListDatabases where+  toPath = Prelude.const "/list-databases"++instance Data.ToQuery ListDatabases where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListDatabasesResponse' smart constructor.+data ListDatabasesResponse = ListDatabasesResponse'+  { databases :: Prelude.Maybe [DatabaseSummary],+    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 'ListDatabasesResponse' 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:+--+-- 'databases', 'listDatabasesResponse_databases' -+--+-- 'nextToken', 'listDatabasesResponse_nextToken' -+--+-- 'httpStatus', 'listDatabasesResponse_httpStatus' - The response's http status code.+newListDatabasesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDatabasesResponse+newListDatabasesResponse pHttpStatus_ =+  ListDatabasesResponse'+    { databases = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++listDatabasesResponse_databases :: Lens.Lens' ListDatabasesResponse (Prelude.Maybe [DatabaseSummary])+listDatabasesResponse_databases = Lens.lens (\ListDatabasesResponse' {databases} -> databases) (\s@ListDatabasesResponse' {} a -> s {databases = a} :: ListDatabasesResponse) Prelude.. Lens.mapping Lens.coerced++listDatabasesResponse_nextToken :: Lens.Lens' ListDatabasesResponse (Prelude.Maybe Prelude.Text)+listDatabasesResponse_nextToken = Lens.lens (\ListDatabasesResponse' {nextToken} -> nextToken) (\s@ListDatabasesResponse' {} a -> s {nextToken = a} :: ListDatabasesResponse)++-- | The response's http status code.+listDatabasesResponse_httpStatus :: Lens.Lens' ListDatabasesResponse Prelude.Int+listDatabasesResponse_httpStatus = Lens.lens (\ListDatabasesResponse' {httpStatus} -> httpStatus) (\s@ListDatabasesResponse' {} a -> s {httpStatus = a} :: ListDatabasesResponse)++instance Prelude.NFData ListDatabasesResponse where+  rnf ListDatabasesResponse' {..} =+    Prelude.rnf databases+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/ListTagsForResource.hs view
@@ -0,0 +1,156 @@+{-# 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.SSMSAP.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all tags on an SAP HANA application and\/or database registered+-- with AWS Systems Manager for SAP.+module Amazonka.SSMSAP.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' 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:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' -+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath ListTagsForResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' 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:+--+-- 'tags', 'listTagsForResourceResponse_tags' -+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/PutResourcePermission.hs view
@@ -0,0 +1,195 @@+{-# 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.SSMSAP.PutResourcePermission+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds permissions to the target database.+module Amazonka.SSMSAP.PutResourcePermission+  ( -- * Creating a Request+    PutResourcePermission (..),+    newPutResourcePermission,++    -- * Request Lenses+    putResourcePermission_actionType,+    putResourcePermission_sourceResourceArn,+    putResourcePermission_resourceArn,++    -- * Destructuring the Response+    PutResourcePermissionResponse (..),+    newPutResourcePermissionResponse,++    -- * Response Lenses+    putResourcePermissionResponse_policy,+    putResourcePermissionResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newPutResourcePermission' smart constructor.+data PutResourcePermission = PutResourcePermission'+  { actionType :: PermissionActionType,+    sourceResourceArn :: Prelude.Text,+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutResourcePermission' 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:+--+-- 'actionType', 'putResourcePermission_actionType' -+--+-- 'sourceResourceArn', 'putResourcePermission_sourceResourceArn' -+--+-- 'resourceArn', 'putResourcePermission_resourceArn' -+newPutResourcePermission ::+  -- | 'actionType'+  PermissionActionType ->+  -- | 'sourceResourceArn'+  Prelude.Text ->+  -- | 'resourceArn'+  Prelude.Text ->+  PutResourcePermission+newPutResourcePermission+  pActionType_+  pSourceResourceArn_+  pResourceArn_ =+    PutResourcePermission'+      { actionType = pActionType_,+        sourceResourceArn = pSourceResourceArn_,+        resourceArn = pResourceArn_+      }++putResourcePermission_actionType :: Lens.Lens' PutResourcePermission PermissionActionType+putResourcePermission_actionType = Lens.lens (\PutResourcePermission' {actionType} -> actionType) (\s@PutResourcePermission' {} a -> s {actionType = a} :: PutResourcePermission)++putResourcePermission_sourceResourceArn :: Lens.Lens' PutResourcePermission Prelude.Text+putResourcePermission_sourceResourceArn = Lens.lens (\PutResourcePermission' {sourceResourceArn} -> sourceResourceArn) (\s@PutResourcePermission' {} a -> s {sourceResourceArn = a} :: PutResourcePermission)++putResourcePermission_resourceArn :: Lens.Lens' PutResourcePermission Prelude.Text+putResourcePermission_resourceArn = Lens.lens (\PutResourcePermission' {resourceArn} -> resourceArn) (\s@PutResourcePermission' {} a -> s {resourceArn = a} :: PutResourcePermission)++instance Core.AWSRequest PutResourcePermission where+  type+    AWSResponse PutResourcePermission =+      PutResourcePermissionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          PutResourcePermissionResponse'+            Prelude.<$> (x Data..?> "Policy")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutResourcePermission where+  hashWithSalt _salt PutResourcePermission' {..} =+    _salt+      `Prelude.hashWithSalt` actionType+      `Prelude.hashWithSalt` sourceResourceArn+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData PutResourcePermission where+  rnf PutResourcePermission' {..} =+    Prelude.rnf actionType+      `Prelude.seq` Prelude.rnf sourceResourceArn+      `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToHeaders PutResourcePermission where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutResourcePermission where+  toJSON PutResourcePermission' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ActionType" Data..= actionType),+            Prelude.Just+              ("SourceResourceArn" Data..= sourceResourceArn),+            Prelude.Just ("ResourceArn" Data..= resourceArn)+          ]+      )++instance Data.ToPath PutResourcePermission where+  toPath = Prelude.const "/put-resource-permission"++instance Data.ToQuery PutResourcePermission where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutResourcePermissionResponse' smart constructor.+data PutResourcePermissionResponse = PutResourcePermissionResponse'+  { policy :: 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 'PutResourcePermissionResponse' 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:+--+-- 'policy', 'putResourcePermissionResponse_policy' -+--+-- 'httpStatus', 'putResourcePermissionResponse_httpStatus' - The response's http status code.+newPutResourcePermissionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutResourcePermissionResponse+newPutResourcePermissionResponse pHttpStatus_ =+  PutResourcePermissionResponse'+    { policy =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++putResourcePermissionResponse_policy :: Lens.Lens' PutResourcePermissionResponse (Prelude.Maybe Prelude.Text)+putResourcePermissionResponse_policy = Lens.lens (\PutResourcePermissionResponse' {policy} -> policy) (\s@PutResourcePermissionResponse' {} a -> s {policy = a} :: PutResourcePermissionResponse)++-- | The response's http status code.+putResourcePermissionResponse_httpStatus :: Lens.Lens' PutResourcePermissionResponse Prelude.Int+putResourcePermissionResponse_httpStatus = Lens.lens (\PutResourcePermissionResponse' {httpStatus} -> httpStatus) (\s@PutResourcePermissionResponse' {} a -> s {httpStatus = a} :: PutResourcePermissionResponse)++instance Prelude.NFData PutResourcePermissionResponse where+  rnf PutResourcePermissionResponse' {..} =+    Prelude.rnf policy+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/RegisterApplication.hs view
@@ -0,0 +1,264 @@+{-# 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.SSMSAP.RegisterApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Register an SAP application with AWS Systems Manager for SAP. You must+-- meet the following requirements before registering.+--+-- The SAP application you want to register with AWS Systems Manager for+-- SAP is running on Amazon EC2.+--+-- AWS Systems Manager Agent must be setup on an Amazon EC2 instance along+-- with the required IAM permissions.+--+-- Amazon EC2 instance(s) must have access to the secrets created in AWS+-- Secrets Manager to manage SAP applications and components.+module Amazonka.SSMSAP.RegisterApplication+  ( -- * Creating a Request+    RegisterApplication (..),+    newRegisterApplication,++    -- * Request Lenses+    registerApplication_sapInstanceNumber,+    registerApplication_sid,+    registerApplication_tags,+    registerApplication_applicationId,+    registerApplication_applicationType,+    registerApplication_instances,+    registerApplication_credentials,++    -- * Destructuring the Response+    RegisterApplicationResponse (..),+    newRegisterApplicationResponse,++    -- * Response Lenses+    registerApplicationResponse_application,+    registerApplicationResponse_operationId,+    registerApplicationResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newRegisterApplication' smart constructor.+data RegisterApplication = RegisterApplication'+  { sapInstanceNumber :: Prelude.Maybe Prelude.Text,+    sid :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    applicationId :: Prelude.Text,+    applicationType :: ApplicationType,+    instances :: Prelude.NonEmpty Prelude.Text,+    credentials :: Prelude.NonEmpty ApplicationCredential+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RegisterApplication' 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:+--+-- 'sapInstanceNumber', 'registerApplication_sapInstanceNumber' -+--+-- 'sid', 'registerApplication_sid' -+--+-- 'tags', 'registerApplication_tags' -+--+-- 'applicationId', 'registerApplication_applicationId' -+--+-- 'applicationType', 'registerApplication_applicationType' -+--+-- 'instances', 'registerApplication_instances' -+--+-- 'credentials', 'registerApplication_credentials' -+newRegisterApplication ::+  -- | 'applicationId'+  Prelude.Text ->+  -- | 'applicationType'+  ApplicationType ->+  -- | 'instances'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'credentials'+  Prelude.NonEmpty ApplicationCredential ->+  RegisterApplication+newRegisterApplication+  pApplicationId_+  pApplicationType_+  pInstances_+  pCredentials_ =+    RegisterApplication'+      { sapInstanceNumber =+          Prelude.Nothing,+        sid = Prelude.Nothing,+        tags = Prelude.Nothing,+        applicationId = pApplicationId_,+        applicationType = pApplicationType_,+        instances = Lens.coerced Lens.# pInstances_,+        credentials = Lens.coerced Lens.# pCredentials_+      }++registerApplication_sapInstanceNumber :: Lens.Lens' RegisterApplication (Prelude.Maybe Prelude.Text)+registerApplication_sapInstanceNumber = Lens.lens (\RegisterApplication' {sapInstanceNumber} -> sapInstanceNumber) (\s@RegisterApplication' {} a -> s {sapInstanceNumber = a} :: RegisterApplication)++registerApplication_sid :: Lens.Lens' RegisterApplication (Prelude.Maybe Prelude.Text)+registerApplication_sid = Lens.lens (\RegisterApplication' {sid} -> sid) (\s@RegisterApplication' {} a -> s {sid = a} :: RegisterApplication)++registerApplication_tags :: Lens.Lens' RegisterApplication (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+registerApplication_tags = Lens.lens (\RegisterApplication' {tags} -> tags) (\s@RegisterApplication' {} a -> s {tags = a} :: RegisterApplication) Prelude.. Lens.mapping Lens.coerced++registerApplication_applicationId :: Lens.Lens' RegisterApplication Prelude.Text+registerApplication_applicationId = Lens.lens (\RegisterApplication' {applicationId} -> applicationId) (\s@RegisterApplication' {} a -> s {applicationId = a} :: RegisterApplication)++registerApplication_applicationType :: Lens.Lens' RegisterApplication ApplicationType+registerApplication_applicationType = Lens.lens (\RegisterApplication' {applicationType} -> applicationType) (\s@RegisterApplication' {} a -> s {applicationType = a} :: RegisterApplication)++registerApplication_instances :: Lens.Lens' RegisterApplication (Prelude.NonEmpty Prelude.Text)+registerApplication_instances = Lens.lens (\RegisterApplication' {instances} -> instances) (\s@RegisterApplication' {} a -> s {instances = a} :: RegisterApplication) Prelude.. Lens.coerced++registerApplication_credentials :: Lens.Lens' RegisterApplication (Prelude.NonEmpty ApplicationCredential)+registerApplication_credentials = Lens.lens (\RegisterApplication' {credentials} -> credentials) (\s@RegisterApplication' {} a -> s {credentials = a} :: RegisterApplication) Prelude.. Lens.coerced++instance Core.AWSRequest RegisterApplication where+  type+    AWSResponse RegisterApplication =+      RegisterApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          RegisterApplicationResponse'+            Prelude.<$> (x Data..?> "Application")+            Prelude.<*> (x Data..?> "OperationId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RegisterApplication where+  hashWithSalt _salt RegisterApplication' {..} =+    _salt+      `Prelude.hashWithSalt` sapInstanceNumber+      `Prelude.hashWithSalt` sid+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` applicationType+      `Prelude.hashWithSalt` instances+      `Prelude.hashWithSalt` credentials++instance Prelude.NFData RegisterApplication where+  rnf RegisterApplication' {..} =+    Prelude.rnf sapInstanceNumber+      `Prelude.seq` Prelude.rnf sid+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf applicationType+      `Prelude.seq` Prelude.rnf instances+      `Prelude.seq` Prelude.rnf credentials++instance Data.ToHeaders RegisterApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON RegisterApplication where+  toJSON RegisterApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("SapInstanceNumber" Data..=)+              Prelude.<$> sapInstanceNumber,+            ("Sid" Data..=) Prelude.<$> sid,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("ApplicationId" Data..= applicationId),+            Prelude.Just+              ("ApplicationType" Data..= applicationType),+            Prelude.Just ("Instances" Data..= instances),+            Prelude.Just ("Credentials" Data..= credentials)+          ]+      )++instance Data.ToPath RegisterApplication where+  toPath = Prelude.const "/register-application"++instance Data.ToQuery RegisterApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRegisterApplicationResponse' smart constructor.+data RegisterApplicationResponse = RegisterApplicationResponse'+  { application :: Prelude.Maybe Application,+    operationId :: 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 'RegisterApplicationResponse' 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:+--+-- 'application', 'registerApplicationResponse_application' -+--+-- 'operationId', 'registerApplicationResponse_operationId' -+--+-- 'httpStatus', 'registerApplicationResponse_httpStatus' - The response's http status code.+newRegisterApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RegisterApplicationResponse+newRegisterApplicationResponse pHttpStatus_ =+  RegisterApplicationResponse'+    { application =+        Prelude.Nothing,+      operationId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++registerApplicationResponse_application :: Lens.Lens' RegisterApplicationResponse (Prelude.Maybe Application)+registerApplicationResponse_application = Lens.lens (\RegisterApplicationResponse' {application} -> application) (\s@RegisterApplicationResponse' {} a -> s {application = a} :: RegisterApplicationResponse)++registerApplicationResponse_operationId :: Lens.Lens' RegisterApplicationResponse (Prelude.Maybe Prelude.Text)+registerApplicationResponse_operationId = Lens.lens (\RegisterApplicationResponse' {operationId} -> operationId) (\s@RegisterApplicationResponse' {} a -> s {operationId = a} :: RegisterApplicationResponse)++-- | The response's http status code.+registerApplicationResponse_httpStatus :: Lens.Lens' RegisterApplicationResponse Prelude.Int+registerApplicationResponse_httpStatus = Lens.lens (\RegisterApplicationResponse' {httpStatus} -> httpStatus) (\s@RegisterApplicationResponse' {} a -> s {httpStatus = a} :: RegisterApplicationResponse)++instance Prelude.NFData RegisterApplicationResponse where+  rnf RegisterApplicationResponse' {..} =+    Prelude.rnf application+      `Prelude.seq` Prelude.rnf operationId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/TagResource.hs view
@@ -0,0 +1,159 @@+{-# 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.SSMSAP.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates tag for a resource by specifying the ARN.+module Amazonka.SSMSAP.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { resourceArn :: Prelude.Text,+    tags :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' 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:+--+-- 'resourceArn', 'tagResource_resourceArn' -+--+-- 'tags', 'tagResource_tags' -+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("tags" Data..= tags)]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' 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', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/Types.hs view
@@ -0,0 +1,273 @@+{-# 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.SSMSAP.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.SSMSAP.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ValidationException,++    -- * ApplicationStatus+    ApplicationStatus (..),++    -- * ApplicationType+    ApplicationType (..),++    -- * ComponentStatus+    ComponentStatus (..),++    -- * ComponentType+    ComponentType (..),++    -- * CredentialType+    CredentialType (..),++    -- * DatabaseStatus+    DatabaseStatus (..),++    -- * DatabaseType+    DatabaseType (..),++    -- * HostRole+    HostRole (..),++    -- * OperationStatus+    OperationStatus (..),++    -- * PermissionActionType+    PermissionActionType (..),++    -- * Application+    Application (..),+    newApplication,+    application_appRegistryArn,+    application_arn,+    application_components,+    application_id,+    application_lastUpdated,+    application_status,+    application_statusMessage,+    application_type,++    -- * ApplicationCredential+    ApplicationCredential (..),+    newApplicationCredential,+    applicationCredential_databaseName,+    applicationCredential_credentialType,+    applicationCredential_secretId,++    -- * ApplicationSummary+    ApplicationSummary (..),+    newApplicationSummary,+    applicationSummary_arn,+    applicationSummary_id,+    applicationSummary_tags,+    applicationSummary_type,++    -- * Component+    Component (..),+    newComponent,+    component_applicationId,+    component_componentId,+    component_componentType,+    component_databases,+    component_hosts,+    component_lastUpdated,+    component_primaryHost,+    component_status,++    -- * ComponentSummary+    ComponentSummary (..),+    newComponentSummary,+    componentSummary_applicationId,+    componentSummary_componentId,+    componentSummary_componentType,+    componentSummary_tags,++    -- * Database+    Database (..),+    newDatabase,+    database_applicationId,+    database_arn,+    database_componentId,+    database_credentials,+    database_databaseId,+    database_databaseName,+    database_databaseType,+    database_lastUpdated,+    database_primaryHost,+    database_sQLPort,+    database_status,++    -- * DatabaseSummary+    DatabaseSummary (..),+    newDatabaseSummary,+    databaseSummary_applicationId,+    databaseSummary_arn,+    databaseSummary_componentId,+    databaseSummary_databaseId,+    databaseSummary_databaseType,+    databaseSummary_tags,++    -- * Host+    Host (..),+    newHost,+    host_hostIp,+    host_hostName,+    host_hostRole,+    host_instanceId,++    -- * Operation+    Operation (..),+    newOperation,+    operation_endTime,+    operation_id,+    operation_lastUpdatedTime,+    operation_properties,+    operation_resourceArn,+    operation_resourceId,+    operation_resourceType,+    operation_startTime,+    operation_status,+    operation_statusMessage,+    operation_type,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Prelude as Prelude+import Amazonka.SSMSAP.Types.Application+import Amazonka.SSMSAP.Types.ApplicationCredential+import Amazonka.SSMSAP.Types.ApplicationStatus+import Amazonka.SSMSAP.Types.ApplicationSummary+import Amazonka.SSMSAP.Types.ApplicationType+import Amazonka.SSMSAP.Types.Component+import Amazonka.SSMSAP.Types.ComponentStatus+import Amazonka.SSMSAP.Types.ComponentSummary+import Amazonka.SSMSAP.Types.ComponentType+import Amazonka.SSMSAP.Types.CredentialType+import Amazonka.SSMSAP.Types.Database+import Amazonka.SSMSAP.Types.DatabaseStatus+import Amazonka.SSMSAP.Types.DatabaseSummary+import Amazonka.SSMSAP.Types.DatabaseType+import Amazonka.SSMSAP.Types.Host+import Amazonka.SSMSAP.Types.HostRole+import Amazonka.SSMSAP.Types.Operation+import Amazonka.SSMSAP.Types.OperationStatus+import Amazonka.SSMSAP.Types.PermissionActionType+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2018-05-10@ of the Amazon Systems Manager for SAP SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "SSMSAP",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "ssm-sap",+      Core.signingName = "ssm-sap",+      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 "SSMSAP",+      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++_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/SSMSAP/Types/Application.hs view
@@ -0,0 +1,142 @@+{-# 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.SSMSAP.Types.Application+-- 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.SSMSAP.Types.Application 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+import Amazonka.SSMSAP.Types.ApplicationStatus+import Amazonka.SSMSAP.Types.ApplicationType++-- |+--+-- /See:/ 'newApplication' smart constructor.+data Application = Application'+  { appRegistryArn :: Prelude.Maybe Prelude.Text,+    arn :: Prelude.Maybe Prelude.Text,+    components :: Prelude.Maybe [Prelude.Text],+    id :: Prelude.Maybe Prelude.Text,+    lastUpdated :: Prelude.Maybe Data.POSIX,+    status :: Prelude.Maybe ApplicationStatus,+    statusMessage :: Prelude.Maybe Prelude.Text,+    type' :: Prelude.Maybe ApplicationType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Application' 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:+--+-- 'appRegistryArn', 'application_appRegistryArn' -+--+-- 'arn', 'application_arn' -+--+-- 'components', 'application_components' -+--+-- 'id', 'application_id' -+--+-- 'lastUpdated', 'application_lastUpdated' -+--+-- 'status', 'application_status' -+--+-- 'statusMessage', 'application_statusMessage' -+--+-- 'type'', 'application_type' -+newApplication ::+  Application+newApplication =+  Application'+    { appRegistryArn = Prelude.Nothing,+      arn = Prelude.Nothing,+      components = Prelude.Nothing,+      id = Prelude.Nothing,+      lastUpdated = Prelude.Nothing,+      status = Prelude.Nothing,+      statusMessage = Prelude.Nothing,+      type' = Prelude.Nothing+    }++application_appRegistryArn :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_appRegistryArn = Lens.lens (\Application' {appRegistryArn} -> appRegistryArn) (\s@Application' {} a -> s {appRegistryArn = a} :: Application)++application_arn :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_arn = Lens.lens (\Application' {arn} -> arn) (\s@Application' {} a -> s {arn = a} :: Application)++application_components :: Lens.Lens' Application (Prelude.Maybe [Prelude.Text])+application_components = Lens.lens (\Application' {components} -> components) (\s@Application' {} a -> s {components = a} :: Application) Prelude.. Lens.mapping Lens.coerced++application_id :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_id = Lens.lens (\Application' {id} -> id) (\s@Application' {} a -> s {id = a} :: Application)++application_lastUpdated :: Lens.Lens' Application (Prelude.Maybe Prelude.UTCTime)+application_lastUpdated = Lens.lens (\Application' {lastUpdated} -> lastUpdated) (\s@Application' {} a -> s {lastUpdated = a} :: Application) Prelude.. Lens.mapping Data._Time++application_status :: Lens.Lens' Application (Prelude.Maybe ApplicationStatus)+application_status = Lens.lens (\Application' {status} -> status) (\s@Application' {} a -> s {status = a} :: Application)++application_statusMessage :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_statusMessage = Lens.lens (\Application' {statusMessage} -> statusMessage) (\s@Application' {} a -> s {statusMessage = a} :: Application)++application_type :: Lens.Lens' Application (Prelude.Maybe ApplicationType)+application_type = Lens.lens (\Application' {type'} -> type') (\s@Application' {} a -> s {type' = a} :: Application)++instance Data.FromJSON Application where+  parseJSON =+    Data.withObject+      "Application"+      ( \x ->+          Application'+            Prelude.<$> (x Data..:? "AppRegistryArn")+            Prelude.<*> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "Components" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "LastUpdated")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "StatusMessage")+            Prelude.<*> (x Data..:? "Type")+      )++instance Prelude.Hashable Application where+  hashWithSalt _salt Application' {..} =+    _salt+      `Prelude.hashWithSalt` appRegistryArn+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` components+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` lastUpdated+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` statusMessage+      `Prelude.hashWithSalt` type'++instance Prelude.NFData Application where+  rnf Application' {..} =+    Prelude.rnf appRegistryArn+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf components+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf lastUpdated+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf statusMessage+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/SSMSAP/Types/ApplicationCredential.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.SSMSAP.Types.ApplicationCredential+-- 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.SSMSAP.Types.ApplicationCredential 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+import Amazonka.SSMSAP.Types.CredentialType++-- |+--+-- /See:/ 'newApplicationCredential' smart constructor.+data ApplicationCredential = ApplicationCredential'+  { databaseName :: Prelude.Text,+    credentialType :: CredentialType,+    secretId :: Data.Sensitive Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ApplicationCredential' 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:+--+-- 'databaseName', 'applicationCredential_databaseName' -+--+-- 'credentialType', 'applicationCredential_credentialType' -+--+-- 'secretId', 'applicationCredential_secretId' -+newApplicationCredential ::+  -- | 'databaseName'+  Prelude.Text ->+  -- | 'credentialType'+  CredentialType ->+  -- | 'secretId'+  Prelude.Text ->+  ApplicationCredential+newApplicationCredential+  pDatabaseName_+  pCredentialType_+  pSecretId_ =+    ApplicationCredential'+      { databaseName =+          pDatabaseName_,+        credentialType = pCredentialType_,+        secretId = Data._Sensitive Lens.# pSecretId_+      }++applicationCredential_databaseName :: Lens.Lens' ApplicationCredential Prelude.Text+applicationCredential_databaseName = Lens.lens (\ApplicationCredential' {databaseName} -> databaseName) (\s@ApplicationCredential' {} a -> s {databaseName = a} :: ApplicationCredential)++applicationCredential_credentialType :: Lens.Lens' ApplicationCredential CredentialType+applicationCredential_credentialType = Lens.lens (\ApplicationCredential' {credentialType} -> credentialType) (\s@ApplicationCredential' {} a -> s {credentialType = a} :: ApplicationCredential)++applicationCredential_secretId :: Lens.Lens' ApplicationCredential Prelude.Text+applicationCredential_secretId = Lens.lens (\ApplicationCredential' {secretId} -> secretId) (\s@ApplicationCredential' {} a -> s {secretId = a} :: ApplicationCredential) Prelude.. Data._Sensitive++instance Data.FromJSON ApplicationCredential where+  parseJSON =+    Data.withObject+      "ApplicationCredential"+      ( \x ->+          ApplicationCredential'+            Prelude.<$> (x Data..: "DatabaseName")+            Prelude.<*> (x Data..: "CredentialType")+            Prelude.<*> (x Data..: "SecretId")+      )++instance Prelude.Hashable ApplicationCredential where+  hashWithSalt _salt ApplicationCredential' {..} =+    _salt+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` credentialType+      `Prelude.hashWithSalt` secretId++instance Prelude.NFData ApplicationCredential where+  rnf ApplicationCredential' {..} =+    Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf credentialType+      `Prelude.seq` Prelude.rnf secretId++instance Data.ToJSON ApplicationCredential where+  toJSON ApplicationCredential' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("DatabaseName" Data..= databaseName),+            Prelude.Just+              ("CredentialType" Data..= credentialType),+            Prelude.Just ("SecretId" Data..= secretId)+          ]+      )
+ gen/Amazonka/SSMSAP/Types/ApplicationStatus.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.SSMSAP.Types.ApplicationStatus+-- 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.SSMSAP.Types.ApplicationStatus+  ( ApplicationStatus+      ( ..,+        ApplicationStatus_ACTIVATED,+        ApplicationStatus_DELETING,+        ApplicationStatus_FAILED,+        ApplicationStatus_REGISTERING,+        ApplicationStatus_STARTING,+        ApplicationStatus_STOPPED,+        ApplicationStatus_STOPPING,+        ApplicationStatus_UNKNOWN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ApplicationStatus = ApplicationStatus'+  { fromApplicationStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ApplicationStatus_ACTIVATED :: ApplicationStatus+pattern ApplicationStatus_ACTIVATED = ApplicationStatus' "ACTIVATED"++pattern ApplicationStatus_DELETING :: ApplicationStatus+pattern ApplicationStatus_DELETING = ApplicationStatus' "DELETING"++pattern ApplicationStatus_FAILED :: ApplicationStatus+pattern ApplicationStatus_FAILED = ApplicationStatus' "FAILED"++pattern ApplicationStatus_REGISTERING :: ApplicationStatus+pattern ApplicationStatus_REGISTERING = ApplicationStatus' "REGISTERING"++pattern ApplicationStatus_STARTING :: ApplicationStatus+pattern ApplicationStatus_STARTING = ApplicationStatus' "STARTING"++pattern ApplicationStatus_STOPPED :: ApplicationStatus+pattern ApplicationStatus_STOPPED = ApplicationStatus' "STOPPED"++pattern ApplicationStatus_STOPPING :: ApplicationStatus+pattern ApplicationStatus_STOPPING = ApplicationStatus' "STOPPING"++pattern ApplicationStatus_UNKNOWN :: ApplicationStatus+pattern ApplicationStatus_UNKNOWN = ApplicationStatus' "UNKNOWN"++{-# COMPLETE+  ApplicationStatus_ACTIVATED,+  ApplicationStatus_DELETING,+  ApplicationStatus_FAILED,+  ApplicationStatus_REGISTERING,+  ApplicationStatus_STARTING,+  ApplicationStatus_STOPPED,+  ApplicationStatus_STOPPING,+  ApplicationStatus_UNKNOWN,+  ApplicationStatus'+  #-}
+ gen/Amazonka/SSMSAP/Types/ApplicationSummary.hs view
@@ -0,0 +1,101 @@+{-# 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.SSMSAP.Types.ApplicationSummary+-- 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.SSMSAP.Types.ApplicationSummary 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+import Amazonka.SSMSAP.Types.ApplicationType++-- |+--+-- /See:/ 'newApplicationSummary' smart constructor.+data ApplicationSummary = ApplicationSummary'+  { arn :: Prelude.Maybe Prelude.Text,+    id :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    type' :: Prelude.Maybe ApplicationType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ApplicationSummary' 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:+--+-- 'arn', 'applicationSummary_arn' -+--+-- 'id', 'applicationSummary_id' -+--+-- 'tags', 'applicationSummary_tags' -+--+-- 'type'', 'applicationSummary_type' -+newApplicationSummary ::+  ApplicationSummary+newApplicationSummary =+  ApplicationSummary'+    { arn = Prelude.Nothing,+      id = Prelude.Nothing,+      tags = Prelude.Nothing,+      type' = Prelude.Nothing+    }++applicationSummary_arn :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.Text)+applicationSummary_arn = Lens.lens (\ApplicationSummary' {arn} -> arn) (\s@ApplicationSummary' {} a -> s {arn = a} :: ApplicationSummary)++applicationSummary_id :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.Text)+applicationSummary_id = Lens.lens (\ApplicationSummary' {id} -> id) (\s@ApplicationSummary' {} a -> s {id = a} :: ApplicationSummary)++applicationSummary_tags :: Lens.Lens' ApplicationSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+applicationSummary_tags = Lens.lens (\ApplicationSummary' {tags} -> tags) (\s@ApplicationSummary' {} a -> s {tags = a} :: ApplicationSummary) Prelude.. Lens.mapping Lens.coerced++applicationSummary_type :: Lens.Lens' ApplicationSummary (Prelude.Maybe ApplicationType)+applicationSummary_type = Lens.lens (\ApplicationSummary' {type'} -> type') (\s@ApplicationSummary' {} a -> s {type' = a} :: ApplicationSummary)++instance Data.FromJSON ApplicationSummary where+  parseJSON =+    Data.withObject+      "ApplicationSummary"+      ( \x ->+          ApplicationSummary'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Type")+      )++instance Prelude.Hashable ApplicationSummary where+  hashWithSalt _salt ApplicationSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` type'++instance Prelude.NFData ApplicationSummary where+  rnf ApplicationSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/SSMSAP/Types/ApplicationType.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.SSMSAP.Types.ApplicationType+-- 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.SSMSAP.Types.ApplicationType+  ( ApplicationType+      ( ..,+        ApplicationType_HANA+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ApplicationType = ApplicationType'+  { fromApplicationType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ApplicationType_HANA :: ApplicationType+pattern ApplicationType_HANA = ApplicationType' "HANA"++{-# COMPLETE+  ApplicationType_HANA,+  ApplicationType'+  #-}
+ gen/Amazonka/SSMSAP/Types/Component.hs view
@@ -0,0 +1,143 @@+{-# 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.SSMSAP.Types.Component+-- 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.SSMSAP.Types.Component 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+import Amazonka.SSMSAP.Types.ComponentStatus+import Amazonka.SSMSAP.Types.ComponentType+import Amazonka.SSMSAP.Types.Host++-- |+--+-- /See:/ 'newComponent' smart constructor.+data Component = Component'+  { applicationId :: Prelude.Maybe Prelude.Text,+    componentId :: Prelude.Maybe Prelude.Text,+    componentType :: Prelude.Maybe ComponentType,+    databases :: Prelude.Maybe [Prelude.Text],+    hosts :: Prelude.Maybe [Host],+    lastUpdated :: Prelude.Maybe Data.POSIX,+    primaryHost :: Prelude.Maybe Prelude.Text,+    status :: Prelude.Maybe ComponentStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Component' 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:+--+-- 'applicationId', 'component_applicationId' -+--+-- 'componentId', 'component_componentId' -+--+-- 'componentType', 'component_componentType' -+--+-- 'databases', 'component_databases' -+--+-- 'hosts', 'component_hosts' -+--+-- 'lastUpdated', 'component_lastUpdated' -+--+-- 'primaryHost', 'component_primaryHost' -+--+-- 'status', 'component_status' -+newComponent ::+  Component+newComponent =+  Component'+    { applicationId = Prelude.Nothing,+      componentId = Prelude.Nothing,+      componentType = Prelude.Nothing,+      databases = Prelude.Nothing,+      hosts = Prelude.Nothing,+      lastUpdated = Prelude.Nothing,+      primaryHost = Prelude.Nothing,+      status = Prelude.Nothing+    }++component_applicationId :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_applicationId = Lens.lens (\Component' {applicationId} -> applicationId) (\s@Component' {} a -> s {applicationId = a} :: Component)++component_componentId :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_componentId = Lens.lens (\Component' {componentId} -> componentId) (\s@Component' {} a -> s {componentId = a} :: Component)++component_componentType :: Lens.Lens' Component (Prelude.Maybe ComponentType)+component_componentType = Lens.lens (\Component' {componentType} -> componentType) (\s@Component' {} a -> s {componentType = a} :: Component)++component_databases :: Lens.Lens' Component (Prelude.Maybe [Prelude.Text])+component_databases = Lens.lens (\Component' {databases} -> databases) (\s@Component' {} a -> s {databases = a} :: Component) Prelude.. Lens.mapping Lens.coerced++component_hosts :: Lens.Lens' Component (Prelude.Maybe [Host])+component_hosts = Lens.lens (\Component' {hosts} -> hosts) (\s@Component' {} a -> s {hosts = a} :: Component) Prelude.. Lens.mapping Lens.coerced++component_lastUpdated :: Lens.Lens' Component (Prelude.Maybe Prelude.UTCTime)+component_lastUpdated = Lens.lens (\Component' {lastUpdated} -> lastUpdated) (\s@Component' {} a -> s {lastUpdated = a} :: Component) Prelude.. Lens.mapping Data._Time++component_primaryHost :: Lens.Lens' Component (Prelude.Maybe Prelude.Text)+component_primaryHost = Lens.lens (\Component' {primaryHost} -> primaryHost) (\s@Component' {} a -> s {primaryHost = a} :: Component)++component_status :: Lens.Lens' Component (Prelude.Maybe ComponentStatus)+component_status = Lens.lens (\Component' {status} -> status) (\s@Component' {} a -> s {status = a} :: Component)++instance Data.FromJSON Component where+  parseJSON =+    Data.withObject+      "Component"+      ( \x ->+          Component'+            Prelude.<$> (x Data..:? "ApplicationId")+            Prelude.<*> (x Data..:? "ComponentId")+            Prelude.<*> (x Data..:? "ComponentType")+            Prelude.<*> (x Data..:? "Databases" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Hosts" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "LastUpdated")+            Prelude.<*> (x Data..:? "PrimaryHost")+            Prelude.<*> (x Data..:? "Status")+      )++instance Prelude.Hashable Component where+  hashWithSalt _salt Component' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` componentId+      `Prelude.hashWithSalt` componentType+      `Prelude.hashWithSalt` databases+      `Prelude.hashWithSalt` hosts+      `Prelude.hashWithSalt` lastUpdated+      `Prelude.hashWithSalt` primaryHost+      `Prelude.hashWithSalt` status++instance Prelude.NFData Component where+  rnf Component' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf componentId+      `Prelude.seq` Prelude.rnf componentType+      `Prelude.seq` Prelude.rnf databases+      `Prelude.seq` Prelude.rnf hosts+      `Prelude.seq` Prelude.rnf lastUpdated+      `Prelude.seq` Prelude.rnf primaryHost+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/SSMSAP/Types/ComponentStatus.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.SSMSAP.Types.ComponentStatus+-- 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.SSMSAP.Types.ComponentStatus+  ( ComponentStatus+      ( ..,+        ComponentStatus_ACTIVATED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ComponentStatus = ComponentStatus'+  { fromComponentStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ComponentStatus_ACTIVATED :: ComponentStatus+pattern ComponentStatus_ACTIVATED = ComponentStatus' "ACTIVATED"++{-# COMPLETE+  ComponentStatus_ACTIVATED,+  ComponentStatus'+  #-}
+ gen/Amazonka/SSMSAP/Types/ComponentSummary.hs view
@@ -0,0 +1,101 @@+{-# 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.SSMSAP.Types.ComponentSummary+-- 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.SSMSAP.Types.ComponentSummary 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+import Amazonka.SSMSAP.Types.ComponentType++-- |+--+-- /See:/ 'newComponentSummary' smart constructor.+data ComponentSummary = ComponentSummary'+  { applicationId :: Prelude.Maybe Prelude.Text,+    componentId :: Prelude.Maybe Prelude.Text,+    componentType :: Prelude.Maybe ComponentType,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentSummary' 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:+--+-- 'applicationId', 'componentSummary_applicationId' -+--+-- 'componentId', 'componentSummary_componentId' -+--+-- 'componentType', 'componentSummary_componentType' -+--+-- 'tags', 'componentSummary_tags' -+newComponentSummary ::+  ComponentSummary+newComponentSummary =+  ComponentSummary'+    { applicationId = Prelude.Nothing,+      componentId = Prelude.Nothing,+      componentType = Prelude.Nothing,+      tags = Prelude.Nothing+    }++componentSummary_applicationId :: Lens.Lens' ComponentSummary (Prelude.Maybe Prelude.Text)+componentSummary_applicationId = Lens.lens (\ComponentSummary' {applicationId} -> applicationId) (\s@ComponentSummary' {} a -> s {applicationId = a} :: ComponentSummary)++componentSummary_componentId :: Lens.Lens' ComponentSummary (Prelude.Maybe Prelude.Text)+componentSummary_componentId = Lens.lens (\ComponentSummary' {componentId} -> componentId) (\s@ComponentSummary' {} a -> s {componentId = a} :: ComponentSummary)++componentSummary_componentType :: Lens.Lens' ComponentSummary (Prelude.Maybe ComponentType)+componentSummary_componentType = Lens.lens (\ComponentSummary' {componentType} -> componentType) (\s@ComponentSummary' {} a -> s {componentType = a} :: ComponentSummary)++componentSummary_tags :: Lens.Lens' ComponentSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+componentSummary_tags = Lens.lens (\ComponentSummary' {tags} -> tags) (\s@ComponentSummary' {} a -> s {tags = a} :: ComponentSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ComponentSummary where+  parseJSON =+    Data.withObject+      "ComponentSummary"+      ( \x ->+          ComponentSummary'+            Prelude.<$> (x Data..:? "ApplicationId")+            Prelude.<*> (x Data..:? "ComponentId")+            Prelude.<*> (x Data..:? "ComponentType")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable ComponentSummary where+  hashWithSalt _salt ComponentSummary' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` componentId+      `Prelude.hashWithSalt` componentType+      `Prelude.hashWithSalt` tags++instance Prelude.NFData ComponentSummary where+  rnf ComponentSummary' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf componentId+      `Prelude.seq` Prelude.rnf componentType+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/SSMSAP/Types/ComponentType.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.SSMSAP.Types.ComponentType+-- 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.SSMSAP.Types.ComponentType+  ( ComponentType+      ( ..,+        ComponentType_HANA+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ComponentType = ComponentType'+  { fromComponentType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ComponentType_HANA :: ComponentType+pattern ComponentType_HANA = ComponentType' "HANA"++{-# COMPLETE+  ComponentType_HANA,+  ComponentType'+  #-}
+ gen/Amazonka/SSMSAP/Types/CredentialType.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.SSMSAP.Types.CredentialType+-- 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.SSMSAP.Types.CredentialType+  ( CredentialType+      ( ..,+        CredentialType_ADMIN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CredentialType = CredentialType'+  { fromCredentialType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CredentialType_ADMIN :: CredentialType+pattern CredentialType_ADMIN = CredentialType' "ADMIN"++{-# COMPLETE+  CredentialType_ADMIN,+  CredentialType'+  #-}
+ gen/Amazonka/SSMSAP/Types/Database.hs view
@@ -0,0 +1,173 @@+{-# 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.SSMSAP.Types.Database+-- 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.SSMSAP.Types.Database 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+import Amazonka.SSMSAP.Types.ApplicationCredential+import Amazonka.SSMSAP.Types.DatabaseStatus+import Amazonka.SSMSAP.Types.DatabaseType++-- |+--+-- /See:/ 'newDatabase' smart constructor.+data Database = Database'+  { applicationId :: Prelude.Maybe Prelude.Text,+    arn :: Prelude.Maybe Prelude.Text,+    componentId :: Prelude.Maybe Prelude.Text,+    credentials :: Prelude.Maybe (Prelude.NonEmpty ApplicationCredential),+    databaseId :: Prelude.Maybe Prelude.Text,+    databaseName :: Prelude.Maybe Prelude.Text,+    databaseType :: Prelude.Maybe DatabaseType,+    lastUpdated :: Prelude.Maybe Data.POSIX,+    primaryHost :: Prelude.Maybe Prelude.Text,+    sQLPort :: Prelude.Maybe Prelude.Int,+    status :: Prelude.Maybe DatabaseStatus+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Database' 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:+--+-- 'applicationId', 'database_applicationId' -+--+-- 'arn', 'database_arn' -+--+-- 'componentId', 'database_componentId' -+--+-- 'credentials', 'database_credentials' -+--+-- 'databaseId', 'database_databaseId' -+--+-- 'databaseName', 'database_databaseName' -+--+-- 'databaseType', 'database_databaseType' -+--+-- 'lastUpdated', 'database_lastUpdated' -+--+-- 'primaryHost', 'database_primaryHost' -+--+-- 'sQLPort', 'database_sQLPort' -+--+-- 'status', 'database_status' -+newDatabase ::+  Database+newDatabase =+  Database'+    { applicationId = Prelude.Nothing,+      arn = Prelude.Nothing,+      componentId = Prelude.Nothing,+      credentials = Prelude.Nothing,+      databaseId = Prelude.Nothing,+      databaseName = Prelude.Nothing,+      databaseType = Prelude.Nothing,+      lastUpdated = Prelude.Nothing,+      primaryHost = Prelude.Nothing,+      sQLPort = Prelude.Nothing,+      status = Prelude.Nothing+    }++database_applicationId :: Lens.Lens' Database (Prelude.Maybe Prelude.Text)+database_applicationId = Lens.lens (\Database' {applicationId} -> applicationId) (\s@Database' {} a -> s {applicationId = a} :: Database)++database_arn :: Lens.Lens' Database (Prelude.Maybe Prelude.Text)+database_arn = Lens.lens (\Database' {arn} -> arn) (\s@Database' {} a -> s {arn = a} :: Database)++database_componentId :: Lens.Lens' Database (Prelude.Maybe Prelude.Text)+database_componentId = Lens.lens (\Database' {componentId} -> componentId) (\s@Database' {} a -> s {componentId = a} :: Database)++database_credentials :: Lens.Lens' Database (Prelude.Maybe (Prelude.NonEmpty ApplicationCredential))+database_credentials = Lens.lens (\Database' {credentials} -> credentials) (\s@Database' {} a -> s {credentials = a} :: Database) Prelude.. Lens.mapping Lens.coerced++database_databaseId :: Lens.Lens' Database (Prelude.Maybe Prelude.Text)+database_databaseId = Lens.lens (\Database' {databaseId} -> databaseId) (\s@Database' {} a -> s {databaseId = a} :: Database)++database_databaseName :: Lens.Lens' Database (Prelude.Maybe Prelude.Text)+database_databaseName = Lens.lens (\Database' {databaseName} -> databaseName) (\s@Database' {} a -> s {databaseName = a} :: Database)++database_databaseType :: Lens.Lens' Database (Prelude.Maybe DatabaseType)+database_databaseType = Lens.lens (\Database' {databaseType} -> databaseType) (\s@Database' {} a -> s {databaseType = a} :: Database)++database_lastUpdated :: Lens.Lens' Database (Prelude.Maybe Prelude.UTCTime)+database_lastUpdated = Lens.lens (\Database' {lastUpdated} -> lastUpdated) (\s@Database' {} a -> s {lastUpdated = a} :: Database) Prelude.. Lens.mapping Data._Time++database_primaryHost :: Lens.Lens' Database (Prelude.Maybe Prelude.Text)+database_primaryHost = Lens.lens (\Database' {primaryHost} -> primaryHost) (\s@Database' {} a -> s {primaryHost = a} :: Database)++database_sQLPort :: Lens.Lens' Database (Prelude.Maybe Prelude.Int)+database_sQLPort = Lens.lens (\Database' {sQLPort} -> sQLPort) (\s@Database' {} a -> s {sQLPort = a} :: Database)++database_status :: Lens.Lens' Database (Prelude.Maybe DatabaseStatus)+database_status = Lens.lens (\Database' {status} -> status) (\s@Database' {} a -> s {status = a} :: Database)++instance Data.FromJSON Database where+  parseJSON =+    Data.withObject+      "Database"+      ( \x ->+          Database'+            Prelude.<$> (x Data..:? "ApplicationId")+            Prelude.<*> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "ComponentId")+            Prelude.<*> (x Data..:? "Credentials")+            Prelude.<*> (x Data..:? "DatabaseId")+            Prelude.<*> (x Data..:? "DatabaseName")+            Prelude.<*> (x Data..:? "DatabaseType")+            Prelude.<*> (x Data..:? "LastUpdated")+            Prelude.<*> (x Data..:? "PrimaryHost")+            Prelude.<*> (x Data..:? "SQLPort")+            Prelude.<*> (x Data..:? "Status")+      )++instance Prelude.Hashable Database where+  hashWithSalt _salt Database' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` componentId+      `Prelude.hashWithSalt` credentials+      `Prelude.hashWithSalt` databaseId+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` databaseType+      `Prelude.hashWithSalt` lastUpdated+      `Prelude.hashWithSalt` primaryHost+      `Prelude.hashWithSalt` sQLPort+      `Prelude.hashWithSalt` status++instance Prelude.NFData Database where+  rnf Database' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf componentId+      `Prelude.seq` Prelude.rnf credentials+      `Prelude.seq` Prelude.rnf databaseId+      `Prelude.seq` Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf databaseType+      `Prelude.seq` Prelude.rnf lastUpdated+      `Prelude.seq` Prelude.rnf primaryHost+      `Prelude.seq` Prelude.rnf sQLPort+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/SSMSAP/Types/DatabaseStatus.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.SSMSAP.Types.DatabaseStatus+-- 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.SSMSAP.Types.DatabaseStatus+  ( DatabaseStatus+      ( ..,+        DatabaseStatus_RUNNING,+        DatabaseStatus_STARTING,+        DatabaseStatus_STOPPED,+        DatabaseStatus_UNKNOWN,+        DatabaseStatus_WARNING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DatabaseStatus = DatabaseStatus'+  { fromDatabaseStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern DatabaseStatus_RUNNING :: DatabaseStatus+pattern DatabaseStatus_RUNNING = DatabaseStatus' "RUNNING"++pattern DatabaseStatus_STARTING :: DatabaseStatus+pattern DatabaseStatus_STARTING = DatabaseStatus' "STARTING"++pattern DatabaseStatus_STOPPED :: DatabaseStatus+pattern DatabaseStatus_STOPPED = DatabaseStatus' "STOPPED"++pattern DatabaseStatus_UNKNOWN :: DatabaseStatus+pattern DatabaseStatus_UNKNOWN = DatabaseStatus' "UNKNOWN"++pattern DatabaseStatus_WARNING :: DatabaseStatus+pattern DatabaseStatus_WARNING = DatabaseStatus' "WARNING"++{-# COMPLETE+  DatabaseStatus_RUNNING,+  DatabaseStatus_STARTING,+  DatabaseStatus_STOPPED,+  DatabaseStatus_UNKNOWN,+  DatabaseStatus_WARNING,+  DatabaseStatus'+  #-}
+ gen/Amazonka/SSMSAP/Types/DatabaseSummary.hs view
@@ -0,0 +1,121 @@+{-# 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.SSMSAP.Types.DatabaseSummary+-- 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.SSMSAP.Types.DatabaseSummary 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+import Amazonka.SSMSAP.Types.DatabaseType++-- |+--+-- /See:/ 'newDatabaseSummary' smart constructor.+data DatabaseSummary = DatabaseSummary'+  { applicationId :: Prelude.Maybe Prelude.Text,+    arn :: Prelude.Maybe Prelude.Text,+    componentId :: Prelude.Maybe Prelude.Text,+    databaseId :: Prelude.Maybe Prelude.Text,+    databaseType :: Prelude.Maybe DatabaseType,+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatabaseSummary' 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:+--+-- 'applicationId', 'databaseSummary_applicationId' -+--+-- 'arn', 'databaseSummary_arn' -+--+-- 'componentId', 'databaseSummary_componentId' -+--+-- 'databaseId', 'databaseSummary_databaseId' -+--+-- 'databaseType', 'databaseSummary_databaseType' -+--+-- 'tags', 'databaseSummary_tags' -+newDatabaseSummary ::+  DatabaseSummary+newDatabaseSummary =+  DatabaseSummary'+    { applicationId = Prelude.Nothing,+      arn = Prelude.Nothing,+      componentId = Prelude.Nothing,+      databaseId = Prelude.Nothing,+      databaseType = Prelude.Nothing,+      tags = Prelude.Nothing+    }++databaseSummary_applicationId :: Lens.Lens' DatabaseSummary (Prelude.Maybe Prelude.Text)+databaseSummary_applicationId = Lens.lens (\DatabaseSummary' {applicationId} -> applicationId) (\s@DatabaseSummary' {} a -> s {applicationId = a} :: DatabaseSummary)++databaseSummary_arn :: Lens.Lens' DatabaseSummary (Prelude.Maybe Prelude.Text)+databaseSummary_arn = Lens.lens (\DatabaseSummary' {arn} -> arn) (\s@DatabaseSummary' {} a -> s {arn = a} :: DatabaseSummary)++databaseSummary_componentId :: Lens.Lens' DatabaseSummary (Prelude.Maybe Prelude.Text)+databaseSummary_componentId = Lens.lens (\DatabaseSummary' {componentId} -> componentId) (\s@DatabaseSummary' {} a -> s {componentId = a} :: DatabaseSummary)++databaseSummary_databaseId :: Lens.Lens' DatabaseSummary (Prelude.Maybe Prelude.Text)+databaseSummary_databaseId = Lens.lens (\DatabaseSummary' {databaseId} -> databaseId) (\s@DatabaseSummary' {} a -> s {databaseId = a} :: DatabaseSummary)++databaseSummary_databaseType :: Lens.Lens' DatabaseSummary (Prelude.Maybe DatabaseType)+databaseSummary_databaseType = Lens.lens (\DatabaseSummary' {databaseType} -> databaseType) (\s@DatabaseSummary' {} a -> s {databaseType = a} :: DatabaseSummary)++databaseSummary_tags :: Lens.Lens' DatabaseSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+databaseSummary_tags = Lens.lens (\DatabaseSummary' {tags} -> tags) (\s@DatabaseSummary' {} a -> s {tags = a} :: DatabaseSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DatabaseSummary where+  parseJSON =+    Data.withObject+      "DatabaseSummary"+      ( \x ->+          DatabaseSummary'+            Prelude.<$> (x Data..:? "ApplicationId")+            Prelude.<*> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "ComponentId")+            Prelude.<*> (x Data..:? "DatabaseId")+            Prelude.<*> (x Data..:? "DatabaseType")+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable DatabaseSummary where+  hashWithSalt _salt DatabaseSummary' {..} =+    _salt+      `Prelude.hashWithSalt` applicationId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` componentId+      `Prelude.hashWithSalt` databaseId+      `Prelude.hashWithSalt` databaseType+      `Prelude.hashWithSalt` tags++instance Prelude.NFData DatabaseSummary where+  rnf DatabaseSummary' {..} =+    Prelude.rnf applicationId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf componentId+      `Prelude.seq` Prelude.rnf databaseId+      `Prelude.seq` Prelude.rnf databaseType+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/SSMSAP/Types/DatabaseType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.SSMSAP.Types.DatabaseType+-- 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.SSMSAP.Types.DatabaseType+  ( DatabaseType+      ( ..,+        DatabaseType_SYSTEM,+        DatabaseType_TENANT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DatabaseType = DatabaseType'+  { fromDatabaseType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern DatabaseType_SYSTEM :: DatabaseType+pattern DatabaseType_SYSTEM = DatabaseType' "SYSTEM"++pattern DatabaseType_TENANT :: DatabaseType+pattern DatabaseType_TENANT = DatabaseType' "TENANT"++{-# COMPLETE+  DatabaseType_SYSTEM,+  DatabaseType_TENANT,+  DatabaseType'+  #-}
+ gen/Amazonka/SSMSAP/Types/Host.hs view
@@ -0,0 +1,101 @@+{-# 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.SSMSAP.Types.Host+-- 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.SSMSAP.Types.Host 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+import Amazonka.SSMSAP.Types.HostRole++-- |+--+-- /See:/ 'newHost' smart constructor.+data Host = Host'+  { hostIp :: Prelude.Maybe Prelude.Text,+    hostName :: Prelude.Maybe Prelude.Text,+    hostRole :: Prelude.Maybe HostRole,+    instanceId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Host' 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:+--+-- 'hostIp', 'host_hostIp' -+--+-- 'hostName', 'host_hostName' -+--+-- 'hostRole', 'host_hostRole' -+--+-- 'instanceId', 'host_instanceId' -+newHost ::+  Host+newHost =+  Host'+    { hostIp = Prelude.Nothing,+      hostName = Prelude.Nothing,+      hostRole = Prelude.Nothing,+      instanceId = Prelude.Nothing+    }++host_hostIp :: Lens.Lens' Host (Prelude.Maybe Prelude.Text)+host_hostIp = Lens.lens (\Host' {hostIp} -> hostIp) (\s@Host' {} a -> s {hostIp = a} :: Host)++host_hostName :: Lens.Lens' Host (Prelude.Maybe Prelude.Text)+host_hostName = Lens.lens (\Host' {hostName} -> hostName) (\s@Host' {} a -> s {hostName = a} :: Host)++host_hostRole :: Lens.Lens' Host (Prelude.Maybe HostRole)+host_hostRole = Lens.lens (\Host' {hostRole} -> hostRole) (\s@Host' {} a -> s {hostRole = a} :: Host)++host_instanceId :: Lens.Lens' Host (Prelude.Maybe Prelude.Text)+host_instanceId = Lens.lens (\Host' {instanceId} -> instanceId) (\s@Host' {} a -> s {instanceId = a} :: Host)++instance Data.FromJSON Host where+  parseJSON =+    Data.withObject+      "Host"+      ( \x ->+          Host'+            Prelude.<$> (x Data..:? "HostIp")+            Prelude.<*> (x Data..:? "HostName")+            Prelude.<*> (x Data..:? "HostRole")+            Prelude.<*> (x Data..:? "InstanceId")+      )++instance Prelude.Hashable Host where+  hashWithSalt _salt Host' {..} =+    _salt+      `Prelude.hashWithSalt` hostIp+      `Prelude.hashWithSalt` hostName+      `Prelude.hashWithSalt` hostRole+      `Prelude.hashWithSalt` instanceId++instance Prelude.NFData Host where+  rnf Host' {..} =+    Prelude.rnf hostIp+      `Prelude.seq` Prelude.rnf hostName+      `Prelude.seq` Prelude.rnf hostRole+      `Prelude.seq` Prelude.rnf instanceId
+ gen/Amazonka/SSMSAP/Types/HostRole.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.SSMSAP.Types.HostRole+-- 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.SSMSAP.Types.HostRole+  ( HostRole+      ( ..,+        HostRole_LEADER,+        HostRole_STANDBY,+        HostRole_UNKNOWN,+        HostRole_WORKER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype HostRole = HostRole'+  { fromHostRole ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern HostRole_LEADER :: HostRole+pattern HostRole_LEADER = HostRole' "LEADER"++pattern HostRole_STANDBY :: HostRole+pattern HostRole_STANDBY = HostRole' "STANDBY"++pattern HostRole_UNKNOWN :: HostRole+pattern HostRole_UNKNOWN = HostRole' "UNKNOWN"++pattern HostRole_WORKER :: HostRole+pattern HostRole_WORKER = HostRole' "WORKER"++{-# COMPLETE+  HostRole_LEADER,+  HostRole_STANDBY,+  HostRole_UNKNOWN,+  HostRole_WORKER,+  HostRole'+  #-}
+ gen/Amazonka/SSMSAP/Types/Operation.hs view
@@ -0,0 +1,171 @@+{-# 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.SSMSAP.Types.Operation+-- 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.SSMSAP.Types.Operation 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+import Amazonka.SSMSAP.Types.OperationStatus++-- |+--+-- /See:/ 'newOperation' smart constructor.+data Operation = Operation'+  { endTime :: Prelude.Maybe Data.POSIX,+    id :: Prelude.Maybe Prelude.Text,+    lastUpdatedTime :: Prelude.Maybe Data.POSIX,+    properties :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    resourceArn :: Prelude.Maybe Prelude.Text,+    resourceId :: Prelude.Maybe Prelude.Text,+    resourceType :: Prelude.Maybe Prelude.Text,+    startTime :: Prelude.Maybe Data.POSIX,+    status :: Prelude.Maybe OperationStatus,+    statusMessage :: Prelude.Maybe Prelude.Text,+    type' :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Operation' 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:+--+-- 'endTime', 'operation_endTime' -+--+-- 'id', 'operation_id' -+--+-- 'lastUpdatedTime', 'operation_lastUpdatedTime' -+--+-- 'properties', 'operation_properties' -+--+-- 'resourceArn', 'operation_resourceArn' -+--+-- 'resourceId', 'operation_resourceId' -+--+-- 'resourceType', 'operation_resourceType' -+--+-- 'startTime', 'operation_startTime' -+--+-- 'status', 'operation_status' -+--+-- 'statusMessage', 'operation_statusMessage' -+--+-- 'type'', 'operation_type' -+newOperation ::+  Operation+newOperation =+  Operation'+    { endTime = Prelude.Nothing,+      id = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      properties = Prelude.Nothing,+      resourceArn = Prelude.Nothing,+      resourceId = Prelude.Nothing,+      resourceType = Prelude.Nothing,+      startTime = Prelude.Nothing,+      status = Prelude.Nothing,+      statusMessage = Prelude.Nothing,+      type' = Prelude.Nothing+    }++operation_endTime :: Lens.Lens' Operation (Prelude.Maybe Prelude.UTCTime)+operation_endTime = Lens.lens (\Operation' {endTime} -> endTime) (\s@Operation' {} a -> s {endTime = a} :: Operation) Prelude.. Lens.mapping Data._Time++operation_id :: Lens.Lens' Operation (Prelude.Maybe Prelude.Text)+operation_id = Lens.lens (\Operation' {id} -> id) (\s@Operation' {} a -> s {id = a} :: Operation)++operation_lastUpdatedTime :: Lens.Lens' Operation (Prelude.Maybe Prelude.UTCTime)+operation_lastUpdatedTime = Lens.lens (\Operation' {lastUpdatedTime} -> lastUpdatedTime) (\s@Operation' {} a -> s {lastUpdatedTime = a} :: Operation) Prelude.. Lens.mapping Data._Time++operation_properties :: Lens.Lens' Operation (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+operation_properties = Lens.lens (\Operation' {properties} -> properties) (\s@Operation' {} a -> s {properties = a} :: Operation) Prelude.. Lens.mapping Lens.coerced++operation_resourceArn :: Lens.Lens' Operation (Prelude.Maybe Prelude.Text)+operation_resourceArn = Lens.lens (\Operation' {resourceArn} -> resourceArn) (\s@Operation' {} a -> s {resourceArn = a} :: Operation)++operation_resourceId :: Lens.Lens' Operation (Prelude.Maybe Prelude.Text)+operation_resourceId = Lens.lens (\Operation' {resourceId} -> resourceId) (\s@Operation' {} a -> s {resourceId = a} :: Operation)++operation_resourceType :: Lens.Lens' Operation (Prelude.Maybe Prelude.Text)+operation_resourceType = Lens.lens (\Operation' {resourceType} -> resourceType) (\s@Operation' {} a -> s {resourceType = a} :: Operation)++operation_startTime :: Lens.Lens' Operation (Prelude.Maybe Prelude.UTCTime)+operation_startTime = Lens.lens (\Operation' {startTime} -> startTime) (\s@Operation' {} a -> s {startTime = a} :: Operation) Prelude.. Lens.mapping Data._Time++operation_status :: Lens.Lens' Operation (Prelude.Maybe OperationStatus)+operation_status = Lens.lens (\Operation' {status} -> status) (\s@Operation' {} a -> s {status = a} :: Operation)++operation_statusMessage :: Lens.Lens' Operation (Prelude.Maybe Prelude.Text)+operation_statusMessage = Lens.lens (\Operation' {statusMessage} -> statusMessage) (\s@Operation' {} a -> s {statusMessage = a} :: Operation)++operation_type :: Lens.Lens' Operation (Prelude.Maybe Prelude.Text)+operation_type = Lens.lens (\Operation' {type'} -> type') (\s@Operation' {} a -> s {type' = a} :: Operation)++instance Data.FromJSON Operation where+  parseJSON =+    Data.withObject+      "Operation"+      ( \x ->+          Operation'+            Prelude.<$> (x Data..:? "EndTime")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "LastUpdatedTime")+            Prelude.<*> (x Data..:? "Properties" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "ResourceArn")+            Prelude.<*> (x Data..:? "ResourceId")+            Prelude.<*> (x Data..:? "ResourceType")+            Prelude.<*> (x Data..:? "StartTime")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "StatusMessage")+            Prelude.<*> (x Data..:? "Type")+      )++instance Prelude.Hashable Operation where+  hashWithSalt _salt Operation' {..} =+    _salt+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` properties+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` resourceId+      `Prelude.hashWithSalt` resourceType+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` statusMessage+      `Prelude.hashWithSalt` type'++instance Prelude.NFData Operation where+  rnf Operation' {..} =+    Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf properties+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf resourceId+      `Prelude.seq` Prelude.rnf resourceType+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf statusMessage+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/SSMSAP/Types/OperationStatus.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.SSMSAP.Types.OperationStatus+-- 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.SSMSAP.Types.OperationStatus+  ( OperationStatus+      ( ..,+        OperationStatus_ERROR,+        OperationStatus_INPROGRESS,+        OperationStatus_SUCCESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OperationStatus = OperationStatus'+  { fromOperationStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern OperationStatus_ERROR :: OperationStatus+pattern OperationStatus_ERROR = OperationStatus' "ERROR"++pattern OperationStatus_INPROGRESS :: OperationStatus+pattern OperationStatus_INPROGRESS = OperationStatus' "INPROGRESS"++pattern OperationStatus_SUCCESS :: OperationStatus+pattern OperationStatus_SUCCESS = OperationStatus' "SUCCESS"++{-# COMPLETE+  OperationStatus_ERROR,+  OperationStatus_INPROGRESS,+  OperationStatus_SUCCESS,+  OperationStatus'+  #-}
+ gen/Amazonka/SSMSAP/Types/PermissionActionType.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.SSMSAP.Types.PermissionActionType+-- 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.SSMSAP.Types.PermissionActionType+  ( PermissionActionType+      ( ..,+        PermissionActionType_RESTORE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PermissionActionType = PermissionActionType'+  { fromPermissionActionType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern PermissionActionType_RESTORE :: PermissionActionType+pattern PermissionActionType_RESTORE = PermissionActionType' "RESTORE"++{-# COMPLETE+  PermissionActionType_RESTORE,+  PermissionActionType'+  #-}
+ gen/Amazonka/SSMSAP/UntagResource.hs view
@@ -0,0 +1,162 @@+{-# 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.SSMSAP.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Delete the tags for a resource.+module Amazonka.SSMSAP.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { resourceArn :: Prelude.Text,+    -- | Adds\/updates or removes credentials for applications registered with+    -- AWS Systems Manager for SAP.+    tagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' 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:+--+-- 'resourceArn', 'untagResource_resourceArn' -+--+-- 'tagKeys', 'untagResource_tagKeys' - Adds\/updates or removes credentials for applications registered with+-- AWS Systems Manager for SAP.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | Adds\/updates or removes credentials for applications registered with+-- AWS Systems Manager for SAP.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' 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', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/UpdateApplicationSettings.hs view
@@ -0,0 +1,202 @@+{-# 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.SSMSAP.UpdateApplicationSettings+-- 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.SSMSAP.UpdateApplicationSettings+  ( -- * Creating a Request+    UpdateApplicationSettings (..),+    newUpdateApplicationSettings,++    -- * Request Lenses+    updateApplicationSettings_credentialsToAddOrUpdate,+    updateApplicationSettings_credentialsToRemove,+    updateApplicationSettings_applicationId,++    -- * Destructuring the Response+    UpdateApplicationSettingsResponse (..),+    newUpdateApplicationSettingsResponse,++    -- * Response Lenses+    updateApplicationSettingsResponse_message,+    updateApplicationSettingsResponse_operationIds,+    updateApplicationSettingsResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SSMSAP.Types++-- | /See:/ 'newUpdateApplicationSettings' smart constructor.+data UpdateApplicationSettings = UpdateApplicationSettings'+  { credentialsToAddOrUpdate :: Prelude.Maybe (Prelude.NonEmpty ApplicationCredential),+    credentialsToRemove :: Prelude.Maybe (Prelude.NonEmpty ApplicationCredential),+    applicationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateApplicationSettings' 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:+--+-- 'credentialsToAddOrUpdate', 'updateApplicationSettings_credentialsToAddOrUpdate' -+--+-- 'credentialsToRemove', 'updateApplicationSettings_credentialsToRemove' -+--+-- 'applicationId', 'updateApplicationSettings_applicationId' -+newUpdateApplicationSettings ::+  -- | 'applicationId'+  Prelude.Text ->+  UpdateApplicationSettings+newUpdateApplicationSettings pApplicationId_ =+  UpdateApplicationSettings'+    { credentialsToAddOrUpdate =+        Prelude.Nothing,+      credentialsToRemove = Prelude.Nothing,+      applicationId = pApplicationId_+    }++updateApplicationSettings_credentialsToAddOrUpdate :: Lens.Lens' UpdateApplicationSettings (Prelude.Maybe (Prelude.NonEmpty ApplicationCredential))+updateApplicationSettings_credentialsToAddOrUpdate = Lens.lens (\UpdateApplicationSettings' {credentialsToAddOrUpdate} -> credentialsToAddOrUpdate) (\s@UpdateApplicationSettings' {} a -> s {credentialsToAddOrUpdate = a} :: UpdateApplicationSettings) Prelude.. Lens.mapping Lens.coerced++updateApplicationSettings_credentialsToRemove :: Lens.Lens' UpdateApplicationSettings (Prelude.Maybe (Prelude.NonEmpty ApplicationCredential))+updateApplicationSettings_credentialsToRemove = Lens.lens (\UpdateApplicationSettings' {credentialsToRemove} -> credentialsToRemove) (\s@UpdateApplicationSettings' {} a -> s {credentialsToRemove = a} :: UpdateApplicationSettings) Prelude.. Lens.mapping Lens.coerced++updateApplicationSettings_applicationId :: Lens.Lens' UpdateApplicationSettings Prelude.Text+updateApplicationSettings_applicationId = Lens.lens (\UpdateApplicationSettings' {applicationId} -> applicationId) (\s@UpdateApplicationSettings' {} a -> s {applicationId = a} :: UpdateApplicationSettings)++instance Core.AWSRequest UpdateApplicationSettings where+  type+    AWSResponse UpdateApplicationSettings =+      UpdateApplicationSettingsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateApplicationSettingsResponse'+            Prelude.<$> (x Data..?> "Message")+            Prelude.<*> (x Data..?> "OperationIds" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateApplicationSettings where+  hashWithSalt _salt UpdateApplicationSettings' {..} =+    _salt+      `Prelude.hashWithSalt` credentialsToAddOrUpdate+      `Prelude.hashWithSalt` credentialsToRemove+      `Prelude.hashWithSalt` applicationId++instance Prelude.NFData UpdateApplicationSettings where+  rnf UpdateApplicationSettings' {..} =+    Prelude.rnf credentialsToAddOrUpdate+      `Prelude.seq` Prelude.rnf credentialsToRemove+      `Prelude.seq` Prelude.rnf applicationId++instance Data.ToHeaders UpdateApplicationSettings where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateApplicationSettings where+  toJSON UpdateApplicationSettings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CredentialsToAddOrUpdate" Data..=)+              Prelude.<$> credentialsToAddOrUpdate,+            ("CredentialsToRemove" Data..=)+              Prelude.<$> credentialsToRemove,+            Prelude.Just+              ("ApplicationId" Data..= applicationId)+          ]+      )++instance Data.ToPath UpdateApplicationSettings where+  toPath = Prelude.const "/update-application-settings"++instance Data.ToQuery UpdateApplicationSettings where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateApplicationSettingsResponse' smart constructor.+data UpdateApplicationSettingsResponse = UpdateApplicationSettingsResponse'+  { message :: Prelude.Maybe Prelude.Text,+    operationIds :: 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 'UpdateApplicationSettingsResponse' 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:+--+-- 'message', 'updateApplicationSettingsResponse_message' -+--+-- 'operationIds', 'updateApplicationSettingsResponse_operationIds' -+--+-- 'httpStatus', 'updateApplicationSettingsResponse_httpStatus' - The response's http status code.+newUpdateApplicationSettingsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateApplicationSettingsResponse+newUpdateApplicationSettingsResponse pHttpStatus_ =+  UpdateApplicationSettingsResponse'+    { message =+        Prelude.Nothing,+      operationIds = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++updateApplicationSettingsResponse_message :: Lens.Lens' UpdateApplicationSettingsResponse (Prelude.Maybe Prelude.Text)+updateApplicationSettingsResponse_message = Lens.lens (\UpdateApplicationSettingsResponse' {message} -> message) (\s@UpdateApplicationSettingsResponse' {} a -> s {message = a} :: UpdateApplicationSettingsResponse)++updateApplicationSettingsResponse_operationIds :: Lens.Lens' UpdateApplicationSettingsResponse (Prelude.Maybe [Prelude.Text])+updateApplicationSettingsResponse_operationIds = Lens.lens (\UpdateApplicationSettingsResponse' {operationIds} -> operationIds) (\s@UpdateApplicationSettingsResponse' {} a -> s {operationIds = a} :: UpdateApplicationSettingsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+updateApplicationSettingsResponse_httpStatus :: Lens.Lens' UpdateApplicationSettingsResponse Prelude.Int+updateApplicationSettingsResponse_httpStatus = Lens.lens (\UpdateApplicationSettingsResponse' {httpStatus} -> httpStatus) (\s@UpdateApplicationSettingsResponse' {} a -> s {httpStatus = a} :: UpdateApplicationSettingsResponse)++instance+  Prelude.NFData+    UpdateApplicationSettingsResponse+  where+  rnf UpdateApplicationSettingsResponse' {..} =+    Prelude.rnf message+      `Prelude.seq` Prelude.rnf operationIds+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SSMSAP/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.SSMSAP.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.SSMSAP.Waiters 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+import Amazonka.SSMSAP.Lens+import Amazonka.SSMSAP.Types
+ 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.SSMSAP+import Test.Amazonka.SSMSAP.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "SSMSAP"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/SSMSAP.hs view
@@ -0,0 +1,358 @@+{-# 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.SSMSAP+-- 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.SSMSAP where++import Amazonka.SSMSAP+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Amazonka.SSMSAP.Internal+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"+--         [ requestDeleteResourcePermission $+--             newDeleteResourcePermission+--+--         , requestDeregisterApplication $+--             newDeregisterApplication+--+--         , requestGetApplication $+--             newGetApplication+--+--         , requestGetComponent $+--             newGetComponent+--+--         , requestGetDatabase $+--             newGetDatabase+--+--         , requestGetOperation $+--             newGetOperation+--+--         , requestGetResourcePermission $+--             newGetResourcePermission+--+--         , requestListApplications $+--             newListApplications+--+--         , requestListComponents $+--             newListComponents+--+--         , requestListDatabases $+--             newListDatabases+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestPutResourcePermission $+--             newPutResourcePermission+--+--         , requestRegisterApplication $+--             newRegisterApplication+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateApplicationSettings $+--             newUpdateApplicationSettings+--+--           ]++--     , testGroup "response"+--         [ responseDeleteResourcePermission $+--             newDeleteResourcePermissionResponse+--+--         , responseDeregisterApplication $+--             newDeregisterApplicationResponse+--+--         , responseGetApplication $+--             newGetApplicationResponse+--+--         , responseGetComponent $+--             newGetComponentResponse+--+--         , responseGetDatabase $+--             newGetDatabaseResponse+--+--         , responseGetOperation $+--             newGetOperationResponse+--+--         , responseGetResourcePermission $+--             newGetResourcePermissionResponse+--+--         , responseListApplications $+--             newListApplicationsResponse+--+--         , responseListComponents $+--             newListComponentsResponse+--+--         , responseListDatabases $+--             newListDatabasesResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responsePutResourcePermission $+--             newPutResourcePermissionResponse+--+--         , responseRegisterApplication $+--             newRegisterApplicationResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateApplicationSettings $+--             newUpdateApplicationSettingsResponse+--+--           ]+--     ]++-- Requests++requestDeleteResourcePermission :: DeleteResourcePermission -> TestTree+requestDeleteResourcePermission =+  req+    "DeleteResourcePermission"+    "fixture/DeleteResourcePermission.yaml"++requestDeregisterApplication :: DeregisterApplication -> TestTree+requestDeregisterApplication =+  req+    "DeregisterApplication"+    "fixture/DeregisterApplication.yaml"++requestGetApplication :: GetApplication -> TestTree+requestGetApplication =+  req+    "GetApplication"+    "fixture/GetApplication.yaml"++requestGetComponent :: GetComponent -> TestTree+requestGetComponent =+  req+    "GetComponent"+    "fixture/GetComponent.yaml"++requestGetDatabase :: GetDatabase -> TestTree+requestGetDatabase =+  req+    "GetDatabase"+    "fixture/GetDatabase.yaml"++requestGetOperation :: GetOperation -> TestTree+requestGetOperation =+  req+    "GetOperation"+    "fixture/GetOperation.yaml"++requestGetResourcePermission :: GetResourcePermission -> TestTree+requestGetResourcePermission =+  req+    "GetResourcePermission"+    "fixture/GetResourcePermission.yaml"++requestListApplications :: ListApplications -> TestTree+requestListApplications =+  req+    "ListApplications"+    "fixture/ListApplications.yaml"++requestListComponents :: ListComponents -> TestTree+requestListComponents =+  req+    "ListComponents"+    "fixture/ListComponents.yaml"++requestListDatabases :: ListDatabases -> TestTree+requestListDatabases =+  req+    "ListDatabases"+    "fixture/ListDatabases.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestPutResourcePermission :: PutResourcePermission -> TestTree+requestPutResourcePermission =+  req+    "PutResourcePermission"+    "fixture/PutResourcePermission.yaml"++requestRegisterApplication :: RegisterApplication -> TestTree+requestRegisterApplication =+  req+    "RegisterApplication"+    "fixture/RegisterApplication.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateApplicationSettings :: UpdateApplicationSettings -> TestTree+requestUpdateApplicationSettings =+  req+    "UpdateApplicationSettings"+    "fixture/UpdateApplicationSettings.yaml"++-- Responses++responseDeleteResourcePermission :: DeleteResourcePermissionResponse -> TestTree+responseDeleteResourcePermission =+  res+    "DeleteResourcePermissionResponse"+    "fixture/DeleteResourcePermissionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteResourcePermission)++responseDeregisterApplication :: DeregisterApplicationResponse -> TestTree+responseDeregisterApplication =+  res+    "DeregisterApplicationResponse"+    "fixture/DeregisterApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeregisterApplication)++responseGetApplication :: GetApplicationResponse -> TestTree+responseGetApplication =+  res+    "GetApplicationResponse"+    "fixture/GetApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetApplication)++responseGetComponent :: GetComponentResponse -> TestTree+responseGetComponent =+  res+    "GetComponentResponse"+    "fixture/GetComponentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetComponent)++responseGetDatabase :: GetDatabaseResponse -> TestTree+responseGetDatabase =+  res+    "GetDatabaseResponse"+    "fixture/GetDatabaseResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDatabase)++responseGetOperation :: GetOperationResponse -> TestTree+responseGetOperation =+  res+    "GetOperationResponse"+    "fixture/GetOperationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetOperation)++responseGetResourcePermission :: GetResourcePermissionResponse -> TestTree+responseGetResourcePermission =+  res+    "GetResourcePermissionResponse"+    "fixture/GetResourcePermissionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetResourcePermission)++responseListApplications :: ListApplicationsResponse -> TestTree+responseListApplications =+  res+    "ListApplicationsResponse"+    "fixture/ListApplicationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListApplications)++responseListComponents :: ListComponentsResponse -> TestTree+responseListComponents =+  res+    "ListComponentsResponse"+    "fixture/ListComponentsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListComponents)++responseListDatabases :: ListDatabasesResponse -> TestTree+responseListDatabases =+  res+    "ListDatabasesResponse"+    "fixture/ListDatabasesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDatabases)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responsePutResourcePermission :: PutResourcePermissionResponse -> TestTree+responsePutResourcePermission =+  res+    "PutResourcePermissionResponse"+    "fixture/PutResourcePermissionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutResourcePermission)++responseRegisterApplication :: RegisterApplicationResponse -> TestTree+responseRegisterApplication =+  res+    "RegisterApplicationResponse"+    "fixture/RegisterApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RegisterApplication)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+  res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+  res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateApplicationSettings :: UpdateApplicationSettingsResponse -> TestTree+responseUpdateApplicationSettings =+  res+    "UpdateApplicationSettingsResponse"+    "fixture/UpdateApplicationSettingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateApplicationSettings)
+ test/Test/Amazonka/SSMSAP.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.SSMSAP+-- 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.SSMSAP+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/SSMSAP/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.SSMSAP.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.SSMSAP.Internal where