packages feed

amazonka-resiliencehub (empty) → 2.0

raw patch · 183 files changed

+19815/−0 lines, 183 filesdep +amazonka-coredep +amazonka-resiliencehubdep +amazonka-test

Dependencies added: amazonka-core, amazonka-resiliencehub, 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 Resilience Hub SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-04-30@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-resiliencehub)+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.ResilienceHub](http://hackage.haskell.org/package/amazonka-resiliencehub/docs/Amazonka-ResilienceHub.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-resiliencehub` 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-resiliencehub.cabal view
@@ -0,0 +1,176 @@+cabal-version:      2.2+name:               amazonka-resiliencehub+version:            2.0+synopsis:           Amazon Resilience Hub SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2020-04-30@ 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.ResilienceHub.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.ResilienceHub" 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-resiliencehub++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.ResilienceHub+    Amazonka.ResilienceHub.AddDraftAppVersionResourceMappings+    Amazonka.ResilienceHub.CreateApp+    Amazonka.ResilienceHub.CreateRecommendationTemplate+    Amazonka.ResilienceHub.CreateResiliencyPolicy+    Amazonka.ResilienceHub.DeleteApp+    Amazonka.ResilienceHub.DeleteAppAssessment+    Amazonka.ResilienceHub.DeleteRecommendationTemplate+    Amazonka.ResilienceHub.DeleteResiliencyPolicy+    Amazonka.ResilienceHub.DescribeApp+    Amazonka.ResilienceHub.DescribeAppAssessment+    Amazonka.ResilienceHub.DescribeAppVersionResourcesResolutionStatus+    Amazonka.ResilienceHub.DescribeAppVersionTemplate+    Amazonka.ResilienceHub.DescribeDraftAppVersionResourcesImportStatus+    Amazonka.ResilienceHub.DescribeResiliencyPolicy+    Amazonka.ResilienceHub.ImportResourcesToDraftAppVersion+    Amazonka.ResilienceHub.Lens+    Amazonka.ResilienceHub.ListAlarmRecommendations+    Amazonka.ResilienceHub.ListAppAssessments+    Amazonka.ResilienceHub.ListAppComponentCompliances+    Amazonka.ResilienceHub.ListAppComponentRecommendations+    Amazonka.ResilienceHub.ListApps+    Amazonka.ResilienceHub.ListAppVersionResourceMappings+    Amazonka.ResilienceHub.ListAppVersionResources+    Amazonka.ResilienceHub.ListAppVersions+    Amazonka.ResilienceHub.ListRecommendationTemplates+    Amazonka.ResilienceHub.ListResiliencyPolicies+    Amazonka.ResilienceHub.ListSopRecommendations+    Amazonka.ResilienceHub.ListSuggestedResiliencyPolicies+    Amazonka.ResilienceHub.ListTagsForResource+    Amazonka.ResilienceHub.ListTestRecommendations+    Amazonka.ResilienceHub.ListUnsupportedAppVersionResources+    Amazonka.ResilienceHub.PublishAppVersion+    Amazonka.ResilienceHub.PutDraftAppVersionTemplate+    Amazonka.ResilienceHub.RemoveDraftAppVersionResourceMappings+    Amazonka.ResilienceHub.ResolveAppVersionResources+    Amazonka.ResilienceHub.StartAppAssessment+    Amazonka.ResilienceHub.TagResource+    Amazonka.ResilienceHub.Types+    Amazonka.ResilienceHub.Types.AlarmRecommendation+    Amazonka.ResilienceHub.Types.AlarmType+    Amazonka.ResilienceHub.Types.App+    Amazonka.ResilienceHub.Types.AppAssessment+    Amazonka.ResilienceHub.Types.AppAssessmentScheduleType+    Amazonka.ResilienceHub.Types.AppAssessmentSummary+    Amazonka.ResilienceHub.Types.AppComplianceStatusType+    Amazonka.ResilienceHub.Types.AppComponent+    Amazonka.ResilienceHub.Types.AppComponentCompliance+    Amazonka.ResilienceHub.Types.AppStatusType+    Amazonka.ResilienceHub.Types.AppSummary+    Amazonka.ResilienceHub.Types.AppVersionSummary+    Amazonka.ResilienceHub.Types.AssessmentInvoker+    Amazonka.ResilienceHub.Types.AssessmentStatus+    Amazonka.ResilienceHub.Types.ComplianceStatus+    Amazonka.ResilienceHub.Types.ComponentRecommendation+    Amazonka.ResilienceHub.Types.ConfigRecommendation+    Amazonka.ResilienceHub.Types.ConfigRecommendationOptimizationType+    Amazonka.ResilienceHub.Types.Cost+    Amazonka.ResilienceHub.Types.CostFrequency+    Amazonka.ResilienceHub.Types.DataLocationConstraint+    Amazonka.ResilienceHub.Types.DisruptionCompliance+    Amazonka.ResilienceHub.Types.DisruptionType+    Amazonka.ResilienceHub.Types.EstimatedCostTier+    Amazonka.ResilienceHub.Types.FailurePolicy+    Amazonka.ResilienceHub.Types.HaArchitecture+    Amazonka.ResilienceHub.Types.LogicalResourceId+    Amazonka.ResilienceHub.Types.PhysicalIdentifierType+    Amazonka.ResilienceHub.Types.PhysicalResource+    Amazonka.ResilienceHub.Types.PhysicalResourceId+    Amazonka.ResilienceHub.Types.RecommendationComplianceStatus+    Amazonka.ResilienceHub.Types.RecommendationDisruptionCompliance+    Amazonka.ResilienceHub.Types.RecommendationItem+    Amazonka.ResilienceHub.Types.RecommendationTemplate+    Amazonka.ResilienceHub.Types.RecommendationTemplateStatus+    Amazonka.ResilienceHub.Types.RenderRecommendationType+    Amazonka.ResilienceHub.Types.ResiliencyPolicy+    Amazonka.ResilienceHub.Types.ResiliencyPolicyTier+    Amazonka.ResilienceHub.Types.ResiliencyScore+    Amazonka.ResilienceHub.Types.ResourceError+    Amazonka.ResilienceHub.Types.ResourceErrorsDetails+    Amazonka.ResilienceHub.Types.ResourceImportStatusType+    Amazonka.ResilienceHub.Types.ResourceMapping+    Amazonka.ResilienceHub.Types.ResourceMappingType+    Amazonka.ResilienceHub.Types.ResourceResolutionStatusType+    Amazonka.ResilienceHub.Types.S3Location+    Amazonka.ResilienceHub.Types.SopRecommendation+    Amazonka.ResilienceHub.Types.SopServiceType+    Amazonka.ResilienceHub.Types.TemplateFormat+    Amazonka.ResilienceHub.Types.TerraformSource+    Amazonka.ResilienceHub.Types.TestRecommendation+    Amazonka.ResilienceHub.Types.TestRisk+    Amazonka.ResilienceHub.Types.TestType+    Amazonka.ResilienceHub.Types.UnsupportedResource+    Amazonka.ResilienceHub.UntagResource+    Amazonka.ResilienceHub.UpdateApp+    Amazonka.ResilienceHub.UpdateResiliencyPolicy+    Amazonka.ResilienceHub.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-resiliencehub-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.ResilienceHub+    Test.Amazonka.ResilienceHub+    Test.Amazonka.ResilienceHub.Internal++  build-depends:+    , amazonka-core           >=2.0 && <2.1+    , amazonka-resiliencehub+    , amazonka-test           >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/AddDraftAppVersionResourceMappings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/AddDraftAppVersionResourceMappingsResponse.proto view
+ fixture/CreateApp.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/CreateAppResponse.proto view
+ fixture/CreateRecommendationTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/CreateRecommendationTemplateResponse.proto view
+ fixture/CreateResiliencyPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/CreateResiliencyPolicyResponse.proto view
+ fixture/DeleteApp.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/DeleteAppAssessment.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/DeleteAppAssessmentResponse.proto view
+ fixture/DeleteAppResponse.proto view
+ fixture/DeleteRecommendationTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/DeleteRecommendationTemplateResponse.proto view
+ fixture/DeleteResiliencyPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/DeleteResiliencyPolicyResponse.proto view
+ fixture/DescribeApp.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/DescribeAppAssessment.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/DescribeAppAssessmentResponse.proto view
+ fixture/DescribeAppResponse.proto view
+ fixture/DescribeAppVersionResourcesResolutionStatus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/DescribeAppVersionResourcesResolutionStatusResponse.proto view
+ fixture/DescribeAppVersionTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/DescribeAppVersionTemplateResponse.proto view
+ fixture/DescribeDraftAppVersionResourcesImportStatus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/DescribeDraftAppVersionResourcesImportStatusResponse.proto view
+ fixture/DescribeResiliencyPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/DescribeResiliencyPolicyResponse.proto view
+ fixture/ImportResourcesToDraftAppVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ImportResourcesToDraftAppVersionResponse.proto view
+ fixture/ListAlarmRecommendations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListAlarmRecommendationsResponse.proto view
+ fixture/ListAppAssessments.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListAppAssessmentsResponse.proto view
+ fixture/ListAppComponentCompliances.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListAppComponentCompliancesResponse.proto view
+ fixture/ListAppComponentRecommendations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListAppComponentRecommendationsResponse.proto view
+ fixture/ListAppVersionResourceMappings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListAppVersionResourceMappingsResponse.proto view
+ fixture/ListAppVersionResources.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListAppVersionResourcesResponse.proto view
+ fixture/ListAppVersions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListAppVersionsResponse.proto view
+ fixture/ListApps.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListAppsResponse.proto view
+ fixture/ListRecommendationTemplates.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListRecommendationTemplatesResponse.proto view
+ fixture/ListResiliencyPolicies.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListResiliencyPoliciesResponse.proto view
+ fixture/ListSopRecommendations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListSopRecommendationsResponse.proto view
+ fixture/ListSuggestedResiliencyPolicies.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListSuggestedResiliencyPoliciesResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListTestRecommendations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListTestRecommendationsResponse.proto view
+ fixture/ListUnsupportedAppVersionResources.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ListUnsupportedAppVersionResourcesResponse.proto view
+ fixture/PublishAppVersion.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/PublishAppVersionResponse.proto view
+ fixture/PutDraftAppVersionTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/PutDraftAppVersionTemplateResponse.proto view
+ fixture/RemoveDraftAppVersionResourceMappings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/RemoveDraftAppVersionResourceMappingsResponse.proto view
+ fixture/ResolveAppVersionResources.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/ResolveAppVersionResourcesResponse.proto view
+ fixture/StartAppAssessment.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/StartAppAssessmentResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/UpdateApp.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/UpdateAppResponse.proto view
+ fixture/UpdateResiliencyPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/resiliencehub/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  resiliencehub.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/UpdateResiliencyPolicyResponse.proto view
+ gen/Amazonka/ResilienceHub.hs view
@@ -0,0 +1,552 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.ResilienceHub+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2020-04-30@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- AWS Resilience Hub helps you proactively prepare and protect your Amazon+-- Web Services applications from disruptions. Resilience Hub offers+-- continuous resiliency assessment and validation that integrates into+-- your software development lifecycle. This enables you to uncover+-- resiliency weaknesses, ensure recovery time objective (RTO) and recovery+-- point objective (RPO) targets for your applications are met, and resolve+-- issues before they are released into production.+module Amazonka.ResilienceHub+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** AddDraftAppVersionResourceMappings+    AddDraftAppVersionResourceMappings (AddDraftAppVersionResourceMappings'),+    newAddDraftAppVersionResourceMappings,+    AddDraftAppVersionResourceMappingsResponse (AddDraftAppVersionResourceMappingsResponse'),+    newAddDraftAppVersionResourceMappingsResponse,++    -- ** CreateApp+    CreateApp (CreateApp'),+    newCreateApp,+    CreateAppResponse (CreateAppResponse'),+    newCreateAppResponse,++    -- ** CreateRecommendationTemplate+    CreateRecommendationTemplate (CreateRecommendationTemplate'),+    newCreateRecommendationTemplate,+    CreateRecommendationTemplateResponse (CreateRecommendationTemplateResponse'),+    newCreateRecommendationTemplateResponse,++    -- ** CreateResiliencyPolicy+    CreateResiliencyPolicy (CreateResiliencyPolicy'),+    newCreateResiliencyPolicy,+    CreateResiliencyPolicyResponse (CreateResiliencyPolicyResponse'),+    newCreateResiliencyPolicyResponse,++    -- ** DeleteApp+    DeleteApp (DeleteApp'),+    newDeleteApp,+    DeleteAppResponse (DeleteAppResponse'),+    newDeleteAppResponse,++    -- ** DeleteAppAssessment+    DeleteAppAssessment (DeleteAppAssessment'),+    newDeleteAppAssessment,+    DeleteAppAssessmentResponse (DeleteAppAssessmentResponse'),+    newDeleteAppAssessmentResponse,++    -- ** DeleteRecommendationTemplate+    DeleteRecommendationTemplate (DeleteRecommendationTemplate'),+    newDeleteRecommendationTemplate,+    DeleteRecommendationTemplateResponse (DeleteRecommendationTemplateResponse'),+    newDeleteRecommendationTemplateResponse,++    -- ** DeleteResiliencyPolicy+    DeleteResiliencyPolicy (DeleteResiliencyPolicy'),+    newDeleteResiliencyPolicy,+    DeleteResiliencyPolicyResponse (DeleteResiliencyPolicyResponse'),+    newDeleteResiliencyPolicyResponse,++    -- ** DescribeApp+    DescribeApp (DescribeApp'),+    newDescribeApp,+    DescribeAppResponse (DescribeAppResponse'),+    newDescribeAppResponse,++    -- ** DescribeAppAssessment+    DescribeAppAssessment (DescribeAppAssessment'),+    newDescribeAppAssessment,+    DescribeAppAssessmentResponse (DescribeAppAssessmentResponse'),+    newDescribeAppAssessmentResponse,++    -- ** DescribeAppVersionResourcesResolutionStatus+    DescribeAppVersionResourcesResolutionStatus (DescribeAppVersionResourcesResolutionStatus'),+    newDescribeAppVersionResourcesResolutionStatus,+    DescribeAppVersionResourcesResolutionStatusResponse (DescribeAppVersionResourcesResolutionStatusResponse'),+    newDescribeAppVersionResourcesResolutionStatusResponse,++    -- ** DescribeAppVersionTemplate+    DescribeAppVersionTemplate (DescribeAppVersionTemplate'),+    newDescribeAppVersionTemplate,+    DescribeAppVersionTemplateResponse (DescribeAppVersionTemplateResponse'),+    newDescribeAppVersionTemplateResponse,++    -- ** DescribeDraftAppVersionResourcesImportStatus+    DescribeDraftAppVersionResourcesImportStatus (DescribeDraftAppVersionResourcesImportStatus'),+    newDescribeDraftAppVersionResourcesImportStatus,+    DescribeDraftAppVersionResourcesImportStatusResponse (DescribeDraftAppVersionResourcesImportStatusResponse'),+    newDescribeDraftAppVersionResourcesImportStatusResponse,++    -- ** DescribeResiliencyPolicy+    DescribeResiliencyPolicy (DescribeResiliencyPolicy'),+    newDescribeResiliencyPolicy,+    DescribeResiliencyPolicyResponse (DescribeResiliencyPolicyResponse'),+    newDescribeResiliencyPolicyResponse,++    -- ** ImportResourcesToDraftAppVersion+    ImportResourcesToDraftAppVersion (ImportResourcesToDraftAppVersion'),+    newImportResourcesToDraftAppVersion,+    ImportResourcesToDraftAppVersionResponse (ImportResourcesToDraftAppVersionResponse'),+    newImportResourcesToDraftAppVersionResponse,++    -- ** ListAlarmRecommendations+    ListAlarmRecommendations (ListAlarmRecommendations'),+    newListAlarmRecommendations,+    ListAlarmRecommendationsResponse (ListAlarmRecommendationsResponse'),+    newListAlarmRecommendationsResponse,++    -- ** ListAppAssessments+    ListAppAssessments (ListAppAssessments'),+    newListAppAssessments,+    ListAppAssessmentsResponse (ListAppAssessmentsResponse'),+    newListAppAssessmentsResponse,++    -- ** ListAppComponentCompliances+    ListAppComponentCompliances (ListAppComponentCompliances'),+    newListAppComponentCompliances,+    ListAppComponentCompliancesResponse (ListAppComponentCompliancesResponse'),+    newListAppComponentCompliancesResponse,++    -- ** ListAppComponentRecommendations+    ListAppComponentRecommendations (ListAppComponentRecommendations'),+    newListAppComponentRecommendations,+    ListAppComponentRecommendationsResponse (ListAppComponentRecommendationsResponse'),+    newListAppComponentRecommendationsResponse,++    -- ** ListAppVersionResourceMappings+    ListAppVersionResourceMappings (ListAppVersionResourceMappings'),+    newListAppVersionResourceMappings,+    ListAppVersionResourceMappingsResponse (ListAppVersionResourceMappingsResponse'),+    newListAppVersionResourceMappingsResponse,++    -- ** ListAppVersionResources+    ListAppVersionResources (ListAppVersionResources'),+    newListAppVersionResources,+    ListAppVersionResourcesResponse (ListAppVersionResourcesResponse'),+    newListAppVersionResourcesResponse,++    -- ** ListAppVersions+    ListAppVersions (ListAppVersions'),+    newListAppVersions,+    ListAppVersionsResponse (ListAppVersionsResponse'),+    newListAppVersionsResponse,++    -- ** ListApps+    ListApps (ListApps'),+    newListApps,+    ListAppsResponse (ListAppsResponse'),+    newListAppsResponse,++    -- ** ListRecommendationTemplates+    ListRecommendationTemplates (ListRecommendationTemplates'),+    newListRecommendationTemplates,+    ListRecommendationTemplatesResponse (ListRecommendationTemplatesResponse'),+    newListRecommendationTemplatesResponse,++    -- ** ListResiliencyPolicies+    ListResiliencyPolicies (ListResiliencyPolicies'),+    newListResiliencyPolicies,+    ListResiliencyPoliciesResponse (ListResiliencyPoliciesResponse'),+    newListResiliencyPoliciesResponse,++    -- ** ListSopRecommendations+    ListSopRecommendations (ListSopRecommendations'),+    newListSopRecommendations,+    ListSopRecommendationsResponse (ListSopRecommendationsResponse'),+    newListSopRecommendationsResponse,++    -- ** ListSuggestedResiliencyPolicies+    ListSuggestedResiliencyPolicies (ListSuggestedResiliencyPolicies'),+    newListSuggestedResiliencyPolicies,+    ListSuggestedResiliencyPoliciesResponse (ListSuggestedResiliencyPoliciesResponse'),+    newListSuggestedResiliencyPoliciesResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ListTestRecommendations+    ListTestRecommendations (ListTestRecommendations'),+    newListTestRecommendations,+    ListTestRecommendationsResponse (ListTestRecommendationsResponse'),+    newListTestRecommendationsResponse,++    -- ** ListUnsupportedAppVersionResources+    ListUnsupportedAppVersionResources (ListUnsupportedAppVersionResources'),+    newListUnsupportedAppVersionResources,+    ListUnsupportedAppVersionResourcesResponse (ListUnsupportedAppVersionResourcesResponse'),+    newListUnsupportedAppVersionResourcesResponse,++    -- ** PublishAppVersion+    PublishAppVersion (PublishAppVersion'),+    newPublishAppVersion,+    PublishAppVersionResponse (PublishAppVersionResponse'),+    newPublishAppVersionResponse,++    -- ** PutDraftAppVersionTemplate+    PutDraftAppVersionTemplate (PutDraftAppVersionTemplate'),+    newPutDraftAppVersionTemplate,+    PutDraftAppVersionTemplateResponse (PutDraftAppVersionTemplateResponse'),+    newPutDraftAppVersionTemplateResponse,++    -- ** RemoveDraftAppVersionResourceMappings+    RemoveDraftAppVersionResourceMappings (RemoveDraftAppVersionResourceMappings'),+    newRemoveDraftAppVersionResourceMappings,+    RemoveDraftAppVersionResourceMappingsResponse (RemoveDraftAppVersionResourceMappingsResponse'),+    newRemoveDraftAppVersionResourceMappingsResponse,++    -- ** ResolveAppVersionResources+    ResolveAppVersionResources (ResolveAppVersionResources'),+    newResolveAppVersionResources,+    ResolveAppVersionResourcesResponse (ResolveAppVersionResourcesResponse'),+    newResolveAppVersionResourcesResponse,++    -- ** StartAppAssessment+    StartAppAssessment (StartAppAssessment'),+    newStartAppAssessment,+    StartAppAssessmentResponse (StartAppAssessmentResponse'),+    newStartAppAssessmentResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateApp+    UpdateApp (UpdateApp'),+    newUpdateApp,+    UpdateAppResponse (UpdateAppResponse'),+    newUpdateAppResponse,++    -- ** UpdateResiliencyPolicy+    UpdateResiliencyPolicy (UpdateResiliencyPolicy'),+    newUpdateResiliencyPolicy,+    UpdateResiliencyPolicyResponse (UpdateResiliencyPolicyResponse'),+    newUpdateResiliencyPolicyResponse,++    -- * Types++    -- ** AlarmType+    AlarmType (..),++    -- ** AppAssessmentScheduleType+    AppAssessmentScheduleType (..),++    -- ** AppComplianceStatusType+    AppComplianceStatusType (..),++    -- ** AppStatusType+    AppStatusType (..),++    -- ** AssessmentInvoker+    AssessmentInvoker (..),++    -- ** AssessmentStatus+    AssessmentStatus (..),++    -- ** ComplianceStatus+    ComplianceStatus (..),++    -- ** ConfigRecommendationOptimizationType+    ConfigRecommendationOptimizationType (..),++    -- ** CostFrequency+    CostFrequency (..),++    -- ** DataLocationConstraint+    DataLocationConstraint (..),++    -- ** DisruptionType+    DisruptionType (..),++    -- ** EstimatedCostTier+    EstimatedCostTier (..),++    -- ** HaArchitecture+    HaArchitecture (..),++    -- ** PhysicalIdentifierType+    PhysicalIdentifierType (..),++    -- ** RecommendationComplianceStatus+    RecommendationComplianceStatus (..),++    -- ** RecommendationTemplateStatus+    RecommendationTemplateStatus (..),++    -- ** RenderRecommendationType+    RenderRecommendationType (..),++    -- ** ResiliencyPolicyTier+    ResiliencyPolicyTier (..),++    -- ** ResourceImportStatusType+    ResourceImportStatusType (..),++    -- ** ResourceMappingType+    ResourceMappingType (..),++    -- ** ResourceResolutionStatusType+    ResourceResolutionStatusType (..),++    -- ** SopServiceType+    SopServiceType (..),++    -- ** TemplateFormat+    TemplateFormat (..),++    -- ** TestRisk+    TestRisk (..),++    -- ** TestType+    TestType (..),++    -- ** AlarmRecommendation+    AlarmRecommendation (AlarmRecommendation'),+    newAlarmRecommendation,++    -- ** App+    App (App'),+    newApp,++    -- ** AppAssessment+    AppAssessment (AppAssessment'),+    newAppAssessment,++    -- ** AppAssessmentSummary+    AppAssessmentSummary (AppAssessmentSummary'),+    newAppAssessmentSummary,++    -- ** AppComponent+    AppComponent (AppComponent'),+    newAppComponent,++    -- ** AppComponentCompliance+    AppComponentCompliance (AppComponentCompliance'),+    newAppComponentCompliance,++    -- ** AppSummary+    AppSummary (AppSummary'),+    newAppSummary,++    -- ** AppVersionSummary+    AppVersionSummary (AppVersionSummary'),+    newAppVersionSummary,++    -- ** ComponentRecommendation+    ComponentRecommendation (ComponentRecommendation'),+    newComponentRecommendation,++    -- ** ConfigRecommendation+    ConfigRecommendation (ConfigRecommendation'),+    newConfigRecommendation,++    -- ** Cost+    Cost (Cost'),+    newCost,++    -- ** DisruptionCompliance+    DisruptionCompliance (DisruptionCompliance'),+    newDisruptionCompliance,++    -- ** FailurePolicy+    FailurePolicy (FailurePolicy'),+    newFailurePolicy,++    -- ** LogicalResourceId+    LogicalResourceId (LogicalResourceId'),+    newLogicalResourceId,++    -- ** PhysicalResource+    PhysicalResource (PhysicalResource'),+    newPhysicalResource,++    -- ** PhysicalResourceId+    PhysicalResourceId (PhysicalResourceId'),+    newPhysicalResourceId,++    -- ** RecommendationDisruptionCompliance+    RecommendationDisruptionCompliance (RecommendationDisruptionCompliance'),+    newRecommendationDisruptionCompliance,++    -- ** RecommendationItem+    RecommendationItem (RecommendationItem'),+    newRecommendationItem,++    -- ** RecommendationTemplate+    RecommendationTemplate (RecommendationTemplate'),+    newRecommendationTemplate,++    -- ** ResiliencyPolicy+    ResiliencyPolicy (ResiliencyPolicy'),+    newResiliencyPolicy,++    -- ** ResiliencyScore+    ResiliencyScore (ResiliencyScore'),+    newResiliencyScore,++    -- ** ResourceError+    ResourceError (ResourceError'),+    newResourceError,++    -- ** ResourceErrorsDetails+    ResourceErrorsDetails (ResourceErrorsDetails'),+    newResourceErrorsDetails,++    -- ** ResourceMapping+    ResourceMapping (ResourceMapping'),+    newResourceMapping,++    -- ** S3Location+    S3Location (S3Location'),+    newS3Location,++    -- ** SopRecommendation+    SopRecommendation (SopRecommendation'),+    newSopRecommendation,++    -- ** TerraformSource+    TerraformSource (TerraformSource'),+    newTerraformSource,++    -- ** TestRecommendation+    TestRecommendation (TestRecommendation'),+    newTestRecommendation,++    -- ** UnsupportedResource+    UnsupportedResource (UnsupportedResource'),+    newUnsupportedResource,+  )+where++import Amazonka.ResilienceHub.AddDraftAppVersionResourceMappings+import Amazonka.ResilienceHub.CreateApp+import Amazonka.ResilienceHub.CreateRecommendationTemplate+import Amazonka.ResilienceHub.CreateResiliencyPolicy+import Amazonka.ResilienceHub.DeleteApp+import Amazonka.ResilienceHub.DeleteAppAssessment+import Amazonka.ResilienceHub.DeleteRecommendationTemplate+import Amazonka.ResilienceHub.DeleteResiliencyPolicy+import Amazonka.ResilienceHub.DescribeApp+import Amazonka.ResilienceHub.DescribeAppAssessment+import Amazonka.ResilienceHub.DescribeAppVersionResourcesResolutionStatus+import Amazonka.ResilienceHub.DescribeAppVersionTemplate+import Amazonka.ResilienceHub.DescribeDraftAppVersionResourcesImportStatus+import Amazonka.ResilienceHub.DescribeResiliencyPolicy+import Amazonka.ResilienceHub.ImportResourcesToDraftAppVersion+import Amazonka.ResilienceHub.Lens+import Amazonka.ResilienceHub.ListAlarmRecommendations+import Amazonka.ResilienceHub.ListAppAssessments+import Amazonka.ResilienceHub.ListAppComponentCompliances+import Amazonka.ResilienceHub.ListAppComponentRecommendations+import Amazonka.ResilienceHub.ListAppVersionResourceMappings+import Amazonka.ResilienceHub.ListAppVersionResources+import Amazonka.ResilienceHub.ListAppVersions+import Amazonka.ResilienceHub.ListApps+import Amazonka.ResilienceHub.ListRecommendationTemplates+import Amazonka.ResilienceHub.ListResiliencyPolicies+import Amazonka.ResilienceHub.ListSopRecommendations+import Amazonka.ResilienceHub.ListSuggestedResiliencyPolicies+import Amazonka.ResilienceHub.ListTagsForResource+import Amazonka.ResilienceHub.ListTestRecommendations+import Amazonka.ResilienceHub.ListUnsupportedAppVersionResources+import Amazonka.ResilienceHub.PublishAppVersion+import Amazonka.ResilienceHub.PutDraftAppVersionTemplate+import Amazonka.ResilienceHub.RemoveDraftAppVersionResourceMappings+import Amazonka.ResilienceHub.ResolveAppVersionResources+import Amazonka.ResilienceHub.StartAppAssessment+import Amazonka.ResilienceHub.TagResource+import Amazonka.ResilienceHub.Types+import Amazonka.ResilienceHub.UntagResource+import Amazonka.ResilienceHub.UpdateApp+import Amazonka.ResilienceHub.UpdateResiliencyPolicy+import Amazonka.ResilienceHub.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 'ResilienceHub'.++-- $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/ResilienceHub/AddDraftAppVersionResourceMappings.hs view
@@ -0,0 +1,295 @@+{-# 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.ResilienceHub.AddDraftAppVersionResourceMappings+-- 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 the resource mapping for the draft application version.+module Amazonka.ResilienceHub.AddDraftAppVersionResourceMappings+  ( -- * Creating a Request+    AddDraftAppVersionResourceMappings (..),+    newAddDraftAppVersionResourceMappings,++    -- * Request Lenses+    addDraftAppVersionResourceMappings_appArn,+    addDraftAppVersionResourceMappings_resourceMappings,++    -- * Destructuring the Response+    AddDraftAppVersionResourceMappingsResponse (..),+    newAddDraftAppVersionResourceMappingsResponse,++    -- * Response Lenses+    addDraftAppVersionResourceMappingsResponse_httpStatus,+    addDraftAppVersionResourceMappingsResponse_appArn,+    addDraftAppVersionResourceMappingsResponse_appVersion,+    addDraftAppVersionResourceMappingsResponse_resourceMappings,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newAddDraftAppVersionResourceMappings' smart constructor.+data AddDraftAppVersionResourceMappings = AddDraftAppVersionResourceMappings'+  { -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | Mappings used to map logical resources from the template to physical+    -- resources. You can use the mapping type @CFN_STACK@ if the application+    -- template uses a logical stack name. Or you can map individual resources+    -- by using the mapping type @RESOURCE@. We recommend using the mapping+    -- type @CFN_STACK@ if the application is backed by a CloudFormation stack.+    resourceMappings :: [ResourceMapping]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddDraftAppVersionResourceMappings' 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:+--+-- 'appArn', 'addDraftAppVersionResourceMappings_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'resourceMappings', 'addDraftAppVersionResourceMappings_resourceMappings' - Mappings used to map logical resources from the template to physical+-- resources. You can use the mapping type @CFN_STACK@ if the application+-- template uses a logical stack name. Or you can map individual resources+-- by using the mapping type @RESOURCE@. We recommend using the mapping+-- type @CFN_STACK@ if the application is backed by a CloudFormation stack.+newAddDraftAppVersionResourceMappings ::+  -- | 'appArn'+  Prelude.Text ->+  AddDraftAppVersionResourceMappings+newAddDraftAppVersionResourceMappings pAppArn_ =+  AddDraftAppVersionResourceMappings'+    { appArn =+        pAppArn_,+      resourceMappings = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+addDraftAppVersionResourceMappings_appArn :: Lens.Lens' AddDraftAppVersionResourceMappings Prelude.Text+addDraftAppVersionResourceMappings_appArn = Lens.lens (\AddDraftAppVersionResourceMappings' {appArn} -> appArn) (\s@AddDraftAppVersionResourceMappings' {} a -> s {appArn = a} :: AddDraftAppVersionResourceMappings)++-- | Mappings used to map logical resources from the template to physical+-- resources. You can use the mapping type @CFN_STACK@ if the application+-- template uses a logical stack name. Or you can map individual resources+-- by using the mapping type @RESOURCE@. We recommend using the mapping+-- type @CFN_STACK@ if the application is backed by a CloudFormation stack.+addDraftAppVersionResourceMappings_resourceMappings :: Lens.Lens' AddDraftAppVersionResourceMappings [ResourceMapping]+addDraftAppVersionResourceMappings_resourceMappings = Lens.lens (\AddDraftAppVersionResourceMappings' {resourceMappings} -> resourceMappings) (\s@AddDraftAppVersionResourceMappings' {} a -> s {resourceMappings = a} :: AddDraftAppVersionResourceMappings) Prelude.. Lens.coerced++instance+  Core.AWSRequest+    AddDraftAppVersionResourceMappings+  where+  type+    AWSResponse AddDraftAppVersionResourceMappings =+      AddDraftAppVersionResourceMappingsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AddDraftAppVersionResourceMappingsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "appArn")+            Prelude.<*> (x Data..:> "appVersion")+            Prelude.<*> ( x+                            Data..?> "resourceMappings"+                            Core..!@ Prelude.mempty+                        )+      )++instance+  Prelude.Hashable+    AddDraftAppVersionResourceMappings+  where+  hashWithSalt+    _salt+    AddDraftAppVersionResourceMappings' {..} =+      _salt+        `Prelude.hashWithSalt` appArn+        `Prelude.hashWithSalt` resourceMappings++instance+  Prelude.NFData+    AddDraftAppVersionResourceMappings+  where+  rnf AddDraftAppVersionResourceMappings' {..} =+    Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf resourceMappings++instance+  Data.ToHeaders+    AddDraftAppVersionResourceMappings+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    AddDraftAppVersionResourceMappings+  where+  toJSON AddDraftAppVersionResourceMappings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("appArn" Data..= appArn),+            Prelude.Just+              ("resourceMappings" Data..= resourceMappings)+          ]+      )++instance+  Data.ToPath+    AddDraftAppVersionResourceMappings+  where+  toPath =+    Prelude.const+      "/add-draft-app-version-resource-mappings"++instance+  Data.ToQuery+    AddDraftAppVersionResourceMappings+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAddDraftAppVersionResourceMappingsResponse' smart constructor.+data AddDraftAppVersionResourceMappingsResponse = AddDraftAppVersionResourceMappingsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Text,+    -- | Mappings used to map logical resources from the template to physical+    -- resources. You can use the mapping type @CFN_STACK@ if the application+    -- template uses a logical stack name. Or you can map individual resources+    -- by using the mapping type @RESOURCE@. We recommend using the mapping+    -- type @CFN_STACK@ if the application is backed by a CloudFormation stack.+    resourceMappings :: [ResourceMapping]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddDraftAppVersionResourceMappingsResponse' 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', 'addDraftAppVersionResourceMappingsResponse_httpStatus' - The response's http status code.+--+-- 'appArn', 'addDraftAppVersionResourceMappingsResponse_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'addDraftAppVersionResourceMappingsResponse_appVersion' - The version of the application.+--+-- 'resourceMappings', 'addDraftAppVersionResourceMappingsResponse_resourceMappings' - Mappings used to map logical resources from the template to physical+-- resources. You can use the mapping type @CFN_STACK@ if the application+-- template uses a logical stack name. Or you can map individual resources+-- by using the mapping type @RESOURCE@. We recommend using the mapping+-- type @CFN_STACK@ if the application is backed by a CloudFormation stack.+newAddDraftAppVersionResourceMappingsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'appArn'+  Prelude.Text ->+  -- | 'appVersion'+  Prelude.Text ->+  AddDraftAppVersionResourceMappingsResponse+newAddDraftAppVersionResourceMappingsResponse+  pHttpStatus_+  pAppArn_+  pAppVersion_ =+    AddDraftAppVersionResourceMappingsResponse'+      { httpStatus =+          pHttpStatus_,+        appArn = pAppArn_,+        appVersion = pAppVersion_,+        resourceMappings =+          Prelude.mempty+      }++-- | The response's http status code.+addDraftAppVersionResourceMappingsResponse_httpStatus :: Lens.Lens' AddDraftAppVersionResourceMappingsResponse Prelude.Int+addDraftAppVersionResourceMappingsResponse_httpStatus = Lens.lens (\AddDraftAppVersionResourceMappingsResponse' {httpStatus} -> httpStatus) (\s@AddDraftAppVersionResourceMappingsResponse' {} a -> s {httpStatus = a} :: AddDraftAppVersionResourceMappingsResponse)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+addDraftAppVersionResourceMappingsResponse_appArn :: Lens.Lens' AddDraftAppVersionResourceMappingsResponse Prelude.Text+addDraftAppVersionResourceMappingsResponse_appArn = Lens.lens (\AddDraftAppVersionResourceMappingsResponse' {appArn} -> appArn) (\s@AddDraftAppVersionResourceMappingsResponse' {} a -> s {appArn = a} :: AddDraftAppVersionResourceMappingsResponse)++-- | The version of the application.+addDraftAppVersionResourceMappingsResponse_appVersion :: Lens.Lens' AddDraftAppVersionResourceMappingsResponse Prelude.Text+addDraftAppVersionResourceMappingsResponse_appVersion = Lens.lens (\AddDraftAppVersionResourceMappingsResponse' {appVersion} -> appVersion) (\s@AddDraftAppVersionResourceMappingsResponse' {} a -> s {appVersion = a} :: AddDraftAppVersionResourceMappingsResponse)++-- | Mappings used to map logical resources from the template to physical+-- resources. You can use the mapping type @CFN_STACK@ if the application+-- template uses a logical stack name. Or you can map individual resources+-- by using the mapping type @RESOURCE@. We recommend using the mapping+-- type @CFN_STACK@ if the application is backed by a CloudFormation stack.+addDraftAppVersionResourceMappingsResponse_resourceMappings :: Lens.Lens' AddDraftAppVersionResourceMappingsResponse [ResourceMapping]+addDraftAppVersionResourceMappingsResponse_resourceMappings = Lens.lens (\AddDraftAppVersionResourceMappingsResponse' {resourceMappings} -> resourceMappings) (\s@AddDraftAppVersionResourceMappingsResponse' {} a -> s {resourceMappings = a} :: AddDraftAppVersionResourceMappingsResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    AddDraftAppVersionResourceMappingsResponse+  where+  rnf AddDraftAppVersionResourceMappingsResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appVersion+      `Prelude.seq` Prelude.rnf resourceMappings
+ gen/Amazonka/ResilienceHub/CreateApp.hs view
@@ -0,0 +1,276 @@+{-# 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.ResilienceHub.CreateApp+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a Resilience Hub application. A Resilience Hub application is a+-- collection of Amazon Web Services resources structured to prevent and+-- recover Amazon Web Services application disruptions. To describe a+-- Resilience Hub application, you provide an application name, resources+-- from one or more–up to five–CloudFormation stacks, and an appropriate+-- resiliency policy.+--+-- After you create a Resilience Hub application, you publish it so that+-- you can run a resiliency assessment on it. You can then use+-- recommendations from the assessment to improve resiliency by running+-- another assessment, comparing results, and then iterating the process+-- until you achieve your goals for recovery time objective (RTO) and+-- recovery point objective (RPO).+module Amazonka.ResilienceHub.CreateApp+  ( -- * Creating a Request+    CreateApp (..),+    newCreateApp,++    -- * Request Lenses+    createApp_assessmentSchedule,+    createApp_clientToken,+    createApp_description,+    createApp_policyArn,+    createApp_tags,+    createApp_name,++    -- * Destructuring the Response+    CreateAppResponse (..),+    newCreateAppResponse,++    -- * Response Lenses+    createAppResponse_httpStatus,+    createAppResponse_app,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateApp' smart constructor.+data CreateApp = CreateApp'+  { -- | Assessment execution schedule with \'Daily\' or \'Disabled\' values.+    assessmentSchedule :: Prelude.Maybe AppAssessmentScheduleType,+    -- | Used for an idempotency token. A client token is a unique,+    -- case-sensitive string of up to 64 ASCII characters. You should not reuse+    -- the same client token for other API requests.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The optional description for an app.+    description :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+    -- this ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    policyArn :: Prelude.Maybe Prelude.Text,+    -- | The tags assigned to the resource. A tag is a label that you assign to+    -- an Amazon Web Services resource. Each tag consists of a key\/value pair.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The name for the application.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateApp' 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:+--+-- 'assessmentSchedule', 'createApp_assessmentSchedule' - Assessment execution schedule with \'Daily\' or \'Disabled\' values.+--+-- 'clientToken', 'createApp_clientToken' - Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+--+-- 'description', 'createApp_description' - The optional description for an app.+--+-- 'policyArn', 'createApp_policyArn' - The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'tags', 'createApp_tags' - The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+--+-- 'name', 'createApp_name' - The name for the application.+newCreateApp ::+  -- | 'name'+  Prelude.Text ->+  CreateApp+newCreateApp pName_ =+  CreateApp'+    { assessmentSchedule = Prelude.Nothing,+      clientToken = Prelude.Nothing,+      description = Prelude.Nothing,+      policyArn = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_+    }++-- | Assessment execution schedule with \'Daily\' or \'Disabled\' values.+createApp_assessmentSchedule :: Lens.Lens' CreateApp (Prelude.Maybe AppAssessmentScheduleType)+createApp_assessmentSchedule = Lens.lens (\CreateApp' {assessmentSchedule} -> assessmentSchedule) (\s@CreateApp' {} a -> s {assessmentSchedule = a} :: CreateApp)++-- | Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+createApp_clientToken :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Text)+createApp_clientToken = Lens.lens (\CreateApp' {clientToken} -> clientToken) (\s@CreateApp' {} a -> s {clientToken = a} :: CreateApp)++-- | The optional description for an app.+createApp_description :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Text)+createApp_description = Lens.lens (\CreateApp' {description} -> description) (\s@CreateApp' {} a -> s {description = a} :: CreateApp)++-- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+createApp_policyArn :: Lens.Lens' CreateApp (Prelude.Maybe Prelude.Text)+createApp_policyArn = Lens.lens (\CreateApp' {policyArn} -> policyArn) (\s@CreateApp' {} a -> s {policyArn = a} :: CreateApp)++-- | The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+createApp_tags :: Lens.Lens' CreateApp (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createApp_tags = Lens.lens (\CreateApp' {tags} -> tags) (\s@CreateApp' {} a -> s {tags = a} :: CreateApp) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The name for the application.+createApp_name :: Lens.Lens' CreateApp Prelude.Text+createApp_name = Lens.lens (\CreateApp' {name} -> name) (\s@CreateApp' {} a -> s {name = a} :: CreateApp)++instance Core.AWSRequest CreateApp where+  type AWSResponse CreateApp = CreateAppResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateAppResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "app")+      )++instance Prelude.Hashable CreateApp where+  hashWithSalt _salt CreateApp' {..} =+    _salt+      `Prelude.hashWithSalt` assessmentSchedule+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` policyArn+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateApp where+  rnf CreateApp' {..} =+    Prelude.rnf assessmentSchedule+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf policyArn+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateApp where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateApp where+  toJSON CreateApp' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("assessmentSchedule" Data..=)+              Prelude.<$> assessmentSchedule,+            ("clientToken" Data..=) Prelude.<$> clientToken,+            ("description" Data..=) Prelude.<$> description,+            ("policyArn" Data..=) Prelude.<$> policyArn,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateApp where+  toPath = Prelude.const "/create-app"++instance Data.ToQuery CreateApp where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAppResponse' smart constructor.+data CreateAppResponse = CreateAppResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The created application returned as an object with details including+    -- compliance status, creation time, description, resiliency score, and+    -- more.+    app :: App+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAppResponse' 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', 'createAppResponse_httpStatus' - The response's http status code.+--+-- 'app', 'createAppResponse_app' - The created application returned as an object with details including+-- compliance status, creation time, description, resiliency score, and+-- more.+newCreateAppResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'app'+  App ->+  CreateAppResponse+newCreateAppResponse pHttpStatus_ pApp_ =+  CreateAppResponse'+    { httpStatus = pHttpStatus_,+      app = pApp_+    }++-- | The response's http status code.+createAppResponse_httpStatus :: Lens.Lens' CreateAppResponse Prelude.Int+createAppResponse_httpStatus = Lens.lens (\CreateAppResponse' {httpStatus} -> httpStatus) (\s@CreateAppResponse' {} a -> s {httpStatus = a} :: CreateAppResponse)++-- | The created application returned as an object with details including+-- compliance status, creation time, description, resiliency score, and+-- more.+createAppResponse_app :: Lens.Lens' CreateAppResponse App+createAppResponse_app = Lens.lens (\CreateAppResponse' {app} -> app) (\s@CreateAppResponse' {} a -> s {app = a} :: CreateAppResponse)++instance Prelude.NFData CreateAppResponse where+  rnf CreateAppResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf app
+ gen/Amazonka/ResilienceHub/CreateRecommendationTemplate.hs view
@@ -0,0 +1,358 @@+{-# 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.ResilienceHub.CreateRecommendationTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new recommendation template.+module Amazonka.ResilienceHub.CreateRecommendationTemplate+  ( -- * Creating a Request+    CreateRecommendationTemplate (..),+    newCreateRecommendationTemplate,++    -- * Request Lenses+    createRecommendationTemplate_bucketName,+    createRecommendationTemplate_clientToken,+    createRecommendationTemplate_format,+    createRecommendationTemplate_recommendationIds,+    createRecommendationTemplate_recommendationTypes,+    createRecommendationTemplate_tags,+    createRecommendationTemplate_assessmentArn,+    createRecommendationTemplate_name,++    -- * Destructuring the Response+    CreateRecommendationTemplateResponse (..),+    newCreateRecommendationTemplateResponse,++    -- * Response Lenses+    createRecommendationTemplateResponse_recommendationTemplate,+    createRecommendationTemplateResponse_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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateRecommendationTemplate' smart constructor.+data CreateRecommendationTemplate = CreateRecommendationTemplate'+  { -- | The name of the Amazon S3 bucket that will contain the recommendation+    -- template.+    bucketName :: Prelude.Maybe Prelude.Text,+    -- | Used for an idempotency token. A client token is a unique,+    -- case-sensitive string of up to 64 ASCII characters. You should not reuse+    -- the same client token for other API requests.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The format for the recommendation template.+    --+    -- [CfnJson]+    --     The template is CloudFormation JSON.+    --+    -- [CfnYaml]+    --     The template is CloudFormation YAML.+    format :: Prelude.Maybe TemplateFormat,+    -- | Identifiers for the recommendations used to create a recommendation+    -- template.+    recommendationIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | An array of strings that specify the recommendation template type or+    -- types.+    --+    -- [Alarm]+    --     The template is an AlarmRecommendation template.+    --+    -- [Sop]+    --     The template is a SopRecommendation template.+    --+    -- [Test]+    --     The template is a TestRecommendation template.+    recommendationTypes :: Prelude.Maybe (Prelude.NonEmpty RenderRecommendationType),+    -- | The tags assigned to the resource. A tag is a label that you assign to+    -- an Amazon Web Services resource. Each tag consists of a key\/value pair.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The Amazon Resource Name (ARN) of the assessment. The format for this+    -- ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    assessmentArn :: Prelude.Text,+    -- | The name for the recommendation template.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRecommendationTemplate' 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:+--+-- 'bucketName', 'createRecommendationTemplate_bucketName' - The name of the Amazon S3 bucket that will contain the recommendation+-- template.+--+-- 'clientToken', 'createRecommendationTemplate_clientToken' - Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+--+-- 'format', 'createRecommendationTemplate_format' - The format for the recommendation template.+--+-- [CfnJson]+--     The template is CloudFormation JSON.+--+-- [CfnYaml]+--     The template is CloudFormation YAML.+--+-- 'recommendationIds', 'createRecommendationTemplate_recommendationIds' - Identifiers for the recommendations used to create a recommendation+-- template.+--+-- 'recommendationTypes', 'createRecommendationTemplate_recommendationTypes' - An array of strings that specify the recommendation template type or+-- types.+--+-- [Alarm]+--     The template is an AlarmRecommendation template.+--+-- [Sop]+--     The template is a SopRecommendation template.+--+-- [Test]+--     The template is a TestRecommendation template.+--+-- 'tags', 'createRecommendationTemplate_tags' - The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+--+-- 'assessmentArn', 'createRecommendationTemplate_assessmentArn' - The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'name', 'createRecommendationTemplate_name' - The name for the recommendation template.+newCreateRecommendationTemplate ::+  -- | 'assessmentArn'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  CreateRecommendationTemplate+newCreateRecommendationTemplate+  pAssessmentArn_+  pName_ =+    CreateRecommendationTemplate'+      { bucketName =+          Prelude.Nothing,+        clientToken = Prelude.Nothing,+        format = Prelude.Nothing,+        recommendationIds = Prelude.Nothing,+        recommendationTypes = Prelude.Nothing,+        tags = Prelude.Nothing,+        assessmentArn = pAssessmentArn_,+        name = pName_+      }++-- | The name of the Amazon S3 bucket that will contain the recommendation+-- template.+createRecommendationTemplate_bucketName :: Lens.Lens' CreateRecommendationTemplate (Prelude.Maybe Prelude.Text)+createRecommendationTemplate_bucketName = Lens.lens (\CreateRecommendationTemplate' {bucketName} -> bucketName) (\s@CreateRecommendationTemplate' {} a -> s {bucketName = a} :: CreateRecommendationTemplate)++-- | Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+createRecommendationTemplate_clientToken :: Lens.Lens' CreateRecommendationTemplate (Prelude.Maybe Prelude.Text)+createRecommendationTemplate_clientToken = Lens.lens (\CreateRecommendationTemplate' {clientToken} -> clientToken) (\s@CreateRecommendationTemplate' {} a -> s {clientToken = a} :: CreateRecommendationTemplate)++-- | The format for the recommendation template.+--+-- [CfnJson]+--     The template is CloudFormation JSON.+--+-- [CfnYaml]+--     The template is CloudFormation YAML.+createRecommendationTemplate_format :: Lens.Lens' CreateRecommendationTemplate (Prelude.Maybe TemplateFormat)+createRecommendationTemplate_format = Lens.lens (\CreateRecommendationTemplate' {format} -> format) (\s@CreateRecommendationTemplate' {} a -> s {format = a} :: CreateRecommendationTemplate)++-- | Identifiers for the recommendations used to create a recommendation+-- template.+createRecommendationTemplate_recommendationIds :: Lens.Lens' CreateRecommendationTemplate (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+createRecommendationTemplate_recommendationIds = Lens.lens (\CreateRecommendationTemplate' {recommendationIds} -> recommendationIds) (\s@CreateRecommendationTemplate' {} a -> s {recommendationIds = a} :: CreateRecommendationTemplate) Prelude.. Lens.mapping Lens.coerced++-- | An array of strings that specify the recommendation template type or+-- types.+--+-- [Alarm]+--     The template is an AlarmRecommendation template.+--+-- [Sop]+--     The template is a SopRecommendation template.+--+-- [Test]+--     The template is a TestRecommendation template.+createRecommendationTemplate_recommendationTypes :: Lens.Lens' CreateRecommendationTemplate (Prelude.Maybe (Prelude.NonEmpty RenderRecommendationType))+createRecommendationTemplate_recommendationTypes = Lens.lens (\CreateRecommendationTemplate' {recommendationTypes} -> recommendationTypes) (\s@CreateRecommendationTemplate' {} a -> s {recommendationTypes = a} :: CreateRecommendationTemplate) Prelude.. Lens.mapping Lens.coerced++-- | The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+createRecommendationTemplate_tags :: Lens.Lens' CreateRecommendationTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createRecommendationTemplate_tags = Lens.lens (\CreateRecommendationTemplate' {tags} -> tags) (\s@CreateRecommendationTemplate' {} a -> s {tags = a} :: CreateRecommendationTemplate) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+createRecommendationTemplate_assessmentArn :: Lens.Lens' CreateRecommendationTemplate Prelude.Text+createRecommendationTemplate_assessmentArn = Lens.lens (\CreateRecommendationTemplate' {assessmentArn} -> assessmentArn) (\s@CreateRecommendationTemplate' {} a -> s {assessmentArn = a} :: CreateRecommendationTemplate)++-- | The name for the recommendation template.+createRecommendationTemplate_name :: Lens.Lens' CreateRecommendationTemplate Prelude.Text+createRecommendationTemplate_name = Lens.lens (\CreateRecommendationTemplate' {name} -> name) (\s@CreateRecommendationTemplate' {} a -> s {name = a} :: CreateRecommendationTemplate)++instance Core.AWSRequest CreateRecommendationTemplate where+  type+    AWSResponse CreateRecommendationTemplate =+      CreateRecommendationTemplateResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateRecommendationTemplateResponse'+            Prelude.<$> (x Data..?> "recommendationTemplate")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    CreateRecommendationTemplate+  where+  hashWithSalt _salt CreateRecommendationTemplate' {..} =+    _salt+      `Prelude.hashWithSalt` bucketName+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` format+      `Prelude.hashWithSalt` recommendationIds+      `Prelude.hashWithSalt` recommendationTypes+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` assessmentArn+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateRecommendationTemplate where+  rnf CreateRecommendationTemplate' {..} =+    Prelude.rnf bucketName+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf format+      `Prelude.seq` Prelude.rnf recommendationIds+      `Prelude.seq` Prelude.rnf recommendationTypes+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf assessmentArn+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateRecommendationTemplate where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateRecommendationTemplate where+  toJSON CreateRecommendationTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("bucketName" Data..=) Prelude.<$> bucketName,+            ("clientToken" Data..=) Prelude.<$> clientToken,+            ("format" Data..=) Prelude.<$> format,+            ("recommendationIds" Data..=)+              Prelude.<$> recommendationIds,+            ("recommendationTypes" Data..=)+              Prelude.<$> recommendationTypes,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("assessmentArn" Data..= assessmentArn),+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateRecommendationTemplate where+  toPath =+    Prelude.const "/create-recommendation-template"++instance Data.ToQuery CreateRecommendationTemplate where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateRecommendationTemplateResponse' smart constructor.+data CreateRecommendationTemplateResponse = CreateRecommendationTemplateResponse'+  { -- | The newly created recommendation template, returned as an object. This+    -- object includes the template\'s name, format, status, tags, Amazon S3+    -- bucket location, and more.+    recommendationTemplate :: Prelude.Maybe RecommendationTemplate,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRecommendationTemplateResponse' 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:+--+-- 'recommendationTemplate', 'createRecommendationTemplateResponse_recommendationTemplate' - The newly created recommendation template, returned as an object. This+-- object includes the template\'s name, format, status, tags, Amazon S3+-- bucket location, and more.+--+-- 'httpStatus', 'createRecommendationTemplateResponse_httpStatus' - The response's http status code.+newCreateRecommendationTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateRecommendationTemplateResponse+newCreateRecommendationTemplateResponse pHttpStatus_ =+  CreateRecommendationTemplateResponse'+    { recommendationTemplate =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The newly created recommendation template, returned as an object. This+-- object includes the template\'s name, format, status, tags, Amazon S3+-- bucket location, and more.+createRecommendationTemplateResponse_recommendationTemplate :: Lens.Lens' CreateRecommendationTemplateResponse (Prelude.Maybe RecommendationTemplate)+createRecommendationTemplateResponse_recommendationTemplate = Lens.lens (\CreateRecommendationTemplateResponse' {recommendationTemplate} -> recommendationTemplate) (\s@CreateRecommendationTemplateResponse' {} a -> s {recommendationTemplate = a} :: CreateRecommendationTemplateResponse)++-- | The response's http status code.+createRecommendationTemplateResponse_httpStatus :: Lens.Lens' CreateRecommendationTemplateResponse Prelude.Int+createRecommendationTemplateResponse_httpStatus = Lens.lens (\CreateRecommendationTemplateResponse' {httpStatus} -> httpStatus) (\s@CreateRecommendationTemplateResponse' {} a -> s {httpStatus = a} :: CreateRecommendationTemplateResponse)++instance+  Prelude.NFData+    CreateRecommendationTemplateResponse+  where+  rnf CreateRecommendationTemplateResponse' {..} =+    Prelude.rnf recommendationTemplate+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResilienceHub/CreateResiliencyPolicy.hs view
@@ -0,0 +1,280 @@+{-# 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.ResilienceHub.CreateResiliencyPolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a resiliency policy for an application.+module Amazonka.ResilienceHub.CreateResiliencyPolicy+  ( -- * Creating a Request+    CreateResiliencyPolicy (..),+    newCreateResiliencyPolicy,++    -- * Request Lenses+    createResiliencyPolicy_clientToken,+    createResiliencyPolicy_dataLocationConstraint,+    createResiliencyPolicy_policyDescription,+    createResiliencyPolicy_tags,+    createResiliencyPolicy_policy,+    createResiliencyPolicy_policyName,+    createResiliencyPolicy_tier,++    -- * Destructuring the Response+    CreateResiliencyPolicyResponse (..),+    newCreateResiliencyPolicyResponse,++    -- * Response Lenses+    createResiliencyPolicyResponse_httpStatus,+    createResiliencyPolicyResponse_policy,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateResiliencyPolicy' smart constructor.+data CreateResiliencyPolicy = CreateResiliencyPolicy'+  { -- | Used for an idempotency token. A client token is a unique,+    -- case-sensitive string of up to 64 ASCII characters. You should not reuse+    -- the same client token for other API requests.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | Specifies a high-level geographical location constraint for where your+    -- resilience policy data can be stored.+    dataLocationConstraint :: Prelude.Maybe DataLocationConstraint,+    -- | The description for the policy.+    policyDescription :: Prelude.Maybe Prelude.Text,+    -- | The tags assigned to the resource. A tag is a label that you assign to+    -- an Amazon Web Services resource. Each tag consists of a key\/value pair.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The type of resiliency policy to be created, including the recovery time+    -- objective (RTO) and recovery point objective (RPO) in seconds.+    policy :: Prelude.HashMap DisruptionType FailurePolicy,+    -- | The name of the policy+    policyName :: Prelude.Text,+    -- | The tier for this resiliency policy, ranging from the highest severity+    -- (@MissionCritical@) to lowest (@NonCritical@).+    tier :: ResiliencyPolicyTier+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateResiliencyPolicy' 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:+--+-- 'clientToken', 'createResiliencyPolicy_clientToken' - Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+--+-- 'dataLocationConstraint', 'createResiliencyPolicy_dataLocationConstraint' - Specifies a high-level geographical location constraint for where your+-- resilience policy data can be stored.+--+-- 'policyDescription', 'createResiliencyPolicy_policyDescription' - The description for the policy.+--+-- 'tags', 'createResiliencyPolicy_tags' - The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+--+-- 'policy', 'createResiliencyPolicy_policy' - The type of resiliency policy to be created, including the recovery time+-- objective (RTO) and recovery point objective (RPO) in seconds.+--+-- 'policyName', 'createResiliencyPolicy_policyName' - The name of the policy+--+-- 'tier', 'createResiliencyPolicy_tier' - The tier for this resiliency policy, ranging from the highest severity+-- (@MissionCritical@) to lowest (@NonCritical@).+newCreateResiliencyPolicy ::+  -- | 'policyName'+  Prelude.Text ->+  -- | 'tier'+  ResiliencyPolicyTier ->+  CreateResiliencyPolicy+newCreateResiliencyPolicy pPolicyName_ pTier_ =+  CreateResiliencyPolicy'+    { clientToken =+        Prelude.Nothing,+      dataLocationConstraint = Prelude.Nothing,+      policyDescription = Prelude.Nothing,+      tags = Prelude.Nothing,+      policy = Prelude.mempty,+      policyName = pPolicyName_,+      tier = pTier_+    }++-- | Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+createResiliencyPolicy_clientToken :: Lens.Lens' CreateResiliencyPolicy (Prelude.Maybe Prelude.Text)+createResiliencyPolicy_clientToken = Lens.lens (\CreateResiliencyPolicy' {clientToken} -> clientToken) (\s@CreateResiliencyPolicy' {} a -> s {clientToken = a} :: CreateResiliencyPolicy)++-- | Specifies a high-level geographical location constraint for where your+-- resilience policy data can be stored.+createResiliencyPolicy_dataLocationConstraint :: Lens.Lens' CreateResiliencyPolicy (Prelude.Maybe DataLocationConstraint)+createResiliencyPolicy_dataLocationConstraint = Lens.lens (\CreateResiliencyPolicy' {dataLocationConstraint} -> dataLocationConstraint) (\s@CreateResiliencyPolicy' {} a -> s {dataLocationConstraint = a} :: CreateResiliencyPolicy)++-- | The description for the policy.+createResiliencyPolicy_policyDescription :: Lens.Lens' CreateResiliencyPolicy (Prelude.Maybe Prelude.Text)+createResiliencyPolicy_policyDescription = Lens.lens (\CreateResiliencyPolicy' {policyDescription} -> policyDescription) (\s@CreateResiliencyPolicy' {} a -> s {policyDescription = a} :: CreateResiliencyPolicy)++-- | The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+createResiliencyPolicy_tags :: Lens.Lens' CreateResiliencyPolicy (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createResiliencyPolicy_tags = Lens.lens (\CreateResiliencyPolicy' {tags} -> tags) (\s@CreateResiliencyPolicy' {} a -> s {tags = a} :: CreateResiliencyPolicy) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The type of resiliency policy to be created, including the recovery time+-- objective (RTO) and recovery point objective (RPO) in seconds.+createResiliencyPolicy_policy :: Lens.Lens' CreateResiliencyPolicy (Prelude.HashMap DisruptionType FailurePolicy)+createResiliencyPolicy_policy = Lens.lens (\CreateResiliencyPolicy' {policy} -> policy) (\s@CreateResiliencyPolicy' {} a -> s {policy = a} :: CreateResiliencyPolicy) Prelude.. Lens.coerced++-- | The name of the policy+createResiliencyPolicy_policyName :: Lens.Lens' CreateResiliencyPolicy Prelude.Text+createResiliencyPolicy_policyName = Lens.lens (\CreateResiliencyPolicy' {policyName} -> policyName) (\s@CreateResiliencyPolicy' {} a -> s {policyName = a} :: CreateResiliencyPolicy)++-- | The tier for this resiliency policy, ranging from the highest severity+-- (@MissionCritical@) to lowest (@NonCritical@).+createResiliencyPolicy_tier :: Lens.Lens' CreateResiliencyPolicy ResiliencyPolicyTier+createResiliencyPolicy_tier = Lens.lens (\CreateResiliencyPolicy' {tier} -> tier) (\s@CreateResiliencyPolicy' {} a -> s {tier = a} :: CreateResiliencyPolicy)++instance Core.AWSRequest CreateResiliencyPolicy where+  type+    AWSResponse CreateResiliencyPolicy =+      CreateResiliencyPolicyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateResiliencyPolicyResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "policy")+      )++instance Prelude.Hashable CreateResiliencyPolicy where+  hashWithSalt _salt CreateResiliencyPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` dataLocationConstraint+      `Prelude.hashWithSalt` policyDescription+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` policy+      `Prelude.hashWithSalt` policyName+      `Prelude.hashWithSalt` tier++instance Prelude.NFData CreateResiliencyPolicy where+  rnf CreateResiliencyPolicy' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf dataLocationConstraint+      `Prelude.seq` Prelude.rnf policyDescription+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf policy+      `Prelude.seq` Prelude.rnf policyName+      `Prelude.seq` Prelude.rnf tier++instance Data.ToHeaders CreateResiliencyPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateResiliencyPolicy where+  toJSON CreateResiliencyPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("dataLocationConstraint" Data..=)+              Prelude.<$> dataLocationConstraint,+            ("policyDescription" Data..=)+              Prelude.<$> policyDescription,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("policy" Data..= policy),+            Prelude.Just ("policyName" Data..= policyName),+            Prelude.Just ("tier" Data..= tier)+          ]+      )++instance Data.ToPath CreateResiliencyPolicy where+  toPath = Prelude.const "/create-resiliency-policy"++instance Data.ToQuery CreateResiliencyPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateResiliencyPolicyResponse' smart constructor.+data CreateResiliencyPolicyResponse = CreateResiliencyPolicyResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The type of resiliency policy that was created, including the recovery+    -- time objective (RTO) and recovery point objective (RPO) in seconds.+    policy :: ResiliencyPolicy+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateResiliencyPolicyResponse' 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', 'createResiliencyPolicyResponse_httpStatus' - The response's http status code.+--+-- 'policy', 'createResiliencyPolicyResponse_policy' - The type of resiliency policy that was created, including the recovery+-- time objective (RTO) and recovery point objective (RPO) in seconds.+newCreateResiliencyPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'policy'+  ResiliencyPolicy ->+  CreateResiliencyPolicyResponse+newCreateResiliencyPolicyResponse+  pHttpStatus_+  pPolicy_ =+    CreateResiliencyPolicyResponse'+      { httpStatus =+          pHttpStatus_,+        policy = pPolicy_+      }++-- | The response's http status code.+createResiliencyPolicyResponse_httpStatus :: Lens.Lens' CreateResiliencyPolicyResponse Prelude.Int+createResiliencyPolicyResponse_httpStatus = Lens.lens (\CreateResiliencyPolicyResponse' {httpStatus} -> httpStatus) (\s@CreateResiliencyPolicyResponse' {} a -> s {httpStatus = a} :: CreateResiliencyPolicyResponse)++-- | The type of resiliency policy that was created, including the recovery+-- time objective (RTO) and recovery point objective (RPO) in seconds.+createResiliencyPolicyResponse_policy :: Lens.Lens' CreateResiliencyPolicyResponse ResiliencyPolicy+createResiliencyPolicyResponse_policy = Lens.lens (\CreateResiliencyPolicyResponse' {policy} -> policy) (\s@CreateResiliencyPolicyResponse' {} a -> s {policy = a} :: CreateResiliencyPolicyResponse)++instance+  Prelude.NFData+    CreateResiliencyPolicyResponse+  where+  rnf CreateResiliencyPolicyResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf policy
+ gen/Amazonka/ResilienceHub/DeleteApp.hs view
@@ -0,0 +1,225 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResilienceHub.DeleteApp+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an AWS Resilience Hub application. This is a destructive action+-- that can\'t be undone.+module Amazonka.ResilienceHub.DeleteApp+  ( -- * Creating a Request+    DeleteApp (..),+    newDeleteApp,++    -- * Request Lenses+    deleteApp_clientToken,+    deleteApp_forceDelete,+    deleteApp_appArn,++    -- * Destructuring the Response+    DeleteAppResponse (..),+    newDeleteAppResponse,++    -- * Response Lenses+    deleteAppResponse_httpStatus,+    deleteAppResponse_appArn,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteApp' smart constructor.+data DeleteApp = DeleteApp'+  { -- | Used for an idempotency token. A client token is a unique,+    -- case-sensitive string of up to 64 ASCII characters. You should not reuse+    -- the same client token for other API requests.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A boolean option to force the deletion of a Resilience Hub application.+    forceDelete :: Prelude.Maybe Prelude.Bool,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteApp' 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:+--+-- 'clientToken', 'deleteApp_clientToken' - Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+--+-- 'forceDelete', 'deleteApp_forceDelete' - A boolean option to force the deletion of a Resilience Hub application.+--+-- 'appArn', 'deleteApp_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newDeleteApp ::+  -- | 'appArn'+  Prelude.Text ->+  DeleteApp+newDeleteApp pAppArn_ =+  DeleteApp'+    { clientToken = Prelude.Nothing,+      forceDelete = Prelude.Nothing,+      appArn = pAppArn_+    }++-- | Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+deleteApp_clientToken :: Lens.Lens' DeleteApp (Prelude.Maybe Prelude.Text)+deleteApp_clientToken = Lens.lens (\DeleteApp' {clientToken} -> clientToken) (\s@DeleteApp' {} a -> s {clientToken = a} :: DeleteApp)++-- | A boolean option to force the deletion of a Resilience Hub application.+deleteApp_forceDelete :: Lens.Lens' DeleteApp (Prelude.Maybe Prelude.Bool)+deleteApp_forceDelete = Lens.lens (\DeleteApp' {forceDelete} -> forceDelete) (\s@DeleteApp' {} a -> s {forceDelete = a} :: DeleteApp)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+deleteApp_appArn :: Lens.Lens' DeleteApp Prelude.Text+deleteApp_appArn = Lens.lens (\DeleteApp' {appArn} -> appArn) (\s@DeleteApp' {} a -> s {appArn = a} :: DeleteApp)++instance Core.AWSRequest DeleteApp where+  type AWSResponse DeleteApp = DeleteAppResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteAppResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "appArn")+      )++instance Prelude.Hashable DeleteApp where+  hashWithSalt _salt DeleteApp' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` forceDelete+      `Prelude.hashWithSalt` appArn++instance Prelude.NFData DeleteApp where+  rnf DeleteApp' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf forceDelete+      `Prelude.seq` Prelude.rnf appArn++instance Data.ToHeaders DeleteApp where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteApp where+  toJSON DeleteApp' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("forceDelete" Data..=) Prelude.<$> forceDelete,+            Prelude.Just ("appArn" Data..= appArn)+          ]+      )++instance Data.ToPath DeleteApp where+  toPath = Prelude.const "/delete-app"++instance Data.ToQuery DeleteApp where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAppResponse' smart constructor.+data DeleteAppResponse = DeleteAppResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAppResponse' 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', 'deleteAppResponse_httpStatus' - The response's http status code.+--+-- 'appArn', 'deleteAppResponse_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newDeleteAppResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'appArn'+  Prelude.Text ->+  DeleteAppResponse+newDeleteAppResponse pHttpStatus_ pAppArn_ =+  DeleteAppResponse'+    { httpStatus = pHttpStatus_,+      appArn = pAppArn_+    }++-- | The response's http status code.+deleteAppResponse_httpStatus :: Lens.Lens' DeleteAppResponse Prelude.Int+deleteAppResponse_httpStatus = Lens.lens (\DeleteAppResponse' {httpStatus} -> httpStatus) (\s@DeleteAppResponse' {} a -> s {httpStatus = a} :: DeleteAppResponse)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+deleteAppResponse_appArn :: Lens.Lens' DeleteAppResponse Prelude.Text+deleteAppResponse_appArn = Lens.lens (\DeleteAppResponse' {appArn} -> appArn) (\s@DeleteAppResponse' {} a -> s {appArn = a} :: DeleteAppResponse)++instance Prelude.NFData DeleteAppResponse where+  rnf DeleteAppResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf appArn
+ gen/Amazonka/ResilienceHub/DeleteAppAssessment.hs view
@@ -0,0 +1,239 @@+{-# 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.ResilienceHub.DeleteAppAssessment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an AWS Resilience Hub application assessment. This is a+-- destructive action that can\'t be undone.+module Amazonka.ResilienceHub.DeleteAppAssessment+  ( -- * Creating a Request+    DeleteAppAssessment (..),+    newDeleteAppAssessment,++    -- * Request Lenses+    deleteAppAssessment_clientToken,+    deleteAppAssessment_assessmentArn,++    -- * Destructuring the Response+    DeleteAppAssessmentResponse (..),+    newDeleteAppAssessmentResponse,++    -- * Response Lenses+    deleteAppAssessmentResponse_httpStatus,+    deleteAppAssessmentResponse_assessmentArn,+    deleteAppAssessmentResponse_assessmentStatus,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteAppAssessment' smart constructor.+data DeleteAppAssessment = DeleteAppAssessment'+  { -- | Used for an idempotency token. A client token is a unique,+    -- case-sensitive string of up to 64 ASCII characters. You should not reuse+    -- the same client token for other API requests.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the assessment. The format for this+    -- ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    assessmentArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAppAssessment' 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:+--+-- 'clientToken', 'deleteAppAssessment_clientToken' - Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+--+-- 'assessmentArn', 'deleteAppAssessment_assessmentArn' - The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newDeleteAppAssessment ::+  -- | 'assessmentArn'+  Prelude.Text ->+  DeleteAppAssessment+newDeleteAppAssessment pAssessmentArn_ =+  DeleteAppAssessment'+    { clientToken = Prelude.Nothing,+      assessmentArn = pAssessmentArn_+    }++-- | Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+deleteAppAssessment_clientToken :: Lens.Lens' DeleteAppAssessment (Prelude.Maybe Prelude.Text)+deleteAppAssessment_clientToken = Lens.lens (\DeleteAppAssessment' {clientToken} -> clientToken) (\s@DeleteAppAssessment' {} a -> s {clientToken = a} :: DeleteAppAssessment)++-- | The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+deleteAppAssessment_assessmentArn :: Lens.Lens' DeleteAppAssessment Prelude.Text+deleteAppAssessment_assessmentArn = Lens.lens (\DeleteAppAssessment' {assessmentArn} -> assessmentArn) (\s@DeleteAppAssessment' {} a -> s {assessmentArn = a} :: DeleteAppAssessment)++instance Core.AWSRequest DeleteAppAssessment where+  type+    AWSResponse DeleteAppAssessment =+      DeleteAppAssessmentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteAppAssessmentResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "assessmentArn")+            Prelude.<*> (x Data..:> "assessmentStatus")+      )++instance Prelude.Hashable DeleteAppAssessment where+  hashWithSalt _salt DeleteAppAssessment' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` assessmentArn++instance Prelude.NFData DeleteAppAssessment where+  rnf DeleteAppAssessment' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf assessmentArn++instance Data.ToHeaders DeleteAppAssessment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteAppAssessment where+  toJSON DeleteAppAssessment' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            Prelude.Just+              ("assessmentArn" Data..= assessmentArn)+          ]+      )++instance Data.ToPath DeleteAppAssessment where+  toPath = Prelude.const "/delete-app-assessment"++instance Data.ToQuery DeleteAppAssessment where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAppAssessmentResponse' smart constructor.+data DeleteAppAssessmentResponse = DeleteAppAssessmentResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The Amazon Resource Name (ARN) of the assessment. The format for this+    -- ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    assessmentArn :: Prelude.Text,+    -- | The current status of the assessment for the resiliency policy.+    assessmentStatus :: AssessmentStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAppAssessmentResponse' 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', 'deleteAppAssessmentResponse_httpStatus' - The response's http status code.+--+-- 'assessmentArn', 'deleteAppAssessmentResponse_assessmentArn' - The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'assessmentStatus', 'deleteAppAssessmentResponse_assessmentStatus' - The current status of the assessment for the resiliency policy.+newDeleteAppAssessmentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'assessmentArn'+  Prelude.Text ->+  -- | 'assessmentStatus'+  AssessmentStatus ->+  DeleteAppAssessmentResponse+newDeleteAppAssessmentResponse+  pHttpStatus_+  pAssessmentArn_+  pAssessmentStatus_ =+    DeleteAppAssessmentResponse'+      { httpStatus =+          pHttpStatus_,+        assessmentArn = pAssessmentArn_,+        assessmentStatus = pAssessmentStatus_+      }++-- | The response's http status code.+deleteAppAssessmentResponse_httpStatus :: Lens.Lens' DeleteAppAssessmentResponse Prelude.Int+deleteAppAssessmentResponse_httpStatus = Lens.lens (\DeleteAppAssessmentResponse' {httpStatus} -> httpStatus) (\s@DeleteAppAssessmentResponse' {} a -> s {httpStatus = a} :: DeleteAppAssessmentResponse)++-- | The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+deleteAppAssessmentResponse_assessmentArn :: Lens.Lens' DeleteAppAssessmentResponse Prelude.Text+deleteAppAssessmentResponse_assessmentArn = Lens.lens (\DeleteAppAssessmentResponse' {assessmentArn} -> assessmentArn) (\s@DeleteAppAssessmentResponse' {} a -> s {assessmentArn = a} :: DeleteAppAssessmentResponse)++-- | The current status of the assessment for the resiliency policy.+deleteAppAssessmentResponse_assessmentStatus :: Lens.Lens' DeleteAppAssessmentResponse AssessmentStatus+deleteAppAssessmentResponse_assessmentStatus = Lens.lens (\DeleteAppAssessmentResponse' {assessmentStatus} -> assessmentStatus) (\s@DeleteAppAssessmentResponse' {} a -> s {assessmentStatus = a} :: DeleteAppAssessmentResponse)++instance Prelude.NFData DeleteAppAssessmentResponse where+  rnf DeleteAppAssessmentResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf assessmentArn+      `Prelude.seq` Prelude.rnf assessmentStatus
+ gen/Amazonka/ResilienceHub/DeleteRecommendationTemplate.hs view
@@ -0,0 +1,222 @@+{-# 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.ResilienceHub.DeleteRecommendationTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a recommendation template. This is a destructive action that+-- can\'t be undone.+module Amazonka.ResilienceHub.DeleteRecommendationTemplate+  ( -- * Creating a Request+    DeleteRecommendationTemplate (..),+    newDeleteRecommendationTemplate,++    -- * Request Lenses+    deleteRecommendationTemplate_clientToken,+    deleteRecommendationTemplate_recommendationTemplateArn,++    -- * Destructuring the Response+    DeleteRecommendationTemplateResponse (..),+    newDeleteRecommendationTemplateResponse,++    -- * Response Lenses+    deleteRecommendationTemplateResponse_httpStatus,+    deleteRecommendationTemplateResponse_recommendationTemplateArn,+    deleteRecommendationTemplateResponse_status,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteRecommendationTemplate' smart constructor.+data DeleteRecommendationTemplate = DeleteRecommendationTemplate'+  { -- | Used for an idempotency token. A client token is a unique,+    -- case-sensitive string of up to 64 ASCII characters. You should not reuse+    -- the same client token for other API requests.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) for a recommendation template.+    recommendationTemplateArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRecommendationTemplate' 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:+--+-- 'clientToken', 'deleteRecommendationTemplate_clientToken' - Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+--+-- 'recommendationTemplateArn', 'deleteRecommendationTemplate_recommendationTemplateArn' - The Amazon Resource Name (ARN) for a recommendation template.+newDeleteRecommendationTemplate ::+  -- | 'recommendationTemplateArn'+  Prelude.Text ->+  DeleteRecommendationTemplate+newDeleteRecommendationTemplate+  pRecommendationTemplateArn_ =+    DeleteRecommendationTemplate'+      { clientToken =+          Prelude.Nothing,+        recommendationTemplateArn =+          pRecommendationTemplateArn_+      }++-- | Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+deleteRecommendationTemplate_clientToken :: Lens.Lens' DeleteRecommendationTemplate (Prelude.Maybe Prelude.Text)+deleteRecommendationTemplate_clientToken = Lens.lens (\DeleteRecommendationTemplate' {clientToken} -> clientToken) (\s@DeleteRecommendationTemplate' {} a -> s {clientToken = a} :: DeleteRecommendationTemplate)++-- | The Amazon Resource Name (ARN) for a recommendation template.+deleteRecommendationTemplate_recommendationTemplateArn :: Lens.Lens' DeleteRecommendationTemplate Prelude.Text+deleteRecommendationTemplate_recommendationTemplateArn = Lens.lens (\DeleteRecommendationTemplate' {recommendationTemplateArn} -> recommendationTemplateArn) (\s@DeleteRecommendationTemplate' {} a -> s {recommendationTemplateArn = a} :: DeleteRecommendationTemplate)++instance Core.AWSRequest DeleteRecommendationTemplate where+  type+    AWSResponse DeleteRecommendationTemplate =+      DeleteRecommendationTemplateResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteRecommendationTemplateResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "recommendationTemplateArn")+            Prelude.<*> (x Data..:> "status")+      )++instance+  Prelude.Hashable+    DeleteRecommendationTemplate+  where+  hashWithSalt _salt DeleteRecommendationTemplate' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` recommendationTemplateArn++instance Prelude.NFData DeleteRecommendationTemplate where+  rnf DeleteRecommendationTemplate' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf recommendationTemplateArn++instance Data.ToHeaders DeleteRecommendationTemplate where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteRecommendationTemplate where+  toJSON DeleteRecommendationTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            Prelude.Just+              ( "recommendationTemplateArn"+                  Data..= recommendationTemplateArn+              )+          ]+      )++instance Data.ToPath DeleteRecommendationTemplate where+  toPath =+    Prelude.const "/delete-recommendation-template"++instance Data.ToQuery DeleteRecommendationTemplate where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRecommendationTemplateResponse' smart constructor.+data DeleteRecommendationTemplateResponse = DeleteRecommendationTemplateResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The Amazon Resource Name (ARN) for a recommendation template.+    recommendationTemplateArn :: Prelude.Text,+    -- | The status of the action.+    status :: RecommendationTemplateStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRecommendationTemplateResponse' 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', 'deleteRecommendationTemplateResponse_httpStatus' - The response's http status code.+--+-- 'recommendationTemplateArn', 'deleteRecommendationTemplateResponse_recommendationTemplateArn' - The Amazon Resource Name (ARN) for a recommendation template.+--+-- 'status', 'deleteRecommendationTemplateResponse_status' - The status of the action.+newDeleteRecommendationTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'recommendationTemplateArn'+  Prelude.Text ->+  -- | 'status'+  RecommendationTemplateStatus ->+  DeleteRecommendationTemplateResponse+newDeleteRecommendationTemplateResponse+  pHttpStatus_+  pRecommendationTemplateArn_+  pStatus_ =+    DeleteRecommendationTemplateResponse'+      { httpStatus =+          pHttpStatus_,+        recommendationTemplateArn =+          pRecommendationTemplateArn_,+        status = pStatus_+      }++-- | The response's http status code.+deleteRecommendationTemplateResponse_httpStatus :: Lens.Lens' DeleteRecommendationTemplateResponse Prelude.Int+deleteRecommendationTemplateResponse_httpStatus = Lens.lens (\DeleteRecommendationTemplateResponse' {httpStatus} -> httpStatus) (\s@DeleteRecommendationTemplateResponse' {} a -> s {httpStatus = a} :: DeleteRecommendationTemplateResponse)++-- | The Amazon Resource Name (ARN) for a recommendation template.+deleteRecommendationTemplateResponse_recommendationTemplateArn :: Lens.Lens' DeleteRecommendationTemplateResponse Prelude.Text+deleteRecommendationTemplateResponse_recommendationTemplateArn = Lens.lens (\DeleteRecommendationTemplateResponse' {recommendationTemplateArn} -> recommendationTemplateArn) (\s@DeleteRecommendationTemplateResponse' {} a -> s {recommendationTemplateArn = a} :: DeleteRecommendationTemplateResponse)++-- | The status of the action.+deleteRecommendationTemplateResponse_status :: Lens.Lens' DeleteRecommendationTemplateResponse RecommendationTemplateStatus+deleteRecommendationTemplateResponse_status = Lens.lens (\DeleteRecommendationTemplateResponse' {status} -> status) (\s@DeleteRecommendationTemplateResponse' {} a -> s {status = a} :: DeleteRecommendationTemplateResponse)++instance+  Prelude.NFData+    DeleteRecommendationTemplateResponse+  where+  rnf DeleteRecommendationTemplateResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf recommendationTemplateArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/ResilienceHub/DeleteResiliencyPolicy.hs view
@@ -0,0 +1,227 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResilienceHub.DeleteResiliencyPolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a resiliency policy. This is a destructive action that can\'t be+-- undone.+module Amazonka.ResilienceHub.DeleteResiliencyPolicy+  ( -- * Creating a Request+    DeleteResiliencyPolicy (..),+    newDeleteResiliencyPolicy,++    -- * Request Lenses+    deleteResiliencyPolicy_clientToken,+    deleteResiliencyPolicy_policyArn,++    -- * Destructuring the Response+    DeleteResiliencyPolicyResponse (..),+    newDeleteResiliencyPolicyResponse,++    -- * Response Lenses+    deleteResiliencyPolicyResponse_httpStatus,+    deleteResiliencyPolicyResponse_policyArn,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteResiliencyPolicy' smart constructor.+data DeleteResiliencyPolicy = DeleteResiliencyPolicy'+  { -- | Used for an idempotency token. A client token is a unique,+    -- case-sensitive string of up to 64 ASCII characters. You should not reuse+    -- the same client token for other API requests.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+    -- this ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    policyArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteResiliencyPolicy' 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:+--+-- 'clientToken', 'deleteResiliencyPolicy_clientToken' - Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+--+-- 'policyArn', 'deleteResiliencyPolicy_policyArn' - The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newDeleteResiliencyPolicy ::+  -- | 'policyArn'+  Prelude.Text ->+  DeleteResiliencyPolicy+newDeleteResiliencyPolicy pPolicyArn_ =+  DeleteResiliencyPolicy'+    { clientToken =+        Prelude.Nothing,+      policyArn = pPolicyArn_+    }++-- | Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+deleteResiliencyPolicy_clientToken :: Lens.Lens' DeleteResiliencyPolicy (Prelude.Maybe Prelude.Text)+deleteResiliencyPolicy_clientToken = Lens.lens (\DeleteResiliencyPolicy' {clientToken} -> clientToken) (\s@DeleteResiliencyPolicy' {} a -> s {clientToken = a} :: DeleteResiliencyPolicy)++-- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+deleteResiliencyPolicy_policyArn :: Lens.Lens' DeleteResiliencyPolicy Prelude.Text+deleteResiliencyPolicy_policyArn = Lens.lens (\DeleteResiliencyPolicy' {policyArn} -> policyArn) (\s@DeleteResiliencyPolicy' {} a -> s {policyArn = a} :: DeleteResiliencyPolicy)++instance Core.AWSRequest DeleteResiliencyPolicy where+  type+    AWSResponse DeleteResiliencyPolicy =+      DeleteResiliencyPolicyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteResiliencyPolicyResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "policyArn")+      )++instance Prelude.Hashable DeleteResiliencyPolicy where+  hashWithSalt _salt DeleteResiliencyPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` policyArn++instance Prelude.NFData DeleteResiliencyPolicy where+  rnf DeleteResiliencyPolicy' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf policyArn++instance Data.ToHeaders DeleteResiliencyPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteResiliencyPolicy where+  toJSON DeleteResiliencyPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            Prelude.Just ("policyArn" Data..= policyArn)+          ]+      )++instance Data.ToPath DeleteResiliencyPolicy where+  toPath = Prelude.const "/delete-resiliency-policy"++instance Data.ToQuery DeleteResiliencyPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteResiliencyPolicyResponse' smart constructor.+data DeleteResiliencyPolicyResponse = DeleteResiliencyPolicyResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+    -- this ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    policyArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteResiliencyPolicyResponse' 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', 'deleteResiliencyPolicyResponse_httpStatus' - The response's http status code.+--+-- 'policyArn', 'deleteResiliencyPolicyResponse_policyArn' - The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newDeleteResiliencyPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'policyArn'+  Prelude.Text ->+  DeleteResiliencyPolicyResponse+newDeleteResiliencyPolicyResponse+  pHttpStatus_+  pPolicyArn_ =+    DeleteResiliencyPolicyResponse'+      { httpStatus =+          pHttpStatus_,+        policyArn = pPolicyArn_+      }++-- | The response's http status code.+deleteResiliencyPolicyResponse_httpStatus :: Lens.Lens' DeleteResiliencyPolicyResponse Prelude.Int+deleteResiliencyPolicyResponse_httpStatus = Lens.lens (\DeleteResiliencyPolicyResponse' {httpStatus} -> httpStatus) (\s@DeleteResiliencyPolicyResponse' {} a -> s {httpStatus = a} :: DeleteResiliencyPolicyResponse)++-- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+deleteResiliencyPolicyResponse_policyArn :: Lens.Lens' DeleteResiliencyPolicyResponse Prelude.Text+deleteResiliencyPolicyResponse_policyArn = Lens.lens (\DeleteResiliencyPolicyResponse' {policyArn} -> policyArn) (\s@DeleteResiliencyPolicyResponse' {} a -> s {policyArn = a} :: DeleteResiliencyPolicyResponse)++instance+  Prelude.NFData+    DeleteResiliencyPolicyResponse+  where+  rnf DeleteResiliencyPolicyResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf policyArn
+ gen/Amazonka/ResilienceHub/DescribeApp.hs view
@@ -0,0 +1,181 @@+{-# 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.ResilienceHub.DescribeApp+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes an AWS Resilience Hub application.+module Amazonka.ResilienceHub.DescribeApp+  ( -- * Creating a Request+    DescribeApp (..),+    newDescribeApp,++    -- * Request Lenses+    describeApp_appArn,++    -- * Destructuring the Response+    DescribeAppResponse (..),+    newDescribeAppResponse,++    -- * Response Lenses+    describeAppResponse_httpStatus,+    describeAppResponse_app,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeApp' smart constructor.+data DescribeApp = DescribeApp'+  { -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeApp' 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:+--+-- 'appArn', 'describeApp_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newDescribeApp ::+  -- | 'appArn'+  Prelude.Text ->+  DescribeApp+newDescribeApp pAppArn_ =+  DescribeApp' {appArn = pAppArn_}++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+describeApp_appArn :: Lens.Lens' DescribeApp Prelude.Text+describeApp_appArn = Lens.lens (\DescribeApp' {appArn} -> appArn) (\s@DescribeApp' {} a -> s {appArn = a} :: DescribeApp)++instance Core.AWSRequest DescribeApp where+  type AWSResponse DescribeApp = DescribeAppResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeAppResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "app")+      )++instance Prelude.Hashable DescribeApp where+  hashWithSalt _salt DescribeApp' {..} =+    _salt `Prelude.hashWithSalt` appArn++instance Prelude.NFData DescribeApp where+  rnf DescribeApp' {..} = Prelude.rnf appArn++instance Data.ToHeaders DescribeApp where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeApp where+  toJSON DescribeApp' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("appArn" Data..= appArn)]+      )++instance Data.ToPath DescribeApp where+  toPath = Prelude.const "/describe-app"++instance Data.ToQuery DescribeApp where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAppResponse' smart constructor.+data DescribeAppResponse = DescribeAppResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The specified application, returned as an object with details including+    -- compliance status, creation time, description, resiliency score, and+    -- more.+    app :: App+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAppResponse' 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', 'describeAppResponse_httpStatus' - The response's http status code.+--+-- 'app', 'describeAppResponse_app' - The specified application, returned as an object with details including+-- compliance status, creation time, description, resiliency score, and+-- more.+newDescribeAppResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'app'+  App ->+  DescribeAppResponse+newDescribeAppResponse pHttpStatus_ pApp_ =+  DescribeAppResponse'+    { httpStatus = pHttpStatus_,+      app = pApp_+    }++-- | The response's http status code.+describeAppResponse_httpStatus :: Lens.Lens' DescribeAppResponse Prelude.Int+describeAppResponse_httpStatus = Lens.lens (\DescribeAppResponse' {httpStatus} -> httpStatus) (\s@DescribeAppResponse' {} a -> s {httpStatus = a} :: DescribeAppResponse)++-- | The specified application, returned as an object with details including+-- compliance status, creation time, description, resiliency score, and+-- more.+describeAppResponse_app :: Lens.Lens' DescribeAppResponse App+describeAppResponse_app = Lens.lens (\DescribeAppResponse' {app} -> app) (\s@DescribeAppResponse' {} a -> s {app = a} :: DescribeAppResponse)++instance Prelude.NFData DescribeAppResponse where+  rnf DescribeAppResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf app
+ gen/Amazonka/ResilienceHub/DescribeAppAssessment.hs view
@@ -0,0 +1,198 @@+{-# 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.ResilienceHub.DescribeAppAssessment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes an assessment for an AWS Resilience Hub application.+module Amazonka.ResilienceHub.DescribeAppAssessment+  ( -- * Creating a Request+    DescribeAppAssessment (..),+    newDescribeAppAssessment,++    -- * Request Lenses+    describeAppAssessment_assessmentArn,++    -- * Destructuring the Response+    DescribeAppAssessmentResponse (..),+    newDescribeAppAssessmentResponse,++    -- * Response Lenses+    describeAppAssessmentResponse_httpStatus,+    describeAppAssessmentResponse_assessment,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAppAssessment' smart constructor.+data DescribeAppAssessment = DescribeAppAssessment'+  { -- | The Amazon Resource Name (ARN) of the assessment. The format for this+    -- ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    assessmentArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAppAssessment' 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:+--+-- 'assessmentArn', 'describeAppAssessment_assessmentArn' - The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newDescribeAppAssessment ::+  -- | 'assessmentArn'+  Prelude.Text ->+  DescribeAppAssessment+newDescribeAppAssessment pAssessmentArn_ =+  DescribeAppAssessment'+    { assessmentArn =+        pAssessmentArn_+    }++-- | The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+describeAppAssessment_assessmentArn :: Lens.Lens' DescribeAppAssessment Prelude.Text+describeAppAssessment_assessmentArn = Lens.lens (\DescribeAppAssessment' {assessmentArn} -> assessmentArn) (\s@DescribeAppAssessment' {} a -> s {assessmentArn = a} :: DescribeAppAssessment)++instance Core.AWSRequest DescribeAppAssessment where+  type+    AWSResponse DescribeAppAssessment =+      DescribeAppAssessmentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeAppAssessmentResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "assessment")+      )++instance Prelude.Hashable DescribeAppAssessment where+  hashWithSalt _salt DescribeAppAssessment' {..} =+    _salt `Prelude.hashWithSalt` assessmentArn++instance Prelude.NFData DescribeAppAssessment where+  rnf DescribeAppAssessment' {..} =+    Prelude.rnf assessmentArn++instance Data.ToHeaders DescribeAppAssessment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeAppAssessment where+  toJSON DescribeAppAssessment' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("assessmentArn" Data..= assessmentArn)+          ]+      )++instance Data.ToPath DescribeAppAssessment where+  toPath = Prelude.const "/describe-app-assessment"++instance Data.ToQuery DescribeAppAssessment where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAppAssessmentResponse' smart constructor.+data DescribeAppAssessmentResponse = DescribeAppAssessmentResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The assessment for an AWS Resilience Hub application, returned as an+    -- object. This object includes Amazon Resource Names (ARNs), compliance+    -- information, compliance status, cost, messages, resiliency scores, and+    -- more.+    assessment :: AppAssessment+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAppAssessmentResponse' 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', 'describeAppAssessmentResponse_httpStatus' - The response's http status code.+--+-- 'assessment', 'describeAppAssessmentResponse_assessment' - The assessment for an AWS Resilience Hub application, returned as an+-- object. This object includes Amazon Resource Names (ARNs), compliance+-- information, compliance status, cost, messages, resiliency scores, and+-- more.+newDescribeAppAssessmentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'assessment'+  AppAssessment ->+  DescribeAppAssessmentResponse+newDescribeAppAssessmentResponse+  pHttpStatus_+  pAssessment_ =+    DescribeAppAssessmentResponse'+      { httpStatus =+          pHttpStatus_,+        assessment = pAssessment_+      }++-- | The response's http status code.+describeAppAssessmentResponse_httpStatus :: Lens.Lens' DescribeAppAssessmentResponse Prelude.Int+describeAppAssessmentResponse_httpStatus = Lens.lens (\DescribeAppAssessmentResponse' {httpStatus} -> httpStatus) (\s@DescribeAppAssessmentResponse' {} a -> s {httpStatus = a} :: DescribeAppAssessmentResponse)++-- | The assessment for an AWS Resilience Hub application, returned as an+-- object. This object includes Amazon Resource Names (ARNs), compliance+-- information, compliance status, cost, messages, resiliency scores, and+-- more.+describeAppAssessmentResponse_assessment :: Lens.Lens' DescribeAppAssessmentResponse AppAssessment+describeAppAssessmentResponse_assessment = Lens.lens (\DescribeAppAssessmentResponse' {assessment} -> assessment) (\s@DescribeAppAssessmentResponse' {} a -> s {assessment = a} :: DescribeAppAssessmentResponse)++instance Prelude.NFData DescribeAppAssessmentResponse where+  rnf DescribeAppAssessmentResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf assessment
+ gen/Amazonka/ResilienceHub/DescribeAppVersionResourcesResolutionStatus.hs view
@@ -0,0 +1,321 @@+{-# 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.ResilienceHub.DescribeAppVersionResourcesResolutionStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the resolution status for the specified resolution identifier+-- for an application version. If @resolutionId@ is not specified, the+-- current resolution status is returned.+module Amazonka.ResilienceHub.DescribeAppVersionResourcesResolutionStatus+  ( -- * Creating a Request+    DescribeAppVersionResourcesResolutionStatus (..),+    newDescribeAppVersionResourcesResolutionStatus,++    -- * Request Lenses+    describeAppVersionResourcesResolutionStatus_resolutionId,+    describeAppVersionResourcesResolutionStatus_appArn,+    describeAppVersionResourcesResolutionStatus_appVersion,++    -- * Destructuring the Response+    DescribeAppVersionResourcesResolutionStatusResponse (..),+    newDescribeAppVersionResourcesResolutionStatusResponse,++    -- * Response Lenses+    describeAppVersionResourcesResolutionStatusResponse_errorMessage,+    describeAppVersionResourcesResolutionStatusResponse_httpStatus,+    describeAppVersionResourcesResolutionStatusResponse_appArn,+    describeAppVersionResourcesResolutionStatusResponse_appVersion,+    describeAppVersionResourcesResolutionStatusResponse_resolutionId,+    describeAppVersionResourcesResolutionStatusResponse_status,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAppVersionResourcesResolutionStatus' smart constructor.+data DescribeAppVersionResourcesResolutionStatus = DescribeAppVersionResourcesResolutionStatus'+  { -- | The identifier for a specific resolution.+    resolutionId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAppVersionResourcesResolutionStatus' 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:+--+-- 'resolutionId', 'describeAppVersionResourcesResolutionStatus_resolutionId' - The identifier for a specific resolution.+--+-- 'appArn', 'describeAppVersionResourcesResolutionStatus_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'describeAppVersionResourcesResolutionStatus_appVersion' - The version of the application.+newDescribeAppVersionResourcesResolutionStatus ::+  -- | 'appArn'+  Prelude.Text ->+  -- | 'appVersion'+  Prelude.Text ->+  DescribeAppVersionResourcesResolutionStatus+newDescribeAppVersionResourcesResolutionStatus+  pAppArn_+  pAppVersion_ =+    DescribeAppVersionResourcesResolutionStatus'+      { resolutionId =+          Prelude.Nothing,+        appArn = pAppArn_,+        appVersion = pAppVersion_+      }++-- | The identifier for a specific resolution.+describeAppVersionResourcesResolutionStatus_resolutionId :: Lens.Lens' DescribeAppVersionResourcesResolutionStatus (Prelude.Maybe Prelude.Text)+describeAppVersionResourcesResolutionStatus_resolutionId = Lens.lens (\DescribeAppVersionResourcesResolutionStatus' {resolutionId} -> resolutionId) (\s@DescribeAppVersionResourcesResolutionStatus' {} a -> s {resolutionId = a} :: DescribeAppVersionResourcesResolutionStatus)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+describeAppVersionResourcesResolutionStatus_appArn :: Lens.Lens' DescribeAppVersionResourcesResolutionStatus Prelude.Text+describeAppVersionResourcesResolutionStatus_appArn = Lens.lens (\DescribeAppVersionResourcesResolutionStatus' {appArn} -> appArn) (\s@DescribeAppVersionResourcesResolutionStatus' {} a -> s {appArn = a} :: DescribeAppVersionResourcesResolutionStatus)++-- | The version of the application.+describeAppVersionResourcesResolutionStatus_appVersion :: Lens.Lens' DescribeAppVersionResourcesResolutionStatus Prelude.Text+describeAppVersionResourcesResolutionStatus_appVersion = Lens.lens (\DescribeAppVersionResourcesResolutionStatus' {appVersion} -> appVersion) (\s@DescribeAppVersionResourcesResolutionStatus' {} a -> s {appVersion = a} :: DescribeAppVersionResourcesResolutionStatus)++instance+  Core.AWSRequest+    DescribeAppVersionResourcesResolutionStatus+  where+  type+    AWSResponse+      DescribeAppVersionResourcesResolutionStatus =+      DescribeAppVersionResourcesResolutionStatusResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeAppVersionResourcesResolutionStatusResponse'+            Prelude.<$> (x Data..?> "errorMessage")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "appArn")+            Prelude.<*> (x Data..:> "appVersion")+            Prelude.<*> (x Data..:> "resolutionId")+            Prelude.<*> (x Data..:> "status")+      )++instance+  Prelude.Hashable+    DescribeAppVersionResourcesResolutionStatus+  where+  hashWithSalt+    _salt+    DescribeAppVersionResourcesResolutionStatus' {..} =+      _salt+        `Prelude.hashWithSalt` resolutionId+        `Prelude.hashWithSalt` appArn+        `Prelude.hashWithSalt` appVersion++instance+  Prelude.NFData+    DescribeAppVersionResourcesResolutionStatus+  where+  rnf DescribeAppVersionResourcesResolutionStatus' {..} =+    Prelude.rnf resolutionId+      `Prelude.seq` Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appVersion++instance+  Data.ToHeaders+    DescribeAppVersionResourcesResolutionStatus+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    DescribeAppVersionResourcesResolutionStatus+  where+  toJSON+    DescribeAppVersionResourcesResolutionStatus' {..} =+      Data.object+        ( Prelude.catMaybes+            [ ("resolutionId" Data..=) Prelude.<$> resolutionId,+              Prelude.Just ("appArn" Data..= appArn),+              Prelude.Just ("appVersion" Data..= appVersion)+            ]+        )++instance+  Data.ToPath+    DescribeAppVersionResourcesResolutionStatus+  where+  toPath =+    Prelude.const+      "/describe-app-version-resources-resolution-status"++instance+  Data.ToQuery+    DescribeAppVersionResourcesResolutionStatus+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAppVersionResourcesResolutionStatusResponse' smart constructor.+data DescribeAppVersionResourcesResolutionStatusResponse = DescribeAppVersionResourcesResolutionStatusResponse'+  { -- | The returned error message for the request.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Text,+    -- | The identifier for a specific resolution.+    resolutionId :: Prelude.Text,+    -- | The status of the action.+    status :: ResourceResolutionStatusType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAppVersionResourcesResolutionStatusResponse' 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:+--+-- 'errorMessage', 'describeAppVersionResourcesResolutionStatusResponse_errorMessage' - The returned error message for the request.+--+-- 'httpStatus', 'describeAppVersionResourcesResolutionStatusResponse_httpStatus' - The response's http status code.+--+-- 'appArn', 'describeAppVersionResourcesResolutionStatusResponse_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'describeAppVersionResourcesResolutionStatusResponse_appVersion' - The version of the application.+--+-- 'resolutionId', 'describeAppVersionResourcesResolutionStatusResponse_resolutionId' - The identifier for a specific resolution.+--+-- 'status', 'describeAppVersionResourcesResolutionStatusResponse_status' - The status of the action.+newDescribeAppVersionResourcesResolutionStatusResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'appArn'+  Prelude.Text ->+  -- | 'appVersion'+  Prelude.Text ->+  -- | 'resolutionId'+  Prelude.Text ->+  -- | 'status'+  ResourceResolutionStatusType ->+  DescribeAppVersionResourcesResolutionStatusResponse+newDescribeAppVersionResourcesResolutionStatusResponse+  pHttpStatus_+  pAppArn_+  pAppVersion_+  pResolutionId_+  pStatus_ =+    DescribeAppVersionResourcesResolutionStatusResponse'+      { errorMessage =+          Prelude.Nothing,+        httpStatus =+          pHttpStatus_,+        appArn = pAppArn_,+        appVersion =+          pAppVersion_,+        resolutionId =+          pResolutionId_,+        status = pStatus_+      }++-- | The returned error message for the request.+describeAppVersionResourcesResolutionStatusResponse_errorMessage :: Lens.Lens' DescribeAppVersionResourcesResolutionStatusResponse (Prelude.Maybe Prelude.Text)+describeAppVersionResourcesResolutionStatusResponse_errorMessage = Lens.lens (\DescribeAppVersionResourcesResolutionStatusResponse' {errorMessage} -> errorMessage) (\s@DescribeAppVersionResourcesResolutionStatusResponse' {} a -> s {errorMessage = a} :: DescribeAppVersionResourcesResolutionStatusResponse)++-- | The response's http status code.+describeAppVersionResourcesResolutionStatusResponse_httpStatus :: Lens.Lens' DescribeAppVersionResourcesResolutionStatusResponse Prelude.Int+describeAppVersionResourcesResolutionStatusResponse_httpStatus = Lens.lens (\DescribeAppVersionResourcesResolutionStatusResponse' {httpStatus} -> httpStatus) (\s@DescribeAppVersionResourcesResolutionStatusResponse' {} a -> s {httpStatus = a} :: DescribeAppVersionResourcesResolutionStatusResponse)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+describeAppVersionResourcesResolutionStatusResponse_appArn :: Lens.Lens' DescribeAppVersionResourcesResolutionStatusResponse Prelude.Text+describeAppVersionResourcesResolutionStatusResponse_appArn = Lens.lens (\DescribeAppVersionResourcesResolutionStatusResponse' {appArn} -> appArn) (\s@DescribeAppVersionResourcesResolutionStatusResponse' {} a -> s {appArn = a} :: DescribeAppVersionResourcesResolutionStatusResponse)++-- | The version of the application.+describeAppVersionResourcesResolutionStatusResponse_appVersion :: Lens.Lens' DescribeAppVersionResourcesResolutionStatusResponse Prelude.Text+describeAppVersionResourcesResolutionStatusResponse_appVersion = Lens.lens (\DescribeAppVersionResourcesResolutionStatusResponse' {appVersion} -> appVersion) (\s@DescribeAppVersionResourcesResolutionStatusResponse' {} a -> s {appVersion = a} :: DescribeAppVersionResourcesResolutionStatusResponse)++-- | The identifier for a specific resolution.+describeAppVersionResourcesResolutionStatusResponse_resolutionId :: Lens.Lens' DescribeAppVersionResourcesResolutionStatusResponse Prelude.Text+describeAppVersionResourcesResolutionStatusResponse_resolutionId = Lens.lens (\DescribeAppVersionResourcesResolutionStatusResponse' {resolutionId} -> resolutionId) (\s@DescribeAppVersionResourcesResolutionStatusResponse' {} a -> s {resolutionId = a} :: DescribeAppVersionResourcesResolutionStatusResponse)++-- | The status of the action.+describeAppVersionResourcesResolutionStatusResponse_status :: Lens.Lens' DescribeAppVersionResourcesResolutionStatusResponse ResourceResolutionStatusType+describeAppVersionResourcesResolutionStatusResponse_status = Lens.lens (\DescribeAppVersionResourcesResolutionStatusResponse' {status} -> status) (\s@DescribeAppVersionResourcesResolutionStatusResponse' {} a -> s {status = a} :: DescribeAppVersionResourcesResolutionStatusResponse)++instance+  Prelude.NFData+    DescribeAppVersionResourcesResolutionStatusResponse+  where+  rnf+    DescribeAppVersionResourcesResolutionStatusResponse' {..} =+      Prelude.rnf errorMessage+        `Prelude.seq` Prelude.rnf httpStatus+        `Prelude.seq` Prelude.rnf appArn+        `Prelude.seq` Prelude.rnf appVersion+        `Prelude.seq` Prelude.rnf resolutionId+        `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/ResilienceHub/DescribeAppVersionTemplate.hs view
@@ -0,0 +1,246 @@+{-# 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.ResilienceHub.DescribeAppVersionTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes details about an AWS Resilience Hub+module Amazonka.ResilienceHub.DescribeAppVersionTemplate+  ( -- * Creating a Request+    DescribeAppVersionTemplate (..),+    newDescribeAppVersionTemplate,++    -- * Request Lenses+    describeAppVersionTemplate_appArn,+    describeAppVersionTemplate_appVersion,++    -- * Destructuring the Response+    DescribeAppVersionTemplateResponse (..),+    newDescribeAppVersionTemplateResponse,++    -- * Response Lenses+    describeAppVersionTemplateResponse_httpStatus,+    describeAppVersionTemplateResponse_appArn,+    describeAppVersionTemplateResponse_appTemplateBody,+    describeAppVersionTemplateResponse_appVersion,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAppVersionTemplate' smart constructor.+data DescribeAppVersionTemplate = DescribeAppVersionTemplate'+  { -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAppVersionTemplate' 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:+--+-- 'appArn', 'describeAppVersionTemplate_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'describeAppVersionTemplate_appVersion' - The version of the application.+newDescribeAppVersionTemplate ::+  -- | 'appArn'+  Prelude.Text ->+  -- | 'appVersion'+  Prelude.Text ->+  DescribeAppVersionTemplate+newDescribeAppVersionTemplate pAppArn_ pAppVersion_ =+  DescribeAppVersionTemplate'+    { appArn = pAppArn_,+      appVersion = pAppVersion_+    }++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+describeAppVersionTemplate_appArn :: Lens.Lens' DescribeAppVersionTemplate Prelude.Text+describeAppVersionTemplate_appArn = Lens.lens (\DescribeAppVersionTemplate' {appArn} -> appArn) (\s@DescribeAppVersionTemplate' {} a -> s {appArn = a} :: DescribeAppVersionTemplate)++-- | The version of the application.+describeAppVersionTemplate_appVersion :: Lens.Lens' DescribeAppVersionTemplate Prelude.Text+describeAppVersionTemplate_appVersion = Lens.lens (\DescribeAppVersionTemplate' {appVersion} -> appVersion) (\s@DescribeAppVersionTemplate' {} a -> s {appVersion = a} :: DescribeAppVersionTemplate)++instance Core.AWSRequest DescribeAppVersionTemplate where+  type+    AWSResponse DescribeAppVersionTemplate =+      DescribeAppVersionTemplateResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeAppVersionTemplateResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "appArn")+            Prelude.<*> (x Data..:> "appTemplateBody")+            Prelude.<*> (x Data..:> "appVersion")+      )++instance Prelude.Hashable DescribeAppVersionTemplate where+  hashWithSalt _salt DescribeAppVersionTemplate' {..} =+    _salt+      `Prelude.hashWithSalt` appArn+      `Prelude.hashWithSalt` appVersion++instance Prelude.NFData DescribeAppVersionTemplate where+  rnf DescribeAppVersionTemplate' {..} =+    Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appVersion++instance Data.ToHeaders DescribeAppVersionTemplate where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeAppVersionTemplate where+  toJSON DescribeAppVersionTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("appArn" Data..= appArn),+            Prelude.Just ("appVersion" Data..= appVersion)+          ]+      )++instance Data.ToPath DescribeAppVersionTemplate where+  toPath =+    Prelude.const "/describe-app-version-template"++instance Data.ToQuery DescribeAppVersionTemplate where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAppVersionTemplateResponse' smart constructor.+data DescribeAppVersionTemplateResponse = DescribeAppVersionTemplateResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The body of the template.+    appTemplateBody :: Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAppVersionTemplateResponse' 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', 'describeAppVersionTemplateResponse_httpStatus' - The response's http status code.+--+-- 'appArn', 'describeAppVersionTemplateResponse_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appTemplateBody', 'describeAppVersionTemplateResponse_appTemplateBody' - The body of the template.+--+-- 'appVersion', 'describeAppVersionTemplateResponse_appVersion' - The version of the application.+newDescribeAppVersionTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'appArn'+  Prelude.Text ->+  -- | 'appTemplateBody'+  Prelude.Text ->+  -- | 'appVersion'+  Prelude.Text ->+  DescribeAppVersionTemplateResponse+newDescribeAppVersionTemplateResponse+  pHttpStatus_+  pAppArn_+  pAppTemplateBody_+  pAppVersion_ =+    DescribeAppVersionTemplateResponse'+      { httpStatus =+          pHttpStatus_,+        appArn = pAppArn_,+        appTemplateBody = pAppTemplateBody_,+        appVersion = pAppVersion_+      }++-- | The response's http status code.+describeAppVersionTemplateResponse_httpStatus :: Lens.Lens' DescribeAppVersionTemplateResponse Prelude.Int+describeAppVersionTemplateResponse_httpStatus = Lens.lens (\DescribeAppVersionTemplateResponse' {httpStatus} -> httpStatus) (\s@DescribeAppVersionTemplateResponse' {} a -> s {httpStatus = a} :: DescribeAppVersionTemplateResponse)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+describeAppVersionTemplateResponse_appArn :: Lens.Lens' DescribeAppVersionTemplateResponse Prelude.Text+describeAppVersionTemplateResponse_appArn = Lens.lens (\DescribeAppVersionTemplateResponse' {appArn} -> appArn) (\s@DescribeAppVersionTemplateResponse' {} a -> s {appArn = a} :: DescribeAppVersionTemplateResponse)++-- | The body of the template.+describeAppVersionTemplateResponse_appTemplateBody :: Lens.Lens' DescribeAppVersionTemplateResponse Prelude.Text+describeAppVersionTemplateResponse_appTemplateBody = Lens.lens (\DescribeAppVersionTemplateResponse' {appTemplateBody} -> appTemplateBody) (\s@DescribeAppVersionTemplateResponse' {} a -> s {appTemplateBody = a} :: DescribeAppVersionTemplateResponse)++-- | The version of the application.+describeAppVersionTemplateResponse_appVersion :: Lens.Lens' DescribeAppVersionTemplateResponse Prelude.Text+describeAppVersionTemplateResponse_appVersion = Lens.lens (\DescribeAppVersionTemplateResponse' {appVersion} -> appVersion) (\s@DescribeAppVersionTemplateResponse' {} a -> s {appVersion = a} :: DescribeAppVersionTemplateResponse)++instance+  Prelude.NFData+    DescribeAppVersionTemplateResponse+  where+  rnf DescribeAppVersionTemplateResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appTemplateBody+      `Prelude.seq` Prelude.rnf appVersion
+ gen/Amazonka/ResilienceHub/DescribeDraftAppVersionResourcesImportStatus.hs view
@@ -0,0 +1,289 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResilienceHub.DescribeDraftAppVersionResourcesImportStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the status of importing resources to an application version.+module Amazonka.ResilienceHub.DescribeDraftAppVersionResourcesImportStatus+  ( -- * Creating a Request+    DescribeDraftAppVersionResourcesImportStatus (..),+    newDescribeDraftAppVersionResourcesImportStatus,++    -- * Request Lenses+    describeDraftAppVersionResourcesImportStatus_appArn,++    -- * Destructuring the Response+    DescribeDraftAppVersionResourcesImportStatusResponse (..),+    newDescribeDraftAppVersionResourcesImportStatusResponse,++    -- * Response Lenses+    describeDraftAppVersionResourcesImportStatusResponse_errorMessage,+    describeDraftAppVersionResourcesImportStatusResponse_httpStatus,+    describeDraftAppVersionResourcesImportStatusResponse_appArn,+    describeDraftAppVersionResourcesImportStatusResponse_appVersion,+    describeDraftAppVersionResourcesImportStatusResponse_status,+    describeDraftAppVersionResourcesImportStatusResponse_statusChangeTime,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeDraftAppVersionResourcesImportStatus' smart constructor.+data DescribeDraftAppVersionResourcesImportStatus = DescribeDraftAppVersionResourcesImportStatus'+  { -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDraftAppVersionResourcesImportStatus' 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:+--+-- 'appArn', 'describeDraftAppVersionResourcesImportStatus_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newDescribeDraftAppVersionResourcesImportStatus ::+  -- | 'appArn'+  Prelude.Text ->+  DescribeDraftAppVersionResourcesImportStatus+newDescribeDraftAppVersionResourcesImportStatus+  pAppArn_ =+    DescribeDraftAppVersionResourcesImportStatus'+      { appArn =+          pAppArn_+      }++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+describeDraftAppVersionResourcesImportStatus_appArn :: Lens.Lens' DescribeDraftAppVersionResourcesImportStatus Prelude.Text+describeDraftAppVersionResourcesImportStatus_appArn = Lens.lens (\DescribeDraftAppVersionResourcesImportStatus' {appArn} -> appArn) (\s@DescribeDraftAppVersionResourcesImportStatus' {} a -> s {appArn = a} :: DescribeDraftAppVersionResourcesImportStatus)++instance+  Core.AWSRequest+    DescribeDraftAppVersionResourcesImportStatus+  where+  type+    AWSResponse+      DescribeDraftAppVersionResourcesImportStatus =+      DescribeDraftAppVersionResourcesImportStatusResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDraftAppVersionResourcesImportStatusResponse'+            Prelude.<$> (x Data..?> "errorMessage")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "appArn")+            Prelude.<*> (x Data..:> "appVersion")+            Prelude.<*> (x Data..:> "status")+            Prelude.<*> (x Data..:> "statusChangeTime")+      )++instance+  Prelude.Hashable+    DescribeDraftAppVersionResourcesImportStatus+  where+  hashWithSalt+    _salt+    DescribeDraftAppVersionResourcesImportStatus' {..} =+      _salt `Prelude.hashWithSalt` appArn++instance+  Prelude.NFData+    DescribeDraftAppVersionResourcesImportStatus+  where+  rnf DescribeDraftAppVersionResourcesImportStatus' {..} =+    Prelude.rnf appArn++instance+  Data.ToHeaders+    DescribeDraftAppVersionResourcesImportStatus+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    DescribeDraftAppVersionResourcesImportStatus+  where+  toJSON+    DescribeDraftAppVersionResourcesImportStatus' {..} =+      Data.object+        ( Prelude.catMaybes+            [Prelude.Just ("appArn" Data..= appArn)]+        )++instance+  Data.ToPath+    DescribeDraftAppVersionResourcesImportStatus+  where+  toPath =+    Prelude.const+      "/describe-draft-app-version-resources-import-status"++instance+  Data.ToQuery+    DescribeDraftAppVersionResourcesImportStatus+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeDraftAppVersionResourcesImportStatusResponse' smart constructor.+data DescribeDraftAppVersionResourcesImportStatusResponse = DescribeDraftAppVersionResourcesImportStatusResponse'+  { -- | The returned error message for the request.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Text,+    -- | The status of the action.+    status :: ResourceImportStatusType,+    -- | The timestamp for when the status last changed.+    statusChangeTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDraftAppVersionResourcesImportStatusResponse' 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:+--+-- 'errorMessage', 'describeDraftAppVersionResourcesImportStatusResponse_errorMessage' - The returned error message for the request.+--+-- 'httpStatus', 'describeDraftAppVersionResourcesImportStatusResponse_httpStatus' - The response's http status code.+--+-- 'appArn', 'describeDraftAppVersionResourcesImportStatusResponse_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'describeDraftAppVersionResourcesImportStatusResponse_appVersion' - The version of the application.+--+-- 'status', 'describeDraftAppVersionResourcesImportStatusResponse_status' - The status of the action.+--+-- 'statusChangeTime', 'describeDraftAppVersionResourcesImportStatusResponse_statusChangeTime' - The timestamp for when the status last changed.+newDescribeDraftAppVersionResourcesImportStatusResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'appArn'+  Prelude.Text ->+  -- | 'appVersion'+  Prelude.Text ->+  -- | 'status'+  ResourceImportStatusType ->+  -- | 'statusChangeTime'+  Prelude.UTCTime ->+  DescribeDraftAppVersionResourcesImportStatusResponse+newDescribeDraftAppVersionResourcesImportStatusResponse+  pHttpStatus_+  pAppArn_+  pAppVersion_+  pStatus_+  pStatusChangeTime_ =+    DescribeDraftAppVersionResourcesImportStatusResponse'+      { errorMessage =+          Prelude.Nothing,+        httpStatus =+          pHttpStatus_,+        appArn = pAppArn_,+        appVersion =+          pAppVersion_,+        status = pStatus_,+        statusChangeTime =+          Data._Time+            Lens.# pStatusChangeTime_+      }++-- | The returned error message for the request.+describeDraftAppVersionResourcesImportStatusResponse_errorMessage :: Lens.Lens' DescribeDraftAppVersionResourcesImportStatusResponse (Prelude.Maybe Prelude.Text)+describeDraftAppVersionResourcesImportStatusResponse_errorMessage = Lens.lens (\DescribeDraftAppVersionResourcesImportStatusResponse' {errorMessage} -> errorMessage) (\s@DescribeDraftAppVersionResourcesImportStatusResponse' {} a -> s {errorMessage = a} :: DescribeDraftAppVersionResourcesImportStatusResponse)++-- | The response's http status code.+describeDraftAppVersionResourcesImportStatusResponse_httpStatus :: Lens.Lens' DescribeDraftAppVersionResourcesImportStatusResponse Prelude.Int+describeDraftAppVersionResourcesImportStatusResponse_httpStatus = Lens.lens (\DescribeDraftAppVersionResourcesImportStatusResponse' {httpStatus} -> httpStatus) (\s@DescribeDraftAppVersionResourcesImportStatusResponse' {} a -> s {httpStatus = a} :: DescribeDraftAppVersionResourcesImportStatusResponse)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+describeDraftAppVersionResourcesImportStatusResponse_appArn :: Lens.Lens' DescribeDraftAppVersionResourcesImportStatusResponse Prelude.Text+describeDraftAppVersionResourcesImportStatusResponse_appArn = Lens.lens (\DescribeDraftAppVersionResourcesImportStatusResponse' {appArn} -> appArn) (\s@DescribeDraftAppVersionResourcesImportStatusResponse' {} a -> s {appArn = a} :: DescribeDraftAppVersionResourcesImportStatusResponse)++-- | The version of the application.+describeDraftAppVersionResourcesImportStatusResponse_appVersion :: Lens.Lens' DescribeDraftAppVersionResourcesImportStatusResponse Prelude.Text+describeDraftAppVersionResourcesImportStatusResponse_appVersion = Lens.lens (\DescribeDraftAppVersionResourcesImportStatusResponse' {appVersion} -> appVersion) (\s@DescribeDraftAppVersionResourcesImportStatusResponse' {} a -> s {appVersion = a} :: DescribeDraftAppVersionResourcesImportStatusResponse)++-- | The status of the action.+describeDraftAppVersionResourcesImportStatusResponse_status :: Lens.Lens' DescribeDraftAppVersionResourcesImportStatusResponse ResourceImportStatusType+describeDraftAppVersionResourcesImportStatusResponse_status = Lens.lens (\DescribeDraftAppVersionResourcesImportStatusResponse' {status} -> status) (\s@DescribeDraftAppVersionResourcesImportStatusResponse' {} a -> s {status = a} :: DescribeDraftAppVersionResourcesImportStatusResponse)++-- | The timestamp for when the status last changed.+describeDraftAppVersionResourcesImportStatusResponse_statusChangeTime :: Lens.Lens' DescribeDraftAppVersionResourcesImportStatusResponse Prelude.UTCTime+describeDraftAppVersionResourcesImportStatusResponse_statusChangeTime = Lens.lens (\DescribeDraftAppVersionResourcesImportStatusResponse' {statusChangeTime} -> statusChangeTime) (\s@DescribeDraftAppVersionResourcesImportStatusResponse' {} a -> s {statusChangeTime = a} :: DescribeDraftAppVersionResourcesImportStatusResponse) Prelude.. Data._Time++instance+  Prelude.NFData+    DescribeDraftAppVersionResourcesImportStatusResponse+  where+  rnf+    DescribeDraftAppVersionResourcesImportStatusResponse' {..} =+      Prelude.rnf errorMessage+        `Prelude.seq` Prelude.rnf httpStatus+        `Prelude.seq` Prelude.rnf appArn+        `Prelude.seq` Prelude.rnf appVersion+        `Prelude.seq` Prelude.rnf status+        `Prelude.seq` Prelude.rnf statusChangeTime
+ gen/Amazonka/ResilienceHub/DescribeResiliencyPolicy.hs view
@@ -0,0 +1,199 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResilienceHub.DescribeResiliencyPolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes a specified resiliency policy for an AWS Resilience Hub+-- application. The returned policy object includes creation time, data+-- location constraints, the Amazon Resource Name (ARN) for the policy,+-- tags, tier, and more.+module Amazonka.ResilienceHub.DescribeResiliencyPolicy+  ( -- * Creating a Request+    DescribeResiliencyPolicy (..),+    newDescribeResiliencyPolicy,++    -- * Request Lenses+    describeResiliencyPolicy_policyArn,++    -- * Destructuring the Response+    DescribeResiliencyPolicyResponse (..),+    newDescribeResiliencyPolicyResponse,++    -- * Response Lenses+    describeResiliencyPolicyResponse_httpStatus,+    describeResiliencyPolicyResponse_policy,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeResiliencyPolicy' smart constructor.+data DescribeResiliencyPolicy = DescribeResiliencyPolicy'+  { -- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+    -- this ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    policyArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeResiliencyPolicy' 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:+--+-- 'policyArn', 'describeResiliencyPolicy_policyArn' - The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newDescribeResiliencyPolicy ::+  -- | 'policyArn'+  Prelude.Text ->+  DescribeResiliencyPolicy+newDescribeResiliencyPolicy pPolicyArn_ =+  DescribeResiliencyPolicy' {policyArn = pPolicyArn_}++-- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+describeResiliencyPolicy_policyArn :: Lens.Lens' DescribeResiliencyPolicy Prelude.Text+describeResiliencyPolicy_policyArn = Lens.lens (\DescribeResiliencyPolicy' {policyArn} -> policyArn) (\s@DescribeResiliencyPolicy' {} a -> s {policyArn = a} :: DescribeResiliencyPolicy)++instance Core.AWSRequest DescribeResiliencyPolicy where+  type+    AWSResponse DescribeResiliencyPolicy =+      DescribeResiliencyPolicyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeResiliencyPolicyResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "policy")+      )++instance Prelude.Hashable DescribeResiliencyPolicy where+  hashWithSalt _salt DescribeResiliencyPolicy' {..} =+    _salt `Prelude.hashWithSalt` policyArn++instance Prelude.NFData DescribeResiliencyPolicy where+  rnf DescribeResiliencyPolicy' {..} =+    Prelude.rnf policyArn++instance Data.ToHeaders DescribeResiliencyPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeResiliencyPolicy where+  toJSON DescribeResiliencyPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("policyArn" Data..= policyArn)]+      )++instance Data.ToPath DescribeResiliencyPolicy where+  toPath = Prelude.const "/describe-resiliency-policy"++instance Data.ToQuery DescribeResiliencyPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeResiliencyPolicyResponse' smart constructor.+data DescribeResiliencyPolicyResponse = DescribeResiliencyPolicyResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Information about the specific resiliency policy, returned as an object.+    -- This object includes creation time, data location constraints, its name,+    -- description, tags, the recovery time objective (RTO) and recovery point+    -- objective (RPO) in seconds, and more.+    policy :: ResiliencyPolicy+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeResiliencyPolicyResponse' 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', 'describeResiliencyPolicyResponse_httpStatus' - The response's http status code.+--+-- 'policy', 'describeResiliencyPolicyResponse_policy' - Information about the specific resiliency policy, returned as an object.+-- This object includes creation time, data location constraints, its name,+-- description, tags, the recovery time objective (RTO) and recovery point+-- objective (RPO) in seconds, and more.+newDescribeResiliencyPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'policy'+  ResiliencyPolicy ->+  DescribeResiliencyPolicyResponse+newDescribeResiliencyPolicyResponse+  pHttpStatus_+  pPolicy_ =+    DescribeResiliencyPolicyResponse'+      { httpStatus =+          pHttpStatus_,+        policy = pPolicy_+      }++-- | The response's http status code.+describeResiliencyPolicyResponse_httpStatus :: Lens.Lens' DescribeResiliencyPolicyResponse Prelude.Int+describeResiliencyPolicyResponse_httpStatus = Lens.lens (\DescribeResiliencyPolicyResponse' {httpStatus} -> httpStatus) (\s@DescribeResiliencyPolicyResponse' {} a -> s {httpStatus = a} :: DescribeResiliencyPolicyResponse)++-- | Information about the specific resiliency policy, returned as an object.+-- This object includes creation time, data location constraints, its name,+-- description, tags, the recovery time objective (RTO) and recovery point+-- objective (RPO) in seconds, and more.+describeResiliencyPolicyResponse_policy :: Lens.Lens' DescribeResiliencyPolicyResponse ResiliencyPolicy+describeResiliencyPolicyResponse_policy = Lens.lens (\DescribeResiliencyPolicyResponse' {policy} -> policy) (\s@DescribeResiliencyPolicyResponse' {} a -> s {policy = a} :: DescribeResiliencyPolicyResponse)++instance+  Prelude.NFData+    DescribeResiliencyPolicyResponse+  where+  rnf DescribeResiliencyPolicyResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf policy
+ gen/Amazonka/ResilienceHub/ImportResourcesToDraftAppVersion.hs view
@@ -0,0 +1,310 @@+{-# 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.ResilienceHub.ImportResourcesToDraftAppVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Imports resources from sources such as a CloudFormation stack,+-- resource-groups, or application registry app to a draft application+-- version.+module Amazonka.ResilienceHub.ImportResourcesToDraftAppVersion+  ( -- * Creating a Request+    ImportResourcesToDraftAppVersion (..),+    newImportResourcesToDraftAppVersion,++    -- * Request Lenses+    importResourcesToDraftAppVersion_sourceArns,+    importResourcesToDraftAppVersion_terraformSources,+    importResourcesToDraftAppVersion_appArn,++    -- * Destructuring the Response+    ImportResourcesToDraftAppVersionResponse (..),+    newImportResourcesToDraftAppVersionResponse,++    -- * Response Lenses+    importResourcesToDraftAppVersionResponse_sourceArns,+    importResourcesToDraftAppVersionResponse_terraformSources,+    importResourcesToDraftAppVersionResponse_httpStatus,+    importResourcesToDraftAppVersionResponse_appArn,+    importResourcesToDraftAppVersionResponse_appVersion,+    importResourcesToDraftAppVersionResponse_status,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newImportResourcesToDraftAppVersion' smart constructor.+data ImportResourcesToDraftAppVersion = ImportResourcesToDraftAppVersion'+  { -- | The Amazon Resource Names (ARNs) for the resources that you want to+    -- import.+    sourceArns :: Prelude.Maybe [Prelude.Text],+    -- | A list of terraform file s3 URLs you need to import.+    terraformSources :: Prelude.Maybe [TerraformSource],+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportResourcesToDraftAppVersion' 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:+--+-- 'sourceArns', 'importResourcesToDraftAppVersion_sourceArns' - The Amazon Resource Names (ARNs) for the resources that you want to+-- import.+--+-- 'terraformSources', 'importResourcesToDraftAppVersion_terraformSources' - A list of terraform file s3 URLs you need to import.+--+-- 'appArn', 'importResourcesToDraftAppVersion_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newImportResourcesToDraftAppVersion ::+  -- | 'appArn'+  Prelude.Text ->+  ImportResourcesToDraftAppVersion+newImportResourcesToDraftAppVersion pAppArn_ =+  ImportResourcesToDraftAppVersion'+    { sourceArns =+        Prelude.Nothing,+      terraformSources = Prelude.Nothing,+      appArn = pAppArn_+    }++-- | The Amazon Resource Names (ARNs) for the resources that you want to+-- import.+importResourcesToDraftAppVersion_sourceArns :: Lens.Lens' ImportResourcesToDraftAppVersion (Prelude.Maybe [Prelude.Text])+importResourcesToDraftAppVersion_sourceArns = Lens.lens (\ImportResourcesToDraftAppVersion' {sourceArns} -> sourceArns) (\s@ImportResourcesToDraftAppVersion' {} a -> s {sourceArns = a} :: ImportResourcesToDraftAppVersion) Prelude.. Lens.mapping Lens.coerced++-- | A list of terraform file s3 URLs you need to import.+importResourcesToDraftAppVersion_terraformSources :: Lens.Lens' ImportResourcesToDraftAppVersion (Prelude.Maybe [TerraformSource])+importResourcesToDraftAppVersion_terraformSources = Lens.lens (\ImportResourcesToDraftAppVersion' {terraformSources} -> terraformSources) (\s@ImportResourcesToDraftAppVersion' {} a -> s {terraformSources = a} :: ImportResourcesToDraftAppVersion) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+importResourcesToDraftAppVersion_appArn :: Lens.Lens' ImportResourcesToDraftAppVersion Prelude.Text+importResourcesToDraftAppVersion_appArn = Lens.lens (\ImportResourcesToDraftAppVersion' {appArn} -> appArn) (\s@ImportResourcesToDraftAppVersion' {} a -> s {appArn = a} :: ImportResourcesToDraftAppVersion)++instance+  Core.AWSRequest+    ImportResourcesToDraftAppVersion+  where+  type+    AWSResponse ImportResourcesToDraftAppVersion =+      ImportResourcesToDraftAppVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ImportResourcesToDraftAppVersionResponse'+            Prelude.<$> (x Data..?> "sourceArns" Core..!@ Prelude.mempty)+            Prelude.<*> ( x+                            Data..?> "terraformSources"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "appArn")+            Prelude.<*> (x Data..:> "appVersion")+            Prelude.<*> (x Data..:> "status")+      )++instance+  Prelude.Hashable+    ImportResourcesToDraftAppVersion+  where+  hashWithSalt+    _salt+    ImportResourcesToDraftAppVersion' {..} =+      _salt+        `Prelude.hashWithSalt` sourceArns+        `Prelude.hashWithSalt` terraformSources+        `Prelude.hashWithSalt` appArn++instance+  Prelude.NFData+    ImportResourcesToDraftAppVersion+  where+  rnf ImportResourcesToDraftAppVersion' {..} =+    Prelude.rnf sourceArns+      `Prelude.seq` Prelude.rnf terraformSources+      `Prelude.seq` Prelude.rnf appArn++instance+  Data.ToHeaders+    ImportResourcesToDraftAppVersion+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ImportResourcesToDraftAppVersion where+  toJSON ImportResourcesToDraftAppVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("sourceArns" Data..=) Prelude.<$> sourceArns,+            ("terraformSources" Data..=)+              Prelude.<$> terraformSources,+            Prelude.Just ("appArn" Data..= appArn)+          ]+      )++instance Data.ToPath ImportResourcesToDraftAppVersion where+  toPath =+    Prelude.const+      "/import-resources-to-draft-app-version"++instance+  Data.ToQuery+    ImportResourcesToDraftAppVersion+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newImportResourcesToDraftAppVersionResponse' smart constructor.+data ImportResourcesToDraftAppVersionResponse = ImportResourcesToDraftAppVersionResponse'+  { -- | The Amazon Resource Names (ARNs) for the resources that you imported.+    sourceArns :: Prelude.Maybe [Prelude.Text],+    -- | A list of terraform file s3 URLs you need to import.+    terraformSources :: Prelude.Maybe [TerraformSource],+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Text,+    -- | The status of the action.+    status :: ResourceImportStatusType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportResourcesToDraftAppVersionResponse' 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:+--+-- 'sourceArns', 'importResourcesToDraftAppVersionResponse_sourceArns' - The Amazon Resource Names (ARNs) for the resources that you imported.+--+-- 'terraformSources', 'importResourcesToDraftAppVersionResponse_terraformSources' - A list of terraform file s3 URLs you need to import.+--+-- 'httpStatus', 'importResourcesToDraftAppVersionResponse_httpStatus' - The response's http status code.+--+-- 'appArn', 'importResourcesToDraftAppVersionResponse_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'importResourcesToDraftAppVersionResponse_appVersion' - The version of the application.+--+-- 'status', 'importResourcesToDraftAppVersionResponse_status' - The status of the action.+newImportResourcesToDraftAppVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'appArn'+  Prelude.Text ->+  -- | 'appVersion'+  Prelude.Text ->+  -- | 'status'+  ResourceImportStatusType ->+  ImportResourcesToDraftAppVersionResponse+newImportResourcesToDraftAppVersionResponse+  pHttpStatus_+  pAppArn_+  pAppVersion_+  pStatus_ =+    ImportResourcesToDraftAppVersionResponse'+      { sourceArns =+          Prelude.Nothing,+        terraformSources =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        appArn = pAppArn_,+        appVersion = pAppVersion_,+        status = pStatus_+      }++-- | The Amazon Resource Names (ARNs) for the resources that you imported.+importResourcesToDraftAppVersionResponse_sourceArns :: Lens.Lens' ImportResourcesToDraftAppVersionResponse (Prelude.Maybe [Prelude.Text])+importResourcesToDraftAppVersionResponse_sourceArns = Lens.lens (\ImportResourcesToDraftAppVersionResponse' {sourceArns} -> sourceArns) (\s@ImportResourcesToDraftAppVersionResponse' {} a -> s {sourceArns = a} :: ImportResourcesToDraftAppVersionResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of terraform file s3 URLs you need to import.+importResourcesToDraftAppVersionResponse_terraformSources :: Lens.Lens' ImportResourcesToDraftAppVersionResponse (Prelude.Maybe [TerraformSource])+importResourcesToDraftAppVersionResponse_terraformSources = Lens.lens (\ImportResourcesToDraftAppVersionResponse' {terraformSources} -> terraformSources) (\s@ImportResourcesToDraftAppVersionResponse' {} a -> s {terraformSources = a} :: ImportResourcesToDraftAppVersionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+importResourcesToDraftAppVersionResponse_httpStatus :: Lens.Lens' ImportResourcesToDraftAppVersionResponse Prelude.Int+importResourcesToDraftAppVersionResponse_httpStatus = Lens.lens (\ImportResourcesToDraftAppVersionResponse' {httpStatus} -> httpStatus) (\s@ImportResourcesToDraftAppVersionResponse' {} a -> s {httpStatus = a} :: ImportResourcesToDraftAppVersionResponse)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+importResourcesToDraftAppVersionResponse_appArn :: Lens.Lens' ImportResourcesToDraftAppVersionResponse Prelude.Text+importResourcesToDraftAppVersionResponse_appArn = Lens.lens (\ImportResourcesToDraftAppVersionResponse' {appArn} -> appArn) (\s@ImportResourcesToDraftAppVersionResponse' {} a -> s {appArn = a} :: ImportResourcesToDraftAppVersionResponse)++-- | The version of the application.+importResourcesToDraftAppVersionResponse_appVersion :: Lens.Lens' ImportResourcesToDraftAppVersionResponse Prelude.Text+importResourcesToDraftAppVersionResponse_appVersion = Lens.lens (\ImportResourcesToDraftAppVersionResponse' {appVersion} -> appVersion) (\s@ImportResourcesToDraftAppVersionResponse' {} a -> s {appVersion = a} :: ImportResourcesToDraftAppVersionResponse)++-- | The status of the action.+importResourcesToDraftAppVersionResponse_status :: Lens.Lens' ImportResourcesToDraftAppVersionResponse ResourceImportStatusType+importResourcesToDraftAppVersionResponse_status = Lens.lens (\ImportResourcesToDraftAppVersionResponse' {status} -> status) (\s@ImportResourcesToDraftAppVersionResponse' {} a -> s {status = a} :: ImportResourcesToDraftAppVersionResponse)++instance+  Prelude.NFData+    ImportResourcesToDraftAppVersionResponse+  where+  rnf ImportResourcesToDraftAppVersionResponse' {..} =+    Prelude.rnf sourceArns+      `Prelude.seq` Prelude.rnf terraformSources+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appVersion+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/ResilienceHub/Lens.hs view
@@ -0,0 +1,649 @@+{-# 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.ResilienceHub.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.ResilienceHub.Lens+  ( -- * Operations++    -- ** AddDraftAppVersionResourceMappings+    addDraftAppVersionResourceMappings_appArn,+    addDraftAppVersionResourceMappings_resourceMappings,+    addDraftAppVersionResourceMappingsResponse_httpStatus,+    addDraftAppVersionResourceMappingsResponse_appArn,+    addDraftAppVersionResourceMappingsResponse_appVersion,+    addDraftAppVersionResourceMappingsResponse_resourceMappings,++    -- ** CreateApp+    createApp_assessmentSchedule,+    createApp_clientToken,+    createApp_description,+    createApp_policyArn,+    createApp_tags,+    createApp_name,+    createAppResponse_httpStatus,+    createAppResponse_app,++    -- ** CreateRecommendationTemplate+    createRecommendationTemplate_bucketName,+    createRecommendationTemplate_clientToken,+    createRecommendationTemplate_format,+    createRecommendationTemplate_recommendationIds,+    createRecommendationTemplate_recommendationTypes,+    createRecommendationTemplate_tags,+    createRecommendationTemplate_assessmentArn,+    createRecommendationTemplate_name,+    createRecommendationTemplateResponse_recommendationTemplate,+    createRecommendationTemplateResponse_httpStatus,++    -- ** CreateResiliencyPolicy+    createResiliencyPolicy_clientToken,+    createResiliencyPolicy_dataLocationConstraint,+    createResiliencyPolicy_policyDescription,+    createResiliencyPolicy_tags,+    createResiliencyPolicy_policy,+    createResiliencyPolicy_policyName,+    createResiliencyPolicy_tier,+    createResiliencyPolicyResponse_httpStatus,+    createResiliencyPolicyResponse_policy,++    -- ** DeleteApp+    deleteApp_clientToken,+    deleteApp_forceDelete,+    deleteApp_appArn,+    deleteAppResponse_httpStatus,+    deleteAppResponse_appArn,++    -- ** DeleteAppAssessment+    deleteAppAssessment_clientToken,+    deleteAppAssessment_assessmentArn,+    deleteAppAssessmentResponse_httpStatus,+    deleteAppAssessmentResponse_assessmentArn,+    deleteAppAssessmentResponse_assessmentStatus,++    -- ** DeleteRecommendationTemplate+    deleteRecommendationTemplate_clientToken,+    deleteRecommendationTemplate_recommendationTemplateArn,+    deleteRecommendationTemplateResponse_httpStatus,+    deleteRecommendationTemplateResponse_recommendationTemplateArn,+    deleteRecommendationTemplateResponse_status,++    -- ** DeleteResiliencyPolicy+    deleteResiliencyPolicy_clientToken,+    deleteResiliencyPolicy_policyArn,+    deleteResiliencyPolicyResponse_httpStatus,+    deleteResiliencyPolicyResponse_policyArn,++    -- ** DescribeApp+    describeApp_appArn,+    describeAppResponse_httpStatus,+    describeAppResponse_app,++    -- ** DescribeAppAssessment+    describeAppAssessment_assessmentArn,+    describeAppAssessmentResponse_httpStatus,+    describeAppAssessmentResponse_assessment,++    -- ** DescribeAppVersionResourcesResolutionStatus+    describeAppVersionResourcesResolutionStatus_resolutionId,+    describeAppVersionResourcesResolutionStatus_appArn,+    describeAppVersionResourcesResolutionStatus_appVersion,+    describeAppVersionResourcesResolutionStatusResponse_errorMessage,+    describeAppVersionResourcesResolutionStatusResponse_httpStatus,+    describeAppVersionResourcesResolutionStatusResponse_appArn,+    describeAppVersionResourcesResolutionStatusResponse_appVersion,+    describeAppVersionResourcesResolutionStatusResponse_resolutionId,+    describeAppVersionResourcesResolutionStatusResponse_status,++    -- ** DescribeAppVersionTemplate+    describeAppVersionTemplate_appArn,+    describeAppVersionTemplate_appVersion,+    describeAppVersionTemplateResponse_httpStatus,+    describeAppVersionTemplateResponse_appArn,+    describeAppVersionTemplateResponse_appTemplateBody,+    describeAppVersionTemplateResponse_appVersion,++    -- ** DescribeDraftAppVersionResourcesImportStatus+    describeDraftAppVersionResourcesImportStatus_appArn,+    describeDraftAppVersionResourcesImportStatusResponse_errorMessage,+    describeDraftAppVersionResourcesImportStatusResponse_httpStatus,+    describeDraftAppVersionResourcesImportStatusResponse_appArn,+    describeDraftAppVersionResourcesImportStatusResponse_appVersion,+    describeDraftAppVersionResourcesImportStatusResponse_status,+    describeDraftAppVersionResourcesImportStatusResponse_statusChangeTime,++    -- ** DescribeResiliencyPolicy+    describeResiliencyPolicy_policyArn,+    describeResiliencyPolicyResponse_httpStatus,+    describeResiliencyPolicyResponse_policy,++    -- ** ImportResourcesToDraftAppVersion+    importResourcesToDraftAppVersion_sourceArns,+    importResourcesToDraftAppVersion_terraformSources,+    importResourcesToDraftAppVersion_appArn,+    importResourcesToDraftAppVersionResponse_sourceArns,+    importResourcesToDraftAppVersionResponse_terraformSources,+    importResourcesToDraftAppVersionResponse_httpStatus,+    importResourcesToDraftAppVersionResponse_appArn,+    importResourcesToDraftAppVersionResponse_appVersion,+    importResourcesToDraftAppVersionResponse_status,++    -- ** ListAlarmRecommendations+    listAlarmRecommendations_maxResults,+    listAlarmRecommendations_nextToken,+    listAlarmRecommendations_assessmentArn,+    listAlarmRecommendationsResponse_nextToken,+    listAlarmRecommendationsResponse_httpStatus,+    listAlarmRecommendationsResponse_alarmRecommendations,++    -- ** ListAppAssessments+    listAppAssessments_appArn,+    listAppAssessments_assessmentName,+    listAppAssessments_assessmentStatus,+    listAppAssessments_complianceStatus,+    listAppAssessments_invoker,+    listAppAssessments_maxResults,+    listAppAssessments_nextToken,+    listAppAssessments_reverseOrder,+    listAppAssessmentsResponse_nextToken,+    listAppAssessmentsResponse_httpStatus,+    listAppAssessmentsResponse_assessmentSummaries,++    -- ** ListAppComponentCompliances+    listAppComponentCompliances_maxResults,+    listAppComponentCompliances_nextToken,+    listAppComponentCompliances_assessmentArn,+    listAppComponentCompliancesResponse_nextToken,+    listAppComponentCompliancesResponse_httpStatus,+    listAppComponentCompliancesResponse_componentCompliances,++    -- ** ListAppComponentRecommendations+    listAppComponentRecommendations_maxResults,+    listAppComponentRecommendations_nextToken,+    listAppComponentRecommendations_assessmentArn,+    listAppComponentRecommendationsResponse_nextToken,+    listAppComponentRecommendationsResponse_httpStatus,+    listAppComponentRecommendationsResponse_componentRecommendations,++    -- ** ListAppVersionResourceMappings+    listAppVersionResourceMappings_maxResults,+    listAppVersionResourceMappings_nextToken,+    listAppVersionResourceMappings_appArn,+    listAppVersionResourceMappings_appVersion,+    listAppVersionResourceMappingsResponse_nextToken,+    listAppVersionResourceMappingsResponse_httpStatus,+    listAppVersionResourceMappingsResponse_resourceMappings,++    -- ** ListAppVersionResources+    listAppVersionResources_maxResults,+    listAppVersionResources_nextToken,+    listAppVersionResources_resolutionId,+    listAppVersionResources_appArn,+    listAppVersionResources_appVersion,+    listAppVersionResourcesResponse_nextToken,+    listAppVersionResourcesResponse_httpStatus,+    listAppVersionResourcesResponse_physicalResources,+    listAppVersionResourcesResponse_resolutionId,++    -- ** ListAppVersions+    listAppVersions_maxResults,+    listAppVersions_nextToken,+    listAppVersions_appArn,+    listAppVersionsResponse_nextToken,+    listAppVersionsResponse_httpStatus,+    listAppVersionsResponse_appVersions,++    -- ** ListApps+    listApps_appArn,+    listApps_maxResults,+    listApps_name,+    listApps_nextToken,+    listAppsResponse_nextToken,+    listAppsResponse_httpStatus,+    listAppsResponse_appSummaries,++    -- ** ListRecommendationTemplates+    listRecommendationTemplates_maxResults,+    listRecommendationTemplates_name,+    listRecommendationTemplates_nextToken,+    listRecommendationTemplates_recommendationTemplateArn,+    listRecommendationTemplates_reverseOrder,+    listRecommendationTemplates_status,+    listRecommendationTemplates_assessmentArn,+    listRecommendationTemplatesResponse_nextToken,+    listRecommendationTemplatesResponse_recommendationTemplates,+    listRecommendationTemplatesResponse_httpStatus,++    -- ** ListResiliencyPolicies+    listResiliencyPolicies_maxResults,+    listResiliencyPolicies_nextToken,+    listResiliencyPolicies_policyName,+    listResiliencyPoliciesResponse_nextToken,+    listResiliencyPoliciesResponse_httpStatus,+    listResiliencyPoliciesResponse_resiliencyPolicies,++    -- ** ListSopRecommendations+    listSopRecommendations_maxResults,+    listSopRecommendations_nextToken,+    listSopRecommendations_assessmentArn,+    listSopRecommendationsResponse_nextToken,+    listSopRecommendationsResponse_httpStatus,+    listSopRecommendationsResponse_sopRecommendations,++    -- ** ListSuggestedResiliencyPolicies+    listSuggestedResiliencyPolicies_maxResults,+    listSuggestedResiliencyPolicies_nextToken,+    listSuggestedResiliencyPoliciesResponse_nextToken,+    listSuggestedResiliencyPoliciesResponse_httpStatus,+    listSuggestedResiliencyPoliciesResponse_resiliencyPolicies,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** ListTestRecommendations+    listTestRecommendations_maxResults,+    listTestRecommendations_nextToken,+    listTestRecommendations_assessmentArn,+    listTestRecommendationsResponse_nextToken,+    listTestRecommendationsResponse_httpStatus,+    listTestRecommendationsResponse_testRecommendations,++    -- ** ListUnsupportedAppVersionResources+    listUnsupportedAppVersionResources_maxResults,+    listUnsupportedAppVersionResources_nextToken,+    listUnsupportedAppVersionResources_resolutionId,+    listUnsupportedAppVersionResources_appArn,+    listUnsupportedAppVersionResources_appVersion,+    listUnsupportedAppVersionResourcesResponse_nextToken,+    listUnsupportedAppVersionResourcesResponse_httpStatus,+    listUnsupportedAppVersionResourcesResponse_resolutionId,+    listUnsupportedAppVersionResourcesResponse_unsupportedResources,++    -- ** PublishAppVersion+    publishAppVersion_appArn,+    publishAppVersionResponse_appVersion,+    publishAppVersionResponse_httpStatus,+    publishAppVersionResponse_appArn,++    -- ** PutDraftAppVersionTemplate+    putDraftAppVersionTemplate_appArn,+    putDraftAppVersionTemplate_appTemplateBody,+    putDraftAppVersionTemplateResponse_appArn,+    putDraftAppVersionTemplateResponse_appVersion,+    putDraftAppVersionTemplateResponse_httpStatus,++    -- ** RemoveDraftAppVersionResourceMappings+    removeDraftAppVersionResourceMappings_appRegistryAppNames,+    removeDraftAppVersionResourceMappings_logicalStackNames,+    removeDraftAppVersionResourceMappings_resourceGroupNames,+    removeDraftAppVersionResourceMappings_resourceNames,+    removeDraftAppVersionResourceMappings_terraformSourceNames,+    removeDraftAppVersionResourceMappings_appArn,+    removeDraftAppVersionResourceMappingsResponse_appArn,+    removeDraftAppVersionResourceMappingsResponse_appVersion,+    removeDraftAppVersionResourceMappingsResponse_httpStatus,++    -- ** ResolveAppVersionResources+    resolveAppVersionResources_appArn,+    resolveAppVersionResources_appVersion,+    resolveAppVersionResourcesResponse_httpStatus,+    resolveAppVersionResourcesResponse_appArn,+    resolveAppVersionResourcesResponse_appVersion,+    resolveAppVersionResourcesResponse_resolutionId,+    resolveAppVersionResourcesResponse_status,++    -- ** StartAppAssessment+    startAppAssessment_clientToken,+    startAppAssessment_tags,+    startAppAssessment_appArn,+    startAppAssessment_appVersion,+    startAppAssessment_assessmentName,+    startAppAssessmentResponse_httpStatus,+    startAppAssessmentResponse_assessment,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateApp+    updateApp_assessmentSchedule,+    updateApp_clearResiliencyPolicyArn,+    updateApp_description,+    updateApp_policyArn,+    updateApp_appArn,+    updateAppResponse_httpStatus,+    updateAppResponse_app,++    -- ** UpdateResiliencyPolicy+    updateResiliencyPolicy_dataLocationConstraint,+    updateResiliencyPolicy_policy,+    updateResiliencyPolicy_policyDescription,+    updateResiliencyPolicy_policyName,+    updateResiliencyPolicy_tier,+    updateResiliencyPolicy_policyArn,+    updateResiliencyPolicyResponse_httpStatus,+    updateResiliencyPolicyResponse_policy,++    -- * Types++    -- ** AlarmRecommendation+    alarmRecommendation_appComponentName,+    alarmRecommendation_description,+    alarmRecommendation_items,+    alarmRecommendation_prerequisite,+    alarmRecommendation_name,+    alarmRecommendation_recommendationId,+    alarmRecommendation_referenceId,+    alarmRecommendation_type,++    -- ** App+    app_assessmentSchedule,+    app_complianceStatus,+    app_description,+    app_lastAppComplianceEvaluationTime,+    app_lastResiliencyScoreEvaluationTime,+    app_policyArn,+    app_resiliencyScore,+    app_status,+    app_tags,+    app_appArn,+    app_creationTime,+    app_name,++    -- ** AppAssessment+    appAssessment_appArn,+    appAssessment_appVersion,+    appAssessment_assessmentName,+    appAssessment_compliance,+    appAssessment_complianceStatus,+    appAssessment_cost,+    appAssessment_endTime,+    appAssessment_message,+    appAssessment_policy,+    appAssessment_resiliencyScore,+    appAssessment_resourceErrorsDetails,+    appAssessment_startTime,+    appAssessment_tags,+    appAssessment_assessmentArn,+    appAssessment_assessmentStatus,+    appAssessment_invoker,++    -- ** AppAssessmentSummary+    appAssessmentSummary_appArn,+    appAssessmentSummary_appVersion,+    appAssessmentSummary_assessmentName,+    appAssessmentSummary_complianceStatus,+    appAssessmentSummary_cost,+    appAssessmentSummary_endTime,+    appAssessmentSummary_invoker,+    appAssessmentSummary_message,+    appAssessmentSummary_resiliencyScore,+    appAssessmentSummary_startTime,+    appAssessmentSummary_assessmentArn,+    appAssessmentSummary_assessmentStatus,++    -- ** AppComponent+    appComponent_name,+    appComponent_type,++    -- ** AppComponentCompliance+    appComponentCompliance_appComponentName,+    appComponentCompliance_compliance,+    appComponentCompliance_cost,+    appComponentCompliance_message,+    appComponentCompliance_resiliencyScore,+    appComponentCompliance_status,++    -- ** AppSummary+    appSummary_assessmentSchedule,+    appSummary_complianceStatus,+    appSummary_description,+    appSummary_resiliencyScore,+    appSummary_status,+    appSummary_appArn,+    appSummary_creationTime,+    appSummary_name,++    -- ** AppVersionSummary+    appVersionSummary_appVersion,++    -- ** ComponentRecommendation+    componentRecommendation_appComponentName,+    componentRecommendation_configRecommendations,+    componentRecommendation_recommendationStatus,++    -- ** ConfigRecommendation+    configRecommendation_appComponentName,+    configRecommendation_compliance,+    configRecommendation_cost,+    configRecommendation_description,+    configRecommendation_haArchitecture,+    configRecommendation_recommendationCompliance,+    configRecommendation_suggestedChanges,+    configRecommendation_name,+    configRecommendation_optimizationType,+    configRecommendation_referenceId,++    -- ** Cost+    cost_amount,+    cost_currency,+    cost_frequency,++    -- ** DisruptionCompliance+    disruptionCompliance_achievableRpoInSecs,+    disruptionCompliance_achievableRtoInSecs,+    disruptionCompliance_currentRpoInSecs,+    disruptionCompliance_currentRtoInSecs,+    disruptionCompliance_message,+    disruptionCompliance_rpoDescription,+    disruptionCompliance_rpoReferenceId,+    disruptionCompliance_rtoDescription,+    disruptionCompliance_rtoReferenceId,+    disruptionCompliance_complianceStatus,++    -- ** FailurePolicy+    failurePolicy_rpoInSecs,+    failurePolicy_rtoInSecs,++    -- ** LogicalResourceId+    logicalResourceId_logicalStackName,+    logicalResourceId_resourceGroupName,+    logicalResourceId_terraformSourceName,+    logicalResourceId_identifier,++    -- ** PhysicalResource+    physicalResource_appComponents,+    physicalResource_resourceName,+    physicalResource_logicalResourceId,+    physicalResource_physicalResourceId,+    physicalResource_resourceType,++    -- ** PhysicalResourceId+    physicalResourceId_awsAccountId,+    physicalResourceId_awsRegion,+    physicalResourceId_identifier,+    physicalResourceId_type,++    -- ** RecommendationDisruptionCompliance+    recommendationDisruptionCompliance_expectedRpoDescription,+    recommendationDisruptionCompliance_expectedRpoInSecs,+    recommendationDisruptionCompliance_expectedRtoDescription,+    recommendationDisruptionCompliance_expectedRtoInSecs,+    recommendationDisruptionCompliance_expectedComplianceStatus,++    -- ** RecommendationItem+    recommendationItem_alreadyImplemented,+    recommendationItem_resourceId,+    recommendationItem_targetAccountId,+    recommendationItem_targetRegion,++    -- ** RecommendationTemplate+    recommendationTemplate_appArn,+    recommendationTemplate_endTime,+    recommendationTemplate_message,+    recommendationTemplate_needsReplacements,+    recommendationTemplate_recommendationIds,+    recommendationTemplate_startTime,+    recommendationTemplate_tags,+    recommendationTemplate_templatesLocation,+    recommendationTemplate_assessmentArn,+    recommendationTemplate_format,+    recommendationTemplate_name,+    recommendationTemplate_recommendationTemplateArn,+    recommendationTemplate_recommendationTypes,+    recommendationTemplate_status,++    -- ** ResiliencyPolicy+    resiliencyPolicy_creationTime,+    resiliencyPolicy_dataLocationConstraint,+    resiliencyPolicy_estimatedCostTier,+    resiliencyPolicy_policy,+    resiliencyPolicy_policyArn,+    resiliencyPolicy_policyDescription,+    resiliencyPolicy_policyName,+    resiliencyPolicy_tags,+    resiliencyPolicy_tier,++    -- ** ResiliencyScore+    resiliencyScore_disruptionScore,+    resiliencyScore_score,++    -- ** ResourceError+    resourceError_logicalResourceId,+    resourceError_physicalResourceId,+    resourceError_reason,++    -- ** ResourceErrorsDetails+    resourceErrorsDetails_hasMoreErrors,+    resourceErrorsDetails_resourceErrors,++    -- ** ResourceMapping+    resourceMapping_appRegistryAppName,+    resourceMapping_logicalStackName,+    resourceMapping_resourceGroupName,+    resourceMapping_resourceName,+    resourceMapping_terraformSourceName,+    resourceMapping_mappingType,+    resourceMapping_physicalResourceId,++    -- ** S3Location+    s3Location_bucket,+    s3Location_prefix,++    -- ** SopRecommendation+    sopRecommendation_appComponentName,+    sopRecommendation_description,+    sopRecommendation_items,+    sopRecommendation_name,+    sopRecommendation_prerequisite,+    sopRecommendation_recommendationId,+    sopRecommendation_referenceId,+    sopRecommendation_serviceType,++    -- ** TerraformSource+    terraformSource_s3StateFileUrl,++    -- ** TestRecommendation+    testRecommendation_appComponentName,+    testRecommendation_dependsOnAlarms,+    testRecommendation_description,+    testRecommendation_intent,+    testRecommendation_items,+    testRecommendation_name,+    testRecommendation_prerequisite,+    testRecommendation_recommendationId,+    testRecommendation_risk,+    testRecommendation_type,+    testRecommendation_referenceId,++    -- ** UnsupportedResource+    unsupportedResource_logicalResourceId,+    unsupportedResource_physicalResourceId,+    unsupportedResource_resourceType,+  )+where++import Amazonka.ResilienceHub.AddDraftAppVersionResourceMappings+import Amazonka.ResilienceHub.CreateApp+import Amazonka.ResilienceHub.CreateRecommendationTemplate+import Amazonka.ResilienceHub.CreateResiliencyPolicy+import Amazonka.ResilienceHub.DeleteApp+import Amazonka.ResilienceHub.DeleteAppAssessment+import Amazonka.ResilienceHub.DeleteRecommendationTemplate+import Amazonka.ResilienceHub.DeleteResiliencyPolicy+import Amazonka.ResilienceHub.DescribeApp+import Amazonka.ResilienceHub.DescribeAppAssessment+import Amazonka.ResilienceHub.DescribeAppVersionResourcesResolutionStatus+import Amazonka.ResilienceHub.DescribeAppVersionTemplate+import Amazonka.ResilienceHub.DescribeDraftAppVersionResourcesImportStatus+import Amazonka.ResilienceHub.DescribeResiliencyPolicy+import Amazonka.ResilienceHub.ImportResourcesToDraftAppVersion+import Amazonka.ResilienceHub.ListAlarmRecommendations+import Amazonka.ResilienceHub.ListAppAssessments+import Amazonka.ResilienceHub.ListAppComponentCompliances+import Amazonka.ResilienceHub.ListAppComponentRecommendations+import Amazonka.ResilienceHub.ListAppVersionResourceMappings+import Amazonka.ResilienceHub.ListAppVersionResources+import Amazonka.ResilienceHub.ListAppVersions+import Amazonka.ResilienceHub.ListApps+import Amazonka.ResilienceHub.ListRecommendationTemplates+import Amazonka.ResilienceHub.ListResiliencyPolicies+import Amazonka.ResilienceHub.ListSopRecommendations+import Amazonka.ResilienceHub.ListSuggestedResiliencyPolicies+import Amazonka.ResilienceHub.ListTagsForResource+import Amazonka.ResilienceHub.ListTestRecommendations+import Amazonka.ResilienceHub.ListUnsupportedAppVersionResources+import Amazonka.ResilienceHub.PublishAppVersion+import Amazonka.ResilienceHub.PutDraftAppVersionTemplate+import Amazonka.ResilienceHub.RemoveDraftAppVersionResourceMappings+import Amazonka.ResilienceHub.ResolveAppVersionResources+import Amazonka.ResilienceHub.StartAppAssessment+import Amazonka.ResilienceHub.TagResource+import Amazonka.ResilienceHub.Types.AlarmRecommendation+import Amazonka.ResilienceHub.Types.App+import Amazonka.ResilienceHub.Types.AppAssessment+import Amazonka.ResilienceHub.Types.AppAssessmentSummary+import Amazonka.ResilienceHub.Types.AppComponent+import Amazonka.ResilienceHub.Types.AppComponentCompliance+import Amazonka.ResilienceHub.Types.AppSummary+import Amazonka.ResilienceHub.Types.AppVersionSummary+import Amazonka.ResilienceHub.Types.ComponentRecommendation+import Amazonka.ResilienceHub.Types.ConfigRecommendation+import Amazonka.ResilienceHub.Types.Cost+import Amazonka.ResilienceHub.Types.DisruptionCompliance+import Amazonka.ResilienceHub.Types.FailurePolicy+import Amazonka.ResilienceHub.Types.LogicalResourceId+import Amazonka.ResilienceHub.Types.PhysicalResource+import Amazonka.ResilienceHub.Types.PhysicalResourceId+import Amazonka.ResilienceHub.Types.RecommendationDisruptionCompliance+import Amazonka.ResilienceHub.Types.RecommendationItem+import Amazonka.ResilienceHub.Types.RecommendationTemplate+import Amazonka.ResilienceHub.Types.ResiliencyPolicy+import Amazonka.ResilienceHub.Types.ResiliencyScore+import Amazonka.ResilienceHub.Types.ResourceError+import Amazonka.ResilienceHub.Types.ResourceErrorsDetails+import Amazonka.ResilienceHub.Types.ResourceMapping+import Amazonka.ResilienceHub.Types.S3Location+import Amazonka.ResilienceHub.Types.SopRecommendation+import Amazonka.ResilienceHub.Types.TerraformSource+import Amazonka.ResilienceHub.Types.TestRecommendation+import Amazonka.ResilienceHub.Types.UnsupportedResource+import Amazonka.ResilienceHub.UntagResource+import Amazonka.ResilienceHub.UpdateApp+import Amazonka.ResilienceHub.UpdateResiliencyPolicy
+ gen/Amazonka/ResilienceHub/ListAlarmRecommendations.hs view
@@ -0,0 +1,248 @@+{-# 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.ResilienceHub.ListAlarmRecommendations+-- 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 alarm recommendations for a AWS Resilience Hub application.+module Amazonka.ResilienceHub.ListAlarmRecommendations+  ( -- * Creating a Request+    ListAlarmRecommendations (..),+    newListAlarmRecommendations,++    -- * Request Lenses+    listAlarmRecommendations_maxResults,+    listAlarmRecommendations_nextToken,+    listAlarmRecommendations_assessmentArn,++    -- * Destructuring the Response+    ListAlarmRecommendationsResponse (..),+    newListAlarmRecommendationsResponse,++    -- * Response Lenses+    listAlarmRecommendationsResponse_nextToken,+    listAlarmRecommendationsResponse_httpStatus,+    listAlarmRecommendationsResponse_alarmRecommendations,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAlarmRecommendations' smart constructor.+data ListAlarmRecommendations = ListAlarmRecommendations'+  { -- | The maximum number of results to include in the response. If more+    -- results exist than the specified @MaxResults@ value, a token is included+    -- in the response so that the remaining results can be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Null, or the token from a previous call to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the assessment. The format for this+    -- ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    assessmentArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAlarmRecommendations' 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', 'listAlarmRecommendations_maxResults' - The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'listAlarmRecommendations_nextToken' - Null, or the token from a previous call to get the next set of results.+--+-- 'assessmentArn', 'listAlarmRecommendations_assessmentArn' - The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newListAlarmRecommendations ::+  -- | 'assessmentArn'+  Prelude.Text ->+  ListAlarmRecommendations+newListAlarmRecommendations pAssessmentArn_ =+  ListAlarmRecommendations'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      assessmentArn = pAssessmentArn_+    }++-- | The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+listAlarmRecommendations_maxResults :: Lens.Lens' ListAlarmRecommendations (Prelude.Maybe Prelude.Natural)+listAlarmRecommendations_maxResults = Lens.lens (\ListAlarmRecommendations' {maxResults} -> maxResults) (\s@ListAlarmRecommendations' {} a -> s {maxResults = a} :: ListAlarmRecommendations)++-- | Null, or the token from a previous call to get the next set of results.+listAlarmRecommendations_nextToken :: Lens.Lens' ListAlarmRecommendations (Prelude.Maybe Prelude.Text)+listAlarmRecommendations_nextToken = Lens.lens (\ListAlarmRecommendations' {nextToken} -> nextToken) (\s@ListAlarmRecommendations' {} a -> s {nextToken = a} :: ListAlarmRecommendations)++-- | The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+listAlarmRecommendations_assessmentArn :: Lens.Lens' ListAlarmRecommendations Prelude.Text+listAlarmRecommendations_assessmentArn = Lens.lens (\ListAlarmRecommendations' {assessmentArn} -> assessmentArn) (\s@ListAlarmRecommendations' {} a -> s {assessmentArn = a} :: ListAlarmRecommendations)++instance Core.AWSRequest ListAlarmRecommendations where+  type+    AWSResponse ListAlarmRecommendations =+      ListAlarmRecommendationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAlarmRecommendationsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "alarmRecommendations"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable ListAlarmRecommendations where+  hashWithSalt _salt ListAlarmRecommendations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` assessmentArn++instance Prelude.NFData ListAlarmRecommendations where+  rnf ListAlarmRecommendations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf assessmentArn++instance Data.ToHeaders ListAlarmRecommendations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAlarmRecommendations where+  toJSON ListAlarmRecommendations' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("assessmentArn" Data..= assessmentArn)+          ]+      )++instance Data.ToPath ListAlarmRecommendations where+  toPath = Prelude.const "/list-alarm-recommendations"++instance Data.ToQuery ListAlarmRecommendations where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAlarmRecommendationsResponse' smart constructor.+data ListAlarmRecommendationsResponse = ListAlarmRecommendationsResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The alarm recommendations for an AWS Resilience Hub application,+    -- returned as an object. This object includes application component names,+    -- descriptions, information about whether a recommendation has already+    -- been implemented or not, prerequisites, and more.+    alarmRecommendations :: [AlarmRecommendation]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAlarmRecommendationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listAlarmRecommendationsResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listAlarmRecommendationsResponse_httpStatus' - The response's http status code.+--+-- 'alarmRecommendations', 'listAlarmRecommendationsResponse_alarmRecommendations' - The alarm recommendations for an AWS Resilience Hub application,+-- returned as an object. This object includes application component names,+-- descriptions, information about whether a recommendation has already+-- been implemented or not, prerequisites, and more.+newListAlarmRecommendationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAlarmRecommendationsResponse+newListAlarmRecommendationsResponse pHttpStatus_ =+  ListAlarmRecommendationsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      alarmRecommendations = Prelude.mempty+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listAlarmRecommendationsResponse_nextToken :: Lens.Lens' ListAlarmRecommendationsResponse (Prelude.Maybe Prelude.Text)+listAlarmRecommendationsResponse_nextToken = Lens.lens (\ListAlarmRecommendationsResponse' {nextToken} -> nextToken) (\s@ListAlarmRecommendationsResponse' {} a -> s {nextToken = a} :: ListAlarmRecommendationsResponse)++-- | The response's http status code.+listAlarmRecommendationsResponse_httpStatus :: Lens.Lens' ListAlarmRecommendationsResponse Prelude.Int+listAlarmRecommendationsResponse_httpStatus = Lens.lens (\ListAlarmRecommendationsResponse' {httpStatus} -> httpStatus) (\s@ListAlarmRecommendationsResponse' {} a -> s {httpStatus = a} :: ListAlarmRecommendationsResponse)++-- | The alarm recommendations for an AWS Resilience Hub application,+-- returned as an object. This object includes application component names,+-- descriptions, information about whether a recommendation has already+-- been implemented or not, prerequisites, and more.+listAlarmRecommendationsResponse_alarmRecommendations :: Lens.Lens' ListAlarmRecommendationsResponse [AlarmRecommendation]+listAlarmRecommendationsResponse_alarmRecommendations = Lens.lens (\ListAlarmRecommendationsResponse' {alarmRecommendations} -> alarmRecommendations) (\s@ListAlarmRecommendationsResponse' {} a -> s {alarmRecommendations = a} :: ListAlarmRecommendationsResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListAlarmRecommendationsResponse+  where+  rnf ListAlarmRecommendationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf alarmRecommendations
+ gen/Amazonka/ResilienceHub/ListAppAssessments.hs view
@@ -0,0 +1,306 @@+{-# 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.ResilienceHub.ListAppAssessments+-- 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 assessments for an AWS Resilience Hub application. You can use+-- request parameters to refine the results for the response object.+module Amazonka.ResilienceHub.ListAppAssessments+  ( -- * Creating a Request+    ListAppAssessments (..),+    newListAppAssessments,++    -- * Request Lenses+    listAppAssessments_appArn,+    listAppAssessments_assessmentName,+    listAppAssessments_assessmentStatus,+    listAppAssessments_complianceStatus,+    listAppAssessments_invoker,+    listAppAssessments_maxResults,+    listAppAssessments_nextToken,+    listAppAssessments_reverseOrder,++    -- * Destructuring the Response+    ListAppAssessmentsResponse (..),+    newListAppAssessmentsResponse,++    -- * Response Lenses+    listAppAssessmentsResponse_nextToken,+    listAppAssessmentsResponse_httpStatus,+    listAppAssessmentsResponse_assessmentSummaries,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAppAssessments' smart constructor.+data ListAppAssessments = ListAppAssessments'+  { -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Maybe Prelude.Text,+    -- | The name for the assessment.+    assessmentName :: Prelude.Maybe Prelude.Text,+    -- | The current status of the assessment for the resiliency policy.+    assessmentStatus :: Prelude.Maybe (Prelude.NonEmpty AssessmentStatus),+    -- | The current status of compliance for the resiliency policy.+    complianceStatus :: Prelude.Maybe ComplianceStatus,+    -- | Specifies the entity that invoked a specific assessment, either a @User@+    -- or the @System@.+    invoker :: Prelude.Maybe AssessmentInvoker,+    -- | The maximum number of results to include in the response. If more+    -- results exist than the specified @MaxResults@ value, a token is included+    -- in the response so that the remaining results can be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Null, or the token from a previous call to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The default is to sort by ascending __startTime__. To sort by descending+    -- __startTime__, set reverseOrder to @true@.+    reverseOrder :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAppAssessments' 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:+--+-- 'appArn', 'listAppAssessments_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'assessmentName', 'listAppAssessments_assessmentName' - The name for the assessment.+--+-- 'assessmentStatus', 'listAppAssessments_assessmentStatus' - The current status of the assessment for the resiliency policy.+--+-- 'complianceStatus', 'listAppAssessments_complianceStatus' - The current status of compliance for the resiliency policy.+--+-- 'invoker', 'listAppAssessments_invoker' - Specifies the entity that invoked a specific assessment, either a @User@+-- or the @System@.+--+-- 'maxResults', 'listAppAssessments_maxResults' - The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'listAppAssessments_nextToken' - Null, or the token from a previous call to get the next set of results.+--+-- 'reverseOrder', 'listAppAssessments_reverseOrder' - The default is to sort by ascending __startTime__. To sort by descending+-- __startTime__, set reverseOrder to @true@.+newListAppAssessments ::+  ListAppAssessments+newListAppAssessments =+  ListAppAssessments'+    { appArn = Prelude.Nothing,+      assessmentName = Prelude.Nothing,+      assessmentStatus = Prelude.Nothing,+      complianceStatus = Prelude.Nothing,+      invoker = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      reverseOrder = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+listAppAssessments_appArn :: Lens.Lens' ListAppAssessments (Prelude.Maybe Prelude.Text)+listAppAssessments_appArn = Lens.lens (\ListAppAssessments' {appArn} -> appArn) (\s@ListAppAssessments' {} a -> s {appArn = a} :: ListAppAssessments)++-- | The name for the assessment.+listAppAssessments_assessmentName :: Lens.Lens' ListAppAssessments (Prelude.Maybe Prelude.Text)+listAppAssessments_assessmentName = Lens.lens (\ListAppAssessments' {assessmentName} -> assessmentName) (\s@ListAppAssessments' {} a -> s {assessmentName = a} :: ListAppAssessments)++-- | The current status of the assessment for the resiliency policy.+listAppAssessments_assessmentStatus :: Lens.Lens' ListAppAssessments (Prelude.Maybe (Prelude.NonEmpty AssessmentStatus))+listAppAssessments_assessmentStatus = Lens.lens (\ListAppAssessments' {assessmentStatus} -> assessmentStatus) (\s@ListAppAssessments' {} a -> s {assessmentStatus = a} :: ListAppAssessments) Prelude.. Lens.mapping Lens.coerced++-- | The current status of compliance for the resiliency policy.+listAppAssessments_complianceStatus :: Lens.Lens' ListAppAssessments (Prelude.Maybe ComplianceStatus)+listAppAssessments_complianceStatus = Lens.lens (\ListAppAssessments' {complianceStatus} -> complianceStatus) (\s@ListAppAssessments' {} a -> s {complianceStatus = a} :: ListAppAssessments)++-- | Specifies the entity that invoked a specific assessment, either a @User@+-- or the @System@.+listAppAssessments_invoker :: Lens.Lens' ListAppAssessments (Prelude.Maybe AssessmentInvoker)+listAppAssessments_invoker = Lens.lens (\ListAppAssessments' {invoker} -> invoker) (\s@ListAppAssessments' {} a -> s {invoker = a} :: ListAppAssessments)++-- | The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+listAppAssessments_maxResults :: Lens.Lens' ListAppAssessments (Prelude.Maybe Prelude.Natural)+listAppAssessments_maxResults = Lens.lens (\ListAppAssessments' {maxResults} -> maxResults) (\s@ListAppAssessments' {} a -> s {maxResults = a} :: ListAppAssessments)++-- | Null, or the token from a previous call to get the next set of results.+listAppAssessments_nextToken :: Lens.Lens' ListAppAssessments (Prelude.Maybe Prelude.Text)+listAppAssessments_nextToken = Lens.lens (\ListAppAssessments' {nextToken} -> nextToken) (\s@ListAppAssessments' {} a -> s {nextToken = a} :: ListAppAssessments)++-- | The default is to sort by ascending __startTime__. To sort by descending+-- __startTime__, set reverseOrder to @true@.+listAppAssessments_reverseOrder :: Lens.Lens' ListAppAssessments (Prelude.Maybe Prelude.Bool)+listAppAssessments_reverseOrder = Lens.lens (\ListAppAssessments' {reverseOrder} -> reverseOrder) (\s@ListAppAssessments' {} a -> s {reverseOrder = a} :: ListAppAssessments)++instance Core.AWSRequest ListAppAssessments where+  type+    AWSResponse ListAppAssessments =+      ListAppAssessmentsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAppAssessmentsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "assessmentSummaries"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable ListAppAssessments where+  hashWithSalt _salt ListAppAssessments' {..} =+    _salt+      `Prelude.hashWithSalt` appArn+      `Prelude.hashWithSalt` assessmentName+      `Prelude.hashWithSalt` assessmentStatus+      `Prelude.hashWithSalt` complianceStatus+      `Prelude.hashWithSalt` invoker+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` reverseOrder++instance Prelude.NFData ListAppAssessments where+  rnf ListAppAssessments' {..} =+    Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf assessmentName+      `Prelude.seq` Prelude.rnf assessmentStatus+      `Prelude.seq` Prelude.rnf complianceStatus+      `Prelude.seq` Prelude.rnf invoker+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf reverseOrder++instance Data.ToHeaders ListAppAssessments where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListAppAssessments where+  toPath = Prelude.const "/list-app-assessments"++instance Data.ToQuery ListAppAssessments where+  toQuery ListAppAssessments' {..} =+    Prelude.mconcat+      [ "appArn" Data.=: appArn,+        "assessmentName" Data.=: assessmentName,+        "assessmentStatus"+          Data.=: Data.toQuery+            ( Data.toQueryList "member"+                Prelude.<$> assessmentStatus+            ),+        "complianceStatus" Data.=: complianceStatus,+        "invoker" Data.=: invoker,+        "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "reverseOrder" Data.=: reverseOrder+      ]++-- | /See:/ 'newListAppAssessmentsResponse' smart constructor.+data ListAppAssessmentsResponse = ListAppAssessmentsResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The summaries for the specified assessments, returned as an object. This+    -- object includes application versions, associated Amazon Resource Numbers+    -- (ARNs), cost, messages, resiliency scores, and more.+    assessmentSummaries :: [AppAssessmentSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAppAssessmentsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listAppAssessmentsResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listAppAssessmentsResponse_httpStatus' - The response's http status code.+--+-- 'assessmentSummaries', 'listAppAssessmentsResponse_assessmentSummaries' - The summaries for the specified assessments, returned as an object. This+-- object includes application versions, associated Amazon Resource Numbers+-- (ARNs), cost, messages, resiliency scores, and more.+newListAppAssessmentsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAppAssessmentsResponse+newListAppAssessmentsResponse pHttpStatus_ =+  ListAppAssessmentsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      assessmentSummaries = Prelude.mempty+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listAppAssessmentsResponse_nextToken :: Lens.Lens' ListAppAssessmentsResponse (Prelude.Maybe Prelude.Text)+listAppAssessmentsResponse_nextToken = Lens.lens (\ListAppAssessmentsResponse' {nextToken} -> nextToken) (\s@ListAppAssessmentsResponse' {} a -> s {nextToken = a} :: ListAppAssessmentsResponse)++-- | The response's http status code.+listAppAssessmentsResponse_httpStatus :: Lens.Lens' ListAppAssessmentsResponse Prelude.Int+listAppAssessmentsResponse_httpStatus = Lens.lens (\ListAppAssessmentsResponse' {httpStatus} -> httpStatus) (\s@ListAppAssessmentsResponse' {} a -> s {httpStatus = a} :: ListAppAssessmentsResponse)++-- | The summaries for the specified assessments, returned as an object. This+-- object includes application versions, associated Amazon Resource Numbers+-- (ARNs), cost, messages, resiliency scores, and more.+listAppAssessmentsResponse_assessmentSummaries :: Lens.Lens' ListAppAssessmentsResponse [AppAssessmentSummary]+listAppAssessmentsResponse_assessmentSummaries = Lens.lens (\ListAppAssessmentsResponse' {assessmentSummaries} -> assessmentSummaries) (\s@ListAppAssessmentsResponse' {} a -> s {assessmentSummaries = a} :: ListAppAssessmentsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListAppAssessmentsResponse where+  rnf ListAppAssessmentsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf assessmentSummaries
+ gen/Amazonka/ResilienceHub/ListAppComponentCompliances.hs view
@@ -0,0 +1,246 @@+{-# 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.ResilienceHub.ListAppComponentCompliances+-- 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 compliances for an AWS Resilience Hub component.+module Amazonka.ResilienceHub.ListAppComponentCompliances+  ( -- * Creating a Request+    ListAppComponentCompliances (..),+    newListAppComponentCompliances,++    -- * Request Lenses+    listAppComponentCompliances_maxResults,+    listAppComponentCompliances_nextToken,+    listAppComponentCompliances_assessmentArn,++    -- * Destructuring the Response+    ListAppComponentCompliancesResponse (..),+    newListAppComponentCompliancesResponse,++    -- * Response Lenses+    listAppComponentCompliancesResponse_nextToken,+    listAppComponentCompliancesResponse_httpStatus,+    listAppComponentCompliancesResponse_componentCompliances,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAppComponentCompliances' smart constructor.+data ListAppComponentCompliances = ListAppComponentCompliances'+  { -- | The maximum number of results to include in the response. If more+    -- results exist than the specified @MaxResults@ value, a token is included+    -- in the response so that the remaining results can be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Null, or the token from a previous call to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the assessment. The format for this+    -- ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    assessmentArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAppComponentCompliances' 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', 'listAppComponentCompliances_maxResults' - The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'listAppComponentCompliances_nextToken' - Null, or the token from a previous call to get the next set of results.+--+-- 'assessmentArn', 'listAppComponentCompliances_assessmentArn' - The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newListAppComponentCompliances ::+  -- | 'assessmentArn'+  Prelude.Text ->+  ListAppComponentCompliances+newListAppComponentCompliances pAssessmentArn_ =+  ListAppComponentCompliances'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      assessmentArn = pAssessmentArn_+    }++-- | The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+listAppComponentCompliances_maxResults :: Lens.Lens' ListAppComponentCompliances (Prelude.Maybe Prelude.Natural)+listAppComponentCompliances_maxResults = Lens.lens (\ListAppComponentCompliances' {maxResults} -> maxResults) (\s@ListAppComponentCompliances' {} a -> s {maxResults = a} :: ListAppComponentCompliances)++-- | Null, or the token from a previous call to get the next set of results.+listAppComponentCompliances_nextToken :: Lens.Lens' ListAppComponentCompliances (Prelude.Maybe Prelude.Text)+listAppComponentCompliances_nextToken = Lens.lens (\ListAppComponentCompliances' {nextToken} -> nextToken) (\s@ListAppComponentCompliances' {} a -> s {nextToken = a} :: ListAppComponentCompliances)++-- | The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+listAppComponentCompliances_assessmentArn :: Lens.Lens' ListAppComponentCompliances Prelude.Text+listAppComponentCompliances_assessmentArn = Lens.lens (\ListAppComponentCompliances' {assessmentArn} -> assessmentArn) (\s@ListAppComponentCompliances' {} a -> s {assessmentArn = a} :: ListAppComponentCompliances)++instance Core.AWSRequest ListAppComponentCompliances where+  type+    AWSResponse ListAppComponentCompliances =+      ListAppComponentCompliancesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAppComponentCompliancesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "componentCompliances"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable ListAppComponentCompliances where+  hashWithSalt _salt ListAppComponentCompliances' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` assessmentArn++instance Prelude.NFData ListAppComponentCompliances where+  rnf ListAppComponentCompliances' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf assessmentArn++instance Data.ToHeaders ListAppComponentCompliances where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAppComponentCompliances where+  toJSON ListAppComponentCompliances' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("assessmentArn" Data..= assessmentArn)+          ]+      )++instance Data.ToPath ListAppComponentCompliances where+  toPath =+    Prelude.const "/list-app-component-compliances"++instance Data.ToQuery ListAppComponentCompliances where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAppComponentCompliancesResponse' smart constructor.+data ListAppComponentCompliancesResponse = ListAppComponentCompliancesResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The compliances for an AWS Resilience Hub application component,+    -- returned as an object. This object contains component names,+    -- compliances, costs, resiliency scores, outage scores, and more.+    componentCompliances :: [AppComponentCompliance]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAppComponentCompliancesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listAppComponentCompliancesResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listAppComponentCompliancesResponse_httpStatus' - The response's http status code.+--+-- 'componentCompliances', 'listAppComponentCompliancesResponse_componentCompliances' - The compliances for an AWS Resilience Hub application component,+-- returned as an object. This object contains component names,+-- compliances, costs, resiliency scores, outage scores, and more.+newListAppComponentCompliancesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAppComponentCompliancesResponse+newListAppComponentCompliancesResponse pHttpStatus_ =+  ListAppComponentCompliancesResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      componentCompliances = Prelude.mempty+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listAppComponentCompliancesResponse_nextToken :: Lens.Lens' ListAppComponentCompliancesResponse (Prelude.Maybe Prelude.Text)+listAppComponentCompliancesResponse_nextToken = Lens.lens (\ListAppComponentCompliancesResponse' {nextToken} -> nextToken) (\s@ListAppComponentCompliancesResponse' {} a -> s {nextToken = a} :: ListAppComponentCompliancesResponse)++-- | The response's http status code.+listAppComponentCompliancesResponse_httpStatus :: Lens.Lens' ListAppComponentCompliancesResponse Prelude.Int+listAppComponentCompliancesResponse_httpStatus = Lens.lens (\ListAppComponentCompliancesResponse' {httpStatus} -> httpStatus) (\s@ListAppComponentCompliancesResponse' {} a -> s {httpStatus = a} :: ListAppComponentCompliancesResponse)++-- | The compliances for an AWS Resilience Hub application component,+-- returned as an object. This object contains component names,+-- compliances, costs, resiliency scores, outage scores, and more.+listAppComponentCompliancesResponse_componentCompliances :: Lens.Lens' ListAppComponentCompliancesResponse [AppComponentCompliance]+listAppComponentCompliancesResponse_componentCompliances = Lens.lens (\ListAppComponentCompliancesResponse' {componentCompliances} -> componentCompliances) (\s@ListAppComponentCompliancesResponse' {} a -> s {componentCompliances = a} :: ListAppComponentCompliancesResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListAppComponentCompliancesResponse+  where+  rnf ListAppComponentCompliancesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf componentCompliances
+ gen/Amazonka/ResilienceHub/ListAppComponentRecommendations.hs view
@@ -0,0 +1,262 @@+{-# 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.ResilienceHub.ListAppComponentRecommendations+-- 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 recommendations for an AWS Resilience Hub component.+module Amazonka.ResilienceHub.ListAppComponentRecommendations+  ( -- * Creating a Request+    ListAppComponentRecommendations (..),+    newListAppComponentRecommendations,++    -- * Request Lenses+    listAppComponentRecommendations_maxResults,+    listAppComponentRecommendations_nextToken,+    listAppComponentRecommendations_assessmentArn,++    -- * Destructuring the Response+    ListAppComponentRecommendationsResponse (..),+    newListAppComponentRecommendationsResponse,++    -- * Response Lenses+    listAppComponentRecommendationsResponse_nextToken,+    listAppComponentRecommendationsResponse_httpStatus,+    listAppComponentRecommendationsResponse_componentRecommendations,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAppComponentRecommendations' smart constructor.+data ListAppComponentRecommendations = ListAppComponentRecommendations'+  { -- | The maximum number of results to include in the response. If more+    -- results exist than the specified @MaxResults@ value, a token is included+    -- in the response so that the remaining results can be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Null, or the token from a previous call to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the assessment. The format for this+    -- ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    assessmentArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAppComponentRecommendations' 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', 'listAppComponentRecommendations_maxResults' - The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'listAppComponentRecommendations_nextToken' - Null, or the token from a previous call to get the next set of results.+--+-- 'assessmentArn', 'listAppComponentRecommendations_assessmentArn' - The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newListAppComponentRecommendations ::+  -- | 'assessmentArn'+  Prelude.Text ->+  ListAppComponentRecommendations+newListAppComponentRecommendations pAssessmentArn_ =+  ListAppComponentRecommendations'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      assessmentArn = pAssessmentArn_+    }++-- | The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+listAppComponentRecommendations_maxResults :: Lens.Lens' ListAppComponentRecommendations (Prelude.Maybe Prelude.Natural)+listAppComponentRecommendations_maxResults = Lens.lens (\ListAppComponentRecommendations' {maxResults} -> maxResults) (\s@ListAppComponentRecommendations' {} a -> s {maxResults = a} :: ListAppComponentRecommendations)++-- | Null, or the token from a previous call to get the next set of results.+listAppComponentRecommendations_nextToken :: Lens.Lens' ListAppComponentRecommendations (Prelude.Maybe Prelude.Text)+listAppComponentRecommendations_nextToken = Lens.lens (\ListAppComponentRecommendations' {nextToken} -> nextToken) (\s@ListAppComponentRecommendations' {} a -> s {nextToken = a} :: ListAppComponentRecommendations)++-- | The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+listAppComponentRecommendations_assessmentArn :: Lens.Lens' ListAppComponentRecommendations Prelude.Text+listAppComponentRecommendations_assessmentArn = Lens.lens (\ListAppComponentRecommendations' {assessmentArn} -> assessmentArn) (\s@ListAppComponentRecommendations' {} a -> s {assessmentArn = a} :: ListAppComponentRecommendations)++instance+  Core.AWSRequest+    ListAppComponentRecommendations+  where+  type+    AWSResponse ListAppComponentRecommendations =+      ListAppComponentRecommendationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAppComponentRecommendationsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "componentRecommendations"+                            Core..!@ Prelude.mempty+                        )+      )++instance+  Prelude.Hashable+    ListAppComponentRecommendations+  where+  hashWithSalt+    _salt+    ListAppComponentRecommendations' {..} =+      _salt+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` assessmentArn++instance+  Prelude.NFData+    ListAppComponentRecommendations+  where+  rnf ListAppComponentRecommendations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf assessmentArn++instance+  Data.ToHeaders+    ListAppComponentRecommendations+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAppComponentRecommendations where+  toJSON ListAppComponentRecommendations' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("assessmentArn" Data..= assessmentArn)+          ]+      )++instance Data.ToPath ListAppComponentRecommendations where+  toPath =+    Prelude.const "/list-app-component-recommendations"++instance Data.ToQuery ListAppComponentRecommendations where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAppComponentRecommendationsResponse' smart constructor.+data ListAppComponentRecommendationsResponse = ListAppComponentRecommendationsResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The recommendations for an Resilience Hub application component,+    -- returned as an object. This object contains component names,+    -- configuration recommendations, and recommendation statuses.+    componentRecommendations :: [ComponentRecommendation]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAppComponentRecommendationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listAppComponentRecommendationsResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listAppComponentRecommendationsResponse_httpStatus' - The response's http status code.+--+-- 'componentRecommendations', 'listAppComponentRecommendationsResponse_componentRecommendations' - The recommendations for an Resilience Hub application component,+-- returned as an object. This object contains component names,+-- configuration recommendations, and recommendation statuses.+newListAppComponentRecommendationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAppComponentRecommendationsResponse+newListAppComponentRecommendationsResponse+  pHttpStatus_ =+    ListAppComponentRecommendationsResponse'+      { nextToken =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        componentRecommendations =+          Prelude.mempty+      }++-- | The token for the next set of results, or null if there are no more+-- results.+listAppComponentRecommendationsResponse_nextToken :: Lens.Lens' ListAppComponentRecommendationsResponse (Prelude.Maybe Prelude.Text)+listAppComponentRecommendationsResponse_nextToken = Lens.lens (\ListAppComponentRecommendationsResponse' {nextToken} -> nextToken) (\s@ListAppComponentRecommendationsResponse' {} a -> s {nextToken = a} :: ListAppComponentRecommendationsResponse)++-- | The response's http status code.+listAppComponentRecommendationsResponse_httpStatus :: Lens.Lens' ListAppComponentRecommendationsResponse Prelude.Int+listAppComponentRecommendationsResponse_httpStatus = Lens.lens (\ListAppComponentRecommendationsResponse' {httpStatus} -> httpStatus) (\s@ListAppComponentRecommendationsResponse' {} a -> s {httpStatus = a} :: ListAppComponentRecommendationsResponse)++-- | The recommendations for an Resilience Hub application component,+-- returned as an object. This object contains component names,+-- configuration recommendations, and recommendation statuses.+listAppComponentRecommendationsResponse_componentRecommendations :: Lens.Lens' ListAppComponentRecommendationsResponse [ComponentRecommendation]+listAppComponentRecommendationsResponse_componentRecommendations = Lens.lens (\ListAppComponentRecommendationsResponse' {componentRecommendations} -> componentRecommendations) (\s@ListAppComponentRecommendationsResponse' {} a -> s {componentRecommendations = a} :: ListAppComponentRecommendationsResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListAppComponentRecommendationsResponse+  where+  rnf ListAppComponentRecommendationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf componentRecommendations
+ gen/Amazonka/ResilienceHub/ListAppVersionResourceMappings.hs view
@@ -0,0 +1,282 @@+{-# 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.ResilienceHub.ListAppVersionResourceMappings+-- 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 how the resources in an application version are mapped\/sourced+-- from. Mappings can be physical resource identifiers, CloudFormation+-- stacks, resource-groups, or an application registry app.+module Amazonka.ResilienceHub.ListAppVersionResourceMappings+  ( -- * Creating a Request+    ListAppVersionResourceMappings (..),+    newListAppVersionResourceMappings,++    -- * Request Lenses+    listAppVersionResourceMappings_maxResults,+    listAppVersionResourceMappings_nextToken,+    listAppVersionResourceMappings_appArn,+    listAppVersionResourceMappings_appVersion,++    -- * Destructuring the Response+    ListAppVersionResourceMappingsResponse (..),+    newListAppVersionResourceMappingsResponse,++    -- * Response Lenses+    listAppVersionResourceMappingsResponse_nextToken,+    listAppVersionResourceMappingsResponse_httpStatus,+    listAppVersionResourceMappingsResponse_resourceMappings,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAppVersionResourceMappings' smart constructor.+data ListAppVersionResourceMappings = ListAppVersionResourceMappings'+  { -- | The maximum number of results to include in the response. If more+    -- results exist than the specified @MaxResults@ value, a token is included+    -- in the response so that the remaining results can be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Null, or the token from a previous call to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAppVersionResourceMappings' 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', 'listAppVersionResourceMappings_maxResults' - The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'listAppVersionResourceMappings_nextToken' - Null, or the token from a previous call to get the next set of results.+--+-- 'appArn', 'listAppVersionResourceMappings_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'listAppVersionResourceMappings_appVersion' - The version of the application.+newListAppVersionResourceMappings ::+  -- | 'appArn'+  Prelude.Text ->+  -- | 'appVersion'+  Prelude.Text ->+  ListAppVersionResourceMappings+newListAppVersionResourceMappings+  pAppArn_+  pAppVersion_ =+    ListAppVersionResourceMappings'+      { maxResults =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        appArn = pAppArn_,+        appVersion = pAppVersion_+      }++-- | The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+listAppVersionResourceMappings_maxResults :: Lens.Lens' ListAppVersionResourceMappings (Prelude.Maybe Prelude.Natural)+listAppVersionResourceMappings_maxResults = Lens.lens (\ListAppVersionResourceMappings' {maxResults} -> maxResults) (\s@ListAppVersionResourceMappings' {} a -> s {maxResults = a} :: ListAppVersionResourceMappings)++-- | Null, or the token from a previous call to get the next set of results.+listAppVersionResourceMappings_nextToken :: Lens.Lens' ListAppVersionResourceMappings (Prelude.Maybe Prelude.Text)+listAppVersionResourceMappings_nextToken = Lens.lens (\ListAppVersionResourceMappings' {nextToken} -> nextToken) (\s@ListAppVersionResourceMappings' {} a -> s {nextToken = a} :: ListAppVersionResourceMappings)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+listAppVersionResourceMappings_appArn :: Lens.Lens' ListAppVersionResourceMappings Prelude.Text+listAppVersionResourceMappings_appArn = Lens.lens (\ListAppVersionResourceMappings' {appArn} -> appArn) (\s@ListAppVersionResourceMappings' {} a -> s {appArn = a} :: ListAppVersionResourceMappings)++-- | The version of the application.+listAppVersionResourceMappings_appVersion :: Lens.Lens' ListAppVersionResourceMappings Prelude.Text+listAppVersionResourceMappings_appVersion = Lens.lens (\ListAppVersionResourceMappings' {appVersion} -> appVersion) (\s@ListAppVersionResourceMappings' {} a -> s {appVersion = a} :: ListAppVersionResourceMappings)++instance+  Core.AWSRequest+    ListAppVersionResourceMappings+  where+  type+    AWSResponse ListAppVersionResourceMappings =+      ListAppVersionResourceMappingsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAppVersionResourceMappingsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "resourceMappings"+                            Core..!@ Prelude.mempty+                        )+      )++instance+  Prelude.Hashable+    ListAppVersionResourceMappings+  where+  hashWithSalt+    _salt+    ListAppVersionResourceMappings' {..} =+      _salt+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` appArn+        `Prelude.hashWithSalt` appVersion++instance+  Prelude.NFData+    ListAppVersionResourceMappings+  where+  rnf ListAppVersionResourceMappings' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appVersion++instance+  Data.ToHeaders+    ListAppVersionResourceMappings+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAppVersionResourceMappings where+  toJSON ListAppVersionResourceMappings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("appArn" Data..= appArn),+            Prelude.Just ("appVersion" Data..= appVersion)+          ]+      )++instance Data.ToPath ListAppVersionResourceMappings where+  toPath =+    Prelude.const "/list-app-version-resource-mappings"++instance Data.ToQuery ListAppVersionResourceMappings where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAppVersionResourceMappingsResponse' smart constructor.+data ListAppVersionResourceMappingsResponse = ListAppVersionResourceMappingsResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Mappings used to map logical resources from the template to physical+    -- resources. You can use the mapping type @CFN_STACK@ if the application+    -- template uses a logical stack name. Or you can map individual resources+    -- by using the mapping type @RESOURCE@. We recommend using the mapping+    -- type @CFN_STACK@ if the application is backed by a CloudFormation stack.+    resourceMappings :: [ResourceMapping]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAppVersionResourceMappingsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listAppVersionResourceMappingsResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listAppVersionResourceMappingsResponse_httpStatus' - The response's http status code.+--+-- 'resourceMappings', 'listAppVersionResourceMappingsResponse_resourceMappings' - Mappings used to map logical resources from the template to physical+-- resources. You can use the mapping type @CFN_STACK@ if the application+-- template uses a logical stack name. Or you can map individual resources+-- by using the mapping type @RESOURCE@. We recommend using the mapping+-- type @CFN_STACK@ if the application is backed by a CloudFormation stack.+newListAppVersionResourceMappingsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAppVersionResourceMappingsResponse+newListAppVersionResourceMappingsResponse+  pHttpStatus_ =+    ListAppVersionResourceMappingsResponse'+      { nextToken =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        resourceMappings = Prelude.mempty+      }++-- | The token for the next set of results, or null if there are no more+-- results.+listAppVersionResourceMappingsResponse_nextToken :: Lens.Lens' ListAppVersionResourceMappingsResponse (Prelude.Maybe Prelude.Text)+listAppVersionResourceMappingsResponse_nextToken = Lens.lens (\ListAppVersionResourceMappingsResponse' {nextToken} -> nextToken) (\s@ListAppVersionResourceMappingsResponse' {} a -> s {nextToken = a} :: ListAppVersionResourceMappingsResponse)++-- | The response's http status code.+listAppVersionResourceMappingsResponse_httpStatus :: Lens.Lens' ListAppVersionResourceMappingsResponse Prelude.Int+listAppVersionResourceMappingsResponse_httpStatus = Lens.lens (\ListAppVersionResourceMappingsResponse' {httpStatus} -> httpStatus) (\s@ListAppVersionResourceMappingsResponse' {} a -> s {httpStatus = a} :: ListAppVersionResourceMappingsResponse)++-- | Mappings used to map logical resources from the template to physical+-- resources. You can use the mapping type @CFN_STACK@ if the application+-- template uses a logical stack name. Or you can map individual resources+-- by using the mapping type @RESOURCE@. We recommend using the mapping+-- type @CFN_STACK@ if the application is backed by a CloudFormation stack.+listAppVersionResourceMappingsResponse_resourceMappings :: Lens.Lens' ListAppVersionResourceMappingsResponse [ResourceMapping]+listAppVersionResourceMappingsResponse_resourceMappings = Lens.lens (\ListAppVersionResourceMappingsResponse' {resourceMappings} -> resourceMappings) (\s@ListAppVersionResourceMappingsResponse' {} a -> s {resourceMappings = a} :: ListAppVersionResourceMappingsResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListAppVersionResourceMappingsResponse+  where+  rnf ListAppVersionResourceMappingsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf resourceMappings
+ gen/Amazonka/ResilienceHub/ListAppVersionResources.hs view
@@ -0,0 +1,279 @@+{-# 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.ResilienceHub.ListAppVersionResources+-- 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 resources in an application version.+module Amazonka.ResilienceHub.ListAppVersionResources+  ( -- * Creating a Request+    ListAppVersionResources (..),+    newListAppVersionResources,++    -- * Request Lenses+    listAppVersionResources_maxResults,+    listAppVersionResources_nextToken,+    listAppVersionResources_resolutionId,+    listAppVersionResources_appArn,+    listAppVersionResources_appVersion,++    -- * Destructuring the Response+    ListAppVersionResourcesResponse (..),+    newListAppVersionResourcesResponse,++    -- * Response Lenses+    listAppVersionResourcesResponse_nextToken,+    listAppVersionResourcesResponse_httpStatus,+    listAppVersionResourcesResponse_physicalResources,+    listAppVersionResourcesResponse_resolutionId,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAppVersionResources' smart constructor.+data ListAppVersionResources = ListAppVersionResources'+  { -- | The maximum number of results to include in the response. If more+    -- results exist than the specified @MaxResults@ value, a token is included+    -- in the response so that the remaining results can be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Null, or the token from a previous call to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The identifier for a specific resolution.+    resolutionId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAppVersionResources' 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', 'listAppVersionResources_maxResults' - The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'listAppVersionResources_nextToken' - Null, or the token from a previous call to get the next set of results.+--+-- 'resolutionId', 'listAppVersionResources_resolutionId' - The identifier for a specific resolution.+--+-- 'appArn', 'listAppVersionResources_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'listAppVersionResources_appVersion' - The version of the application.+newListAppVersionResources ::+  -- | 'appArn'+  Prelude.Text ->+  -- | 'appVersion'+  Prelude.Text ->+  ListAppVersionResources+newListAppVersionResources pAppArn_ pAppVersion_ =+  ListAppVersionResources'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      resolutionId = Prelude.Nothing,+      appArn = pAppArn_,+      appVersion = pAppVersion_+    }++-- | The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+listAppVersionResources_maxResults :: Lens.Lens' ListAppVersionResources (Prelude.Maybe Prelude.Natural)+listAppVersionResources_maxResults = Lens.lens (\ListAppVersionResources' {maxResults} -> maxResults) (\s@ListAppVersionResources' {} a -> s {maxResults = a} :: ListAppVersionResources)++-- | Null, or the token from a previous call to get the next set of results.+listAppVersionResources_nextToken :: Lens.Lens' ListAppVersionResources (Prelude.Maybe Prelude.Text)+listAppVersionResources_nextToken = Lens.lens (\ListAppVersionResources' {nextToken} -> nextToken) (\s@ListAppVersionResources' {} a -> s {nextToken = a} :: ListAppVersionResources)++-- | The identifier for a specific resolution.+listAppVersionResources_resolutionId :: Lens.Lens' ListAppVersionResources (Prelude.Maybe Prelude.Text)+listAppVersionResources_resolutionId = Lens.lens (\ListAppVersionResources' {resolutionId} -> resolutionId) (\s@ListAppVersionResources' {} a -> s {resolutionId = a} :: ListAppVersionResources)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+listAppVersionResources_appArn :: Lens.Lens' ListAppVersionResources Prelude.Text+listAppVersionResources_appArn = Lens.lens (\ListAppVersionResources' {appArn} -> appArn) (\s@ListAppVersionResources' {} a -> s {appArn = a} :: ListAppVersionResources)++-- | The version of the application.+listAppVersionResources_appVersion :: Lens.Lens' ListAppVersionResources Prelude.Text+listAppVersionResources_appVersion = Lens.lens (\ListAppVersionResources' {appVersion} -> appVersion) (\s@ListAppVersionResources' {} a -> s {appVersion = a} :: ListAppVersionResources)++instance Core.AWSRequest ListAppVersionResources where+  type+    AWSResponse ListAppVersionResources =+      ListAppVersionResourcesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAppVersionResourcesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "physicalResources"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..:> "resolutionId")+      )++instance Prelude.Hashable ListAppVersionResources where+  hashWithSalt _salt ListAppVersionResources' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` resolutionId+      `Prelude.hashWithSalt` appArn+      `Prelude.hashWithSalt` appVersion++instance Prelude.NFData ListAppVersionResources where+  rnf ListAppVersionResources' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf resolutionId+      `Prelude.seq` Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appVersion++instance Data.ToHeaders ListAppVersionResources where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAppVersionResources where+  toJSON ListAppVersionResources' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("resolutionId" Data..=) Prelude.<$> resolutionId,+            Prelude.Just ("appArn" Data..= appArn),+            Prelude.Just ("appVersion" Data..= appVersion)+          ]+      )++instance Data.ToPath ListAppVersionResources where+  toPath = Prelude.const "/list-app-version-resources"++instance Data.ToQuery ListAppVersionResources where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAppVersionResourcesResponse' smart constructor.+data ListAppVersionResourcesResponse = ListAppVersionResourcesResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The physical resources in the application version.+    physicalResources :: [PhysicalResource],+    -- | The identifier for a specific resolution.+    resolutionId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAppVersionResourcesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listAppVersionResourcesResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listAppVersionResourcesResponse_httpStatus' - The response's http status code.+--+-- 'physicalResources', 'listAppVersionResourcesResponse_physicalResources' - The physical resources in the application version.+--+-- 'resolutionId', 'listAppVersionResourcesResponse_resolutionId' - The identifier for a specific resolution.+newListAppVersionResourcesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'resolutionId'+  Prelude.Text ->+  ListAppVersionResourcesResponse+newListAppVersionResourcesResponse+  pHttpStatus_+  pResolutionId_ =+    ListAppVersionResourcesResponse'+      { nextToken =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        physicalResources = Prelude.mempty,+        resolutionId = pResolutionId_+      }++-- | The token for the next set of results, or null if there are no more+-- results.+listAppVersionResourcesResponse_nextToken :: Lens.Lens' ListAppVersionResourcesResponse (Prelude.Maybe Prelude.Text)+listAppVersionResourcesResponse_nextToken = Lens.lens (\ListAppVersionResourcesResponse' {nextToken} -> nextToken) (\s@ListAppVersionResourcesResponse' {} a -> s {nextToken = a} :: ListAppVersionResourcesResponse)++-- | The response's http status code.+listAppVersionResourcesResponse_httpStatus :: Lens.Lens' ListAppVersionResourcesResponse Prelude.Int+listAppVersionResourcesResponse_httpStatus = Lens.lens (\ListAppVersionResourcesResponse' {httpStatus} -> httpStatus) (\s@ListAppVersionResourcesResponse' {} a -> s {httpStatus = a} :: ListAppVersionResourcesResponse)++-- | The physical resources in the application version.+listAppVersionResourcesResponse_physicalResources :: Lens.Lens' ListAppVersionResourcesResponse [PhysicalResource]+listAppVersionResourcesResponse_physicalResources = Lens.lens (\ListAppVersionResourcesResponse' {physicalResources} -> physicalResources) (\s@ListAppVersionResourcesResponse' {} a -> s {physicalResources = a} :: ListAppVersionResourcesResponse) Prelude.. Lens.coerced++-- | The identifier for a specific resolution.+listAppVersionResourcesResponse_resolutionId :: Lens.Lens' ListAppVersionResourcesResponse Prelude.Text+listAppVersionResourcesResponse_resolutionId = Lens.lens (\ListAppVersionResourcesResponse' {resolutionId} -> resolutionId) (\s@ListAppVersionResourcesResponse' {} a -> s {resolutionId = a} :: ListAppVersionResourcesResponse)++instance+  Prelude.NFData+    ListAppVersionResourcesResponse+  where+  rnf ListAppVersionResourcesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf physicalResources+      `Prelude.seq` Prelude.rnf resolutionId
+ gen/Amazonka/ResilienceHub/ListAppVersions.hs view
@@ -0,0 +1,228 @@+{-# 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.ResilienceHub.ListAppVersions+-- 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 different versions for the Resilience Hub applications.+module Amazonka.ResilienceHub.ListAppVersions+  ( -- * Creating a Request+    ListAppVersions (..),+    newListAppVersions,++    -- * Request Lenses+    listAppVersions_maxResults,+    listAppVersions_nextToken,+    listAppVersions_appArn,++    -- * Destructuring the Response+    ListAppVersionsResponse (..),+    newListAppVersionsResponse,++    -- * Response Lenses+    listAppVersionsResponse_nextToken,+    listAppVersionsResponse_httpStatus,+    listAppVersionsResponse_appVersions,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAppVersions' smart constructor.+data ListAppVersions = ListAppVersions'+  { -- | The maximum number of results to include in the response. If more+    -- results exist than the specified @MaxResults@ value, a token is included+    -- in the response so that the remaining results can be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Null, or the token from a previous call to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAppVersions' 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', 'listAppVersions_maxResults' - The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'listAppVersions_nextToken' - Null, or the token from a previous call to get the next set of results.+--+-- 'appArn', 'listAppVersions_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newListAppVersions ::+  -- | 'appArn'+  Prelude.Text ->+  ListAppVersions+newListAppVersions pAppArn_ =+  ListAppVersions'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      appArn = pAppArn_+    }++-- | The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+listAppVersions_maxResults :: Lens.Lens' ListAppVersions (Prelude.Maybe Prelude.Natural)+listAppVersions_maxResults = Lens.lens (\ListAppVersions' {maxResults} -> maxResults) (\s@ListAppVersions' {} a -> s {maxResults = a} :: ListAppVersions)++-- | Null, or the token from a previous call to get the next set of results.+listAppVersions_nextToken :: Lens.Lens' ListAppVersions (Prelude.Maybe Prelude.Text)+listAppVersions_nextToken = Lens.lens (\ListAppVersions' {nextToken} -> nextToken) (\s@ListAppVersions' {} a -> s {nextToken = a} :: ListAppVersions)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+listAppVersions_appArn :: Lens.Lens' ListAppVersions Prelude.Text+listAppVersions_appArn = Lens.lens (\ListAppVersions' {appArn} -> appArn) (\s@ListAppVersions' {} a -> s {appArn = a} :: ListAppVersions)++instance Core.AWSRequest ListAppVersions where+  type+    AWSResponse ListAppVersions =+      ListAppVersionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAppVersionsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "appVersions" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListAppVersions where+  hashWithSalt _salt ListAppVersions' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` appArn++instance Prelude.NFData ListAppVersions where+  rnf ListAppVersions' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf appArn++instance Data.ToHeaders ListAppVersions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAppVersions where+  toJSON ListAppVersions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("appArn" Data..= appArn)+          ]+      )++instance Data.ToPath ListAppVersions where+  toPath = Prelude.const "/list-app-versions"++instance Data.ToQuery ListAppVersions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAppVersionsResponse' smart constructor.+data ListAppVersionsResponse = ListAppVersionsResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The version of the application.+    appVersions :: [AppVersionSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAppVersionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listAppVersionsResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listAppVersionsResponse_httpStatus' - The response's http status code.+--+-- 'appVersions', 'listAppVersionsResponse_appVersions' - The version of the application.+newListAppVersionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAppVersionsResponse+newListAppVersionsResponse pHttpStatus_ =+  ListAppVersionsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      appVersions = Prelude.mempty+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listAppVersionsResponse_nextToken :: Lens.Lens' ListAppVersionsResponse (Prelude.Maybe Prelude.Text)+listAppVersionsResponse_nextToken = Lens.lens (\ListAppVersionsResponse' {nextToken} -> nextToken) (\s@ListAppVersionsResponse' {} a -> s {nextToken = a} :: ListAppVersionsResponse)++-- | The response's http status code.+listAppVersionsResponse_httpStatus :: Lens.Lens' ListAppVersionsResponse Prelude.Int+listAppVersionsResponse_httpStatus = Lens.lens (\ListAppVersionsResponse' {httpStatus} -> httpStatus) (\s@ListAppVersionsResponse' {} a -> s {httpStatus = a} :: ListAppVersionsResponse)++-- | The version of the application.+listAppVersionsResponse_appVersions :: Lens.Lens' ListAppVersionsResponse [AppVersionSummary]+listAppVersionsResponse_appVersions = Lens.lens (\ListAppVersionsResponse' {appVersions} -> appVersions) (\s@ListAppVersionsResponse' {} a -> s {appVersions = a} :: ListAppVersionsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListAppVersionsResponse where+  rnf ListAppVersionsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf appVersions
+ gen/Amazonka/ResilienceHub/ListApps.hs view
@@ -0,0 +1,231 @@+{-# 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.ResilienceHub.ListApps+-- 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 your Resilience Hub applications.+module Amazonka.ResilienceHub.ListApps+  ( -- * Creating a Request+    ListApps (..),+    newListApps,++    -- * Request Lenses+    listApps_appArn,+    listApps_maxResults,+    listApps_name,+    listApps_nextToken,++    -- * Destructuring the Response+    ListAppsResponse (..),+    newListAppsResponse,++    -- * Response Lenses+    listAppsResponse_nextToken,+    listAppsResponse_httpStatus,+    listAppsResponse_appSummaries,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListApps' smart constructor.+data ListApps = ListApps'+  { -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of results to include in the response. If more+    -- results exist than the specified @MaxResults@ value, a token is included+    -- in the response so that the remaining results can be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The name for the one of the listed applications.+    name :: Prelude.Maybe Prelude.Text,+    -- | Null, or the token from a previous call to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListApps' 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:+--+-- 'appArn', 'listApps_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'maxResults', 'listApps_maxResults' - The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'name', 'listApps_name' - The name for the one of the listed applications.+--+-- 'nextToken', 'listApps_nextToken' - Null, or the token from a previous call to get the next set of results.+newListApps ::+  ListApps+newListApps =+  ListApps'+    { appArn = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      name = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+listApps_appArn :: Lens.Lens' ListApps (Prelude.Maybe Prelude.Text)+listApps_appArn = Lens.lens (\ListApps' {appArn} -> appArn) (\s@ListApps' {} a -> s {appArn = a} :: ListApps)++-- | The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+listApps_maxResults :: Lens.Lens' ListApps (Prelude.Maybe Prelude.Natural)+listApps_maxResults = Lens.lens (\ListApps' {maxResults} -> maxResults) (\s@ListApps' {} a -> s {maxResults = a} :: ListApps)++-- | The name for the one of the listed applications.+listApps_name :: Lens.Lens' ListApps (Prelude.Maybe Prelude.Text)+listApps_name = Lens.lens (\ListApps' {name} -> name) (\s@ListApps' {} a -> s {name = a} :: ListApps)++-- | Null, or the token from a previous call to get the next set of results.+listApps_nextToken :: Lens.Lens' ListApps (Prelude.Maybe Prelude.Text)+listApps_nextToken = Lens.lens (\ListApps' {nextToken} -> nextToken) (\s@ListApps' {} a -> s {nextToken = a} :: ListApps)++instance Core.AWSRequest ListApps where+  type AWSResponse ListApps = ListAppsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAppsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "appSummaries" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListApps where+  hashWithSalt _salt ListApps' {..} =+    _salt+      `Prelude.hashWithSalt` appArn+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListApps where+  rnf ListApps' {..} =+    Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListApps where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListApps where+  toPath = Prelude.const "/list-apps"++instance Data.ToQuery ListApps where+  toQuery ListApps' {..} =+    Prelude.mconcat+      [ "appArn" Data.=: appArn,+        "maxResults" Data.=: maxResults,+        "name" Data.=: name,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListAppsResponse' smart constructor.+data ListAppsResponse = ListAppsResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Summaries for the Resilience Hub application.+    appSummaries :: [AppSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAppsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listAppsResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listAppsResponse_httpStatus' - The response's http status code.+--+-- 'appSummaries', 'listAppsResponse_appSummaries' - Summaries for the Resilience Hub application.+newListAppsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAppsResponse+newListAppsResponse pHttpStatus_ =+  ListAppsResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      appSummaries = Prelude.mempty+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listAppsResponse_nextToken :: Lens.Lens' ListAppsResponse (Prelude.Maybe Prelude.Text)+listAppsResponse_nextToken = Lens.lens (\ListAppsResponse' {nextToken} -> nextToken) (\s@ListAppsResponse' {} a -> s {nextToken = a} :: ListAppsResponse)++-- | The response's http status code.+listAppsResponse_httpStatus :: Lens.Lens' ListAppsResponse Prelude.Int+listAppsResponse_httpStatus = Lens.lens (\ListAppsResponse' {httpStatus} -> httpStatus) (\s@ListAppsResponse' {} a -> s {httpStatus = a} :: ListAppsResponse)++-- | Summaries for the Resilience Hub application.+listAppsResponse_appSummaries :: Lens.Lens' ListAppsResponse [AppSummary]+listAppsResponse_appSummaries = Lens.lens (\ListAppsResponse' {appSummaries} -> appSummaries) (\s@ListAppsResponse' {} a -> s {appSummaries = a} :: ListAppsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListAppsResponse where+  rnf ListAppsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf appSummaries
+ gen/Amazonka/ResilienceHub/ListRecommendationTemplates.hs view
@@ -0,0 +1,293 @@+{-# 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.ResilienceHub.ListRecommendationTemplates+-- 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 recommendation templates for the Resilience Hub applications.+module Amazonka.ResilienceHub.ListRecommendationTemplates+  ( -- * Creating a Request+    ListRecommendationTemplates (..),+    newListRecommendationTemplates,++    -- * Request Lenses+    listRecommendationTemplates_maxResults,+    listRecommendationTemplates_name,+    listRecommendationTemplates_nextToken,+    listRecommendationTemplates_recommendationTemplateArn,+    listRecommendationTemplates_reverseOrder,+    listRecommendationTemplates_status,+    listRecommendationTemplates_assessmentArn,++    -- * Destructuring the Response+    ListRecommendationTemplatesResponse (..),+    newListRecommendationTemplatesResponse,++    -- * Response Lenses+    listRecommendationTemplatesResponse_nextToken,+    listRecommendationTemplatesResponse_recommendationTemplates,+    listRecommendationTemplatesResponse_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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListRecommendationTemplates' smart constructor.+data ListRecommendationTemplates = ListRecommendationTemplates'+  { -- | The maximum number of results to include in the response. If more+    -- results exist than the specified @MaxResults@ value, a token is included+    -- in the response so that the remaining results can be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The name for one of the listed recommendation templates.+    name :: Prelude.Maybe Prelude.Text,+    -- | Null, or the token from a previous call to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) for a recommendation template.+    recommendationTemplateArn :: Prelude.Maybe Prelude.Text,+    -- | The default is to sort by ascending __startTime__. To sort by descending+    -- __startTime__, set reverseOrder to @true@.+    reverseOrder :: Prelude.Maybe Prelude.Bool,+    -- | The status of the action.+    status :: Prelude.Maybe (Prelude.NonEmpty RecommendationTemplateStatus),+    -- | The Amazon Resource Name (ARN) of the assessment. The format for this+    -- ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    assessmentArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecommendationTemplates' 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', 'listRecommendationTemplates_maxResults' - The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'name', 'listRecommendationTemplates_name' - The name for one of the listed recommendation templates.+--+-- 'nextToken', 'listRecommendationTemplates_nextToken' - Null, or the token from a previous call to get the next set of results.+--+-- 'recommendationTemplateArn', 'listRecommendationTemplates_recommendationTemplateArn' - The Amazon Resource Name (ARN) for a recommendation template.+--+-- 'reverseOrder', 'listRecommendationTemplates_reverseOrder' - The default is to sort by ascending __startTime__. To sort by descending+-- __startTime__, set reverseOrder to @true@.+--+-- 'status', 'listRecommendationTemplates_status' - The status of the action.+--+-- 'assessmentArn', 'listRecommendationTemplates_assessmentArn' - The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newListRecommendationTemplates ::+  -- | 'assessmentArn'+  Prelude.Text ->+  ListRecommendationTemplates+newListRecommendationTemplates pAssessmentArn_ =+  ListRecommendationTemplates'+    { maxResults =+        Prelude.Nothing,+      name = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      recommendationTemplateArn = Prelude.Nothing,+      reverseOrder = Prelude.Nothing,+      status = Prelude.Nothing,+      assessmentArn = pAssessmentArn_+    }++-- | The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+listRecommendationTemplates_maxResults :: Lens.Lens' ListRecommendationTemplates (Prelude.Maybe Prelude.Natural)+listRecommendationTemplates_maxResults = Lens.lens (\ListRecommendationTemplates' {maxResults} -> maxResults) (\s@ListRecommendationTemplates' {} a -> s {maxResults = a} :: ListRecommendationTemplates)++-- | The name for one of the listed recommendation templates.+listRecommendationTemplates_name :: Lens.Lens' ListRecommendationTemplates (Prelude.Maybe Prelude.Text)+listRecommendationTemplates_name = Lens.lens (\ListRecommendationTemplates' {name} -> name) (\s@ListRecommendationTemplates' {} a -> s {name = a} :: ListRecommendationTemplates)++-- | Null, or the token from a previous call to get the next set of results.+listRecommendationTemplates_nextToken :: Lens.Lens' ListRecommendationTemplates (Prelude.Maybe Prelude.Text)+listRecommendationTemplates_nextToken = Lens.lens (\ListRecommendationTemplates' {nextToken} -> nextToken) (\s@ListRecommendationTemplates' {} a -> s {nextToken = a} :: ListRecommendationTemplates)++-- | The Amazon Resource Name (ARN) for a recommendation template.+listRecommendationTemplates_recommendationTemplateArn :: Lens.Lens' ListRecommendationTemplates (Prelude.Maybe Prelude.Text)+listRecommendationTemplates_recommendationTemplateArn = Lens.lens (\ListRecommendationTemplates' {recommendationTemplateArn} -> recommendationTemplateArn) (\s@ListRecommendationTemplates' {} a -> s {recommendationTemplateArn = a} :: ListRecommendationTemplates)++-- | The default is to sort by ascending __startTime__. To sort by descending+-- __startTime__, set reverseOrder to @true@.+listRecommendationTemplates_reverseOrder :: Lens.Lens' ListRecommendationTemplates (Prelude.Maybe Prelude.Bool)+listRecommendationTemplates_reverseOrder = Lens.lens (\ListRecommendationTemplates' {reverseOrder} -> reverseOrder) (\s@ListRecommendationTemplates' {} a -> s {reverseOrder = a} :: ListRecommendationTemplates)++-- | The status of the action.+listRecommendationTemplates_status :: Lens.Lens' ListRecommendationTemplates (Prelude.Maybe (Prelude.NonEmpty RecommendationTemplateStatus))+listRecommendationTemplates_status = Lens.lens (\ListRecommendationTemplates' {status} -> status) (\s@ListRecommendationTemplates' {} a -> s {status = a} :: ListRecommendationTemplates) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+listRecommendationTemplates_assessmentArn :: Lens.Lens' ListRecommendationTemplates Prelude.Text+listRecommendationTemplates_assessmentArn = Lens.lens (\ListRecommendationTemplates' {assessmentArn} -> assessmentArn) (\s@ListRecommendationTemplates' {} a -> s {assessmentArn = a} :: ListRecommendationTemplates)++instance Core.AWSRequest ListRecommendationTemplates where+  type+    AWSResponse ListRecommendationTemplates =+      ListRecommendationTemplatesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListRecommendationTemplatesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "recommendationTemplates"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListRecommendationTemplates where+  hashWithSalt _salt ListRecommendationTemplates' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` recommendationTemplateArn+      `Prelude.hashWithSalt` reverseOrder+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` assessmentArn++instance Prelude.NFData ListRecommendationTemplates where+  rnf ListRecommendationTemplates' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf recommendationTemplateArn+      `Prelude.seq` Prelude.rnf reverseOrder+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf assessmentArn++instance Data.ToHeaders ListRecommendationTemplates where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListRecommendationTemplates where+  toPath =+    Prelude.const "/list-recommendation-templates"++instance Data.ToQuery ListRecommendationTemplates where+  toQuery ListRecommendationTemplates' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "name" Data.=: name,+        "nextToken" Data.=: nextToken,+        "recommendationTemplateArn"+          Data.=: recommendationTemplateArn,+        "reverseOrder" Data.=: reverseOrder,+        "status"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> status),+        "assessmentArn" Data.=: assessmentArn+      ]++-- | /See:/ 'newListRecommendationTemplatesResponse' smart constructor.+data ListRecommendationTemplatesResponse = ListRecommendationTemplatesResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The recommendation templates for the Resilience Hub applications.+    recommendationTemplates :: Prelude.Maybe [RecommendationTemplate],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecommendationTemplatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listRecommendationTemplatesResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'recommendationTemplates', 'listRecommendationTemplatesResponse_recommendationTemplates' - The recommendation templates for the Resilience Hub applications.+--+-- 'httpStatus', 'listRecommendationTemplatesResponse_httpStatus' - The response's http status code.+newListRecommendationTemplatesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListRecommendationTemplatesResponse+newListRecommendationTemplatesResponse pHttpStatus_ =+  ListRecommendationTemplatesResponse'+    { nextToken =+        Prelude.Nothing,+      recommendationTemplates =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listRecommendationTemplatesResponse_nextToken :: Lens.Lens' ListRecommendationTemplatesResponse (Prelude.Maybe Prelude.Text)+listRecommendationTemplatesResponse_nextToken = Lens.lens (\ListRecommendationTemplatesResponse' {nextToken} -> nextToken) (\s@ListRecommendationTemplatesResponse' {} a -> s {nextToken = a} :: ListRecommendationTemplatesResponse)++-- | The recommendation templates for the Resilience Hub applications.+listRecommendationTemplatesResponse_recommendationTemplates :: Lens.Lens' ListRecommendationTemplatesResponse (Prelude.Maybe [RecommendationTemplate])+listRecommendationTemplatesResponse_recommendationTemplates = Lens.lens (\ListRecommendationTemplatesResponse' {recommendationTemplates} -> recommendationTemplates) (\s@ListRecommendationTemplatesResponse' {} a -> s {recommendationTemplates = a} :: ListRecommendationTemplatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listRecommendationTemplatesResponse_httpStatus :: Lens.Lens' ListRecommendationTemplatesResponse Prelude.Int+listRecommendationTemplatesResponse_httpStatus = Lens.lens (\ListRecommendationTemplatesResponse' {httpStatus} -> httpStatus) (\s@ListRecommendationTemplatesResponse' {} a -> s {httpStatus = a} :: ListRecommendationTemplatesResponse)++instance+  Prelude.NFData+    ListRecommendationTemplatesResponse+  where+  rnf ListRecommendationTemplatesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf recommendationTemplates+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResilienceHub/ListResiliencyPolicies.hs view
@@ -0,0 +1,216 @@+{-# 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.ResilienceHub.ListResiliencyPolicies+-- 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 resiliency policies for the Resilience Hub applications.+module Amazonka.ResilienceHub.ListResiliencyPolicies+  ( -- * Creating a Request+    ListResiliencyPolicies (..),+    newListResiliencyPolicies,++    -- * Request Lenses+    listResiliencyPolicies_maxResults,+    listResiliencyPolicies_nextToken,+    listResiliencyPolicies_policyName,++    -- * Destructuring the Response+    ListResiliencyPoliciesResponse (..),+    newListResiliencyPoliciesResponse,++    -- * Response Lenses+    listResiliencyPoliciesResponse_nextToken,+    listResiliencyPoliciesResponse_httpStatus,+    listResiliencyPoliciesResponse_resiliencyPolicies,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListResiliencyPolicies' smart constructor.+data ListResiliencyPolicies = ListResiliencyPolicies'+  { -- | The maximum number of results to include in the response. If more+    -- results exist than the specified @MaxResults@ value, a token is included+    -- in the response so that the remaining results can be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Null, or the token from a previous call to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the policy+    policyName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListResiliencyPolicies' 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', 'listResiliencyPolicies_maxResults' - The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'listResiliencyPolicies_nextToken' - Null, or the token from a previous call to get the next set of results.+--+-- 'policyName', 'listResiliencyPolicies_policyName' - The name of the policy+newListResiliencyPolicies ::+  ListResiliencyPolicies+newListResiliencyPolicies =+  ListResiliencyPolicies'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      policyName = Prelude.Nothing+    }++-- | The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+listResiliencyPolicies_maxResults :: Lens.Lens' ListResiliencyPolicies (Prelude.Maybe Prelude.Natural)+listResiliencyPolicies_maxResults = Lens.lens (\ListResiliencyPolicies' {maxResults} -> maxResults) (\s@ListResiliencyPolicies' {} a -> s {maxResults = a} :: ListResiliencyPolicies)++-- | Null, or the token from a previous call to get the next set of results.+listResiliencyPolicies_nextToken :: Lens.Lens' ListResiliencyPolicies (Prelude.Maybe Prelude.Text)+listResiliencyPolicies_nextToken = Lens.lens (\ListResiliencyPolicies' {nextToken} -> nextToken) (\s@ListResiliencyPolicies' {} a -> s {nextToken = a} :: ListResiliencyPolicies)++-- | The name of the policy+listResiliencyPolicies_policyName :: Lens.Lens' ListResiliencyPolicies (Prelude.Maybe Prelude.Text)+listResiliencyPolicies_policyName = Lens.lens (\ListResiliencyPolicies' {policyName} -> policyName) (\s@ListResiliencyPolicies' {} a -> s {policyName = a} :: ListResiliencyPolicies)++instance Core.AWSRequest ListResiliencyPolicies where+  type+    AWSResponse ListResiliencyPolicies =+      ListResiliencyPoliciesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListResiliencyPoliciesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "resiliencyPolicies"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable ListResiliencyPolicies where+  hashWithSalt _salt ListResiliencyPolicies' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` policyName++instance Prelude.NFData ListResiliencyPolicies where+  rnf ListResiliencyPolicies' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf policyName++instance Data.ToHeaders ListResiliencyPolicies where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListResiliencyPolicies where+  toPath = Prelude.const "/list-resiliency-policies"++instance Data.ToQuery ListResiliencyPolicies where+  toQuery ListResiliencyPolicies' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "policyName" Data.=: policyName+      ]++-- | /See:/ 'newListResiliencyPoliciesResponse' smart constructor.+data ListResiliencyPoliciesResponse = ListResiliencyPoliciesResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The resiliency policies for the Resilience Hub applications.+    resiliencyPolicies :: [ResiliencyPolicy]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListResiliencyPoliciesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listResiliencyPoliciesResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listResiliencyPoliciesResponse_httpStatus' - The response's http status code.+--+-- 'resiliencyPolicies', 'listResiliencyPoliciesResponse_resiliencyPolicies' - The resiliency policies for the Resilience Hub applications.+newListResiliencyPoliciesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListResiliencyPoliciesResponse+newListResiliencyPoliciesResponse pHttpStatus_ =+  ListResiliencyPoliciesResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      resiliencyPolicies = Prelude.mempty+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listResiliencyPoliciesResponse_nextToken :: Lens.Lens' ListResiliencyPoliciesResponse (Prelude.Maybe Prelude.Text)+listResiliencyPoliciesResponse_nextToken = Lens.lens (\ListResiliencyPoliciesResponse' {nextToken} -> nextToken) (\s@ListResiliencyPoliciesResponse' {} a -> s {nextToken = a} :: ListResiliencyPoliciesResponse)++-- | The response's http status code.+listResiliencyPoliciesResponse_httpStatus :: Lens.Lens' ListResiliencyPoliciesResponse Prelude.Int+listResiliencyPoliciesResponse_httpStatus = Lens.lens (\ListResiliencyPoliciesResponse' {httpStatus} -> httpStatus) (\s@ListResiliencyPoliciesResponse' {} a -> s {httpStatus = a} :: ListResiliencyPoliciesResponse)++-- | The resiliency policies for the Resilience Hub applications.+listResiliencyPoliciesResponse_resiliencyPolicies :: Lens.Lens' ListResiliencyPoliciesResponse [ResiliencyPolicy]+listResiliencyPoliciesResponse_resiliencyPolicies = Lens.lens (\ListResiliencyPoliciesResponse' {resiliencyPolicies} -> resiliencyPolicies) (\s@ListResiliencyPoliciesResponse' {} a -> s {resiliencyPolicies = a} :: ListResiliencyPoliciesResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListResiliencyPoliciesResponse+  where+  rnf ListResiliencyPoliciesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf resiliencyPolicies
+ gen/Amazonka/ResilienceHub/ListSopRecommendations.hs view
@@ -0,0 +1,243 @@+{-# 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.ResilienceHub.ListSopRecommendations+-- 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 standard operating procedure (SOP) recommendations for the+-- Resilience Hub applications.+module Amazonka.ResilienceHub.ListSopRecommendations+  ( -- * Creating a Request+    ListSopRecommendations (..),+    newListSopRecommendations,++    -- * Request Lenses+    listSopRecommendations_maxResults,+    listSopRecommendations_nextToken,+    listSopRecommendations_assessmentArn,++    -- * Destructuring the Response+    ListSopRecommendationsResponse (..),+    newListSopRecommendationsResponse,++    -- * Response Lenses+    listSopRecommendationsResponse_nextToken,+    listSopRecommendationsResponse_httpStatus,+    listSopRecommendationsResponse_sopRecommendations,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSopRecommendations' smart constructor.+data ListSopRecommendations = ListSopRecommendations'+  { -- | The maximum number of results to include in the response. If more+    -- results exist than the specified @MaxResults@ value, a token is included+    -- in the response so that the remaining results can be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Null, or the token from a previous call to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the assessment. The format for this+    -- ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    assessmentArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSopRecommendations' 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', 'listSopRecommendations_maxResults' - The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'listSopRecommendations_nextToken' - Null, or the token from a previous call to get the next set of results.+--+-- 'assessmentArn', 'listSopRecommendations_assessmentArn' - The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newListSopRecommendations ::+  -- | 'assessmentArn'+  Prelude.Text ->+  ListSopRecommendations+newListSopRecommendations pAssessmentArn_ =+  ListSopRecommendations'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      assessmentArn = pAssessmentArn_+    }++-- | The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+listSopRecommendations_maxResults :: Lens.Lens' ListSopRecommendations (Prelude.Maybe Prelude.Natural)+listSopRecommendations_maxResults = Lens.lens (\ListSopRecommendations' {maxResults} -> maxResults) (\s@ListSopRecommendations' {} a -> s {maxResults = a} :: ListSopRecommendations)++-- | Null, or the token from a previous call to get the next set of results.+listSopRecommendations_nextToken :: Lens.Lens' ListSopRecommendations (Prelude.Maybe Prelude.Text)+listSopRecommendations_nextToken = Lens.lens (\ListSopRecommendations' {nextToken} -> nextToken) (\s@ListSopRecommendations' {} a -> s {nextToken = a} :: ListSopRecommendations)++-- | The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+listSopRecommendations_assessmentArn :: Lens.Lens' ListSopRecommendations Prelude.Text+listSopRecommendations_assessmentArn = Lens.lens (\ListSopRecommendations' {assessmentArn} -> assessmentArn) (\s@ListSopRecommendations' {} a -> s {assessmentArn = a} :: ListSopRecommendations)++instance Core.AWSRequest ListSopRecommendations where+  type+    AWSResponse ListSopRecommendations =+      ListSopRecommendationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSopRecommendationsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "sopRecommendations"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable ListSopRecommendations where+  hashWithSalt _salt ListSopRecommendations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` assessmentArn++instance Prelude.NFData ListSopRecommendations where+  rnf ListSopRecommendations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf assessmentArn++instance Data.ToHeaders ListSopRecommendations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSopRecommendations where+  toJSON ListSopRecommendations' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("assessmentArn" Data..= assessmentArn)+          ]+      )++instance Data.ToPath ListSopRecommendations where+  toPath = Prelude.const "/list-sop-recommendations"++instance Data.ToQuery ListSopRecommendations where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSopRecommendationsResponse' smart constructor.+data ListSopRecommendationsResponse = ListSopRecommendationsResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The standard operating procedure (SOP) recommendations for the+    -- Resilience Hub applications.+    sopRecommendations :: [SopRecommendation]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSopRecommendationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listSopRecommendationsResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listSopRecommendationsResponse_httpStatus' - The response's http status code.+--+-- 'sopRecommendations', 'listSopRecommendationsResponse_sopRecommendations' - The standard operating procedure (SOP) recommendations for the+-- Resilience Hub applications.+newListSopRecommendationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSopRecommendationsResponse+newListSopRecommendationsResponse pHttpStatus_ =+  ListSopRecommendationsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      sopRecommendations = Prelude.mempty+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listSopRecommendationsResponse_nextToken :: Lens.Lens' ListSopRecommendationsResponse (Prelude.Maybe Prelude.Text)+listSopRecommendationsResponse_nextToken = Lens.lens (\ListSopRecommendationsResponse' {nextToken} -> nextToken) (\s@ListSopRecommendationsResponse' {} a -> s {nextToken = a} :: ListSopRecommendationsResponse)++-- | The response's http status code.+listSopRecommendationsResponse_httpStatus :: Lens.Lens' ListSopRecommendationsResponse Prelude.Int+listSopRecommendationsResponse_httpStatus = Lens.lens (\ListSopRecommendationsResponse' {httpStatus} -> httpStatus) (\s@ListSopRecommendationsResponse' {} a -> s {httpStatus = a} :: ListSopRecommendationsResponse)++-- | The standard operating procedure (SOP) recommendations for the+-- Resilience Hub applications.+listSopRecommendationsResponse_sopRecommendations :: Lens.Lens' ListSopRecommendationsResponse [SopRecommendation]+listSopRecommendationsResponse_sopRecommendations = Lens.lens (\ListSopRecommendationsResponse' {sopRecommendations} -> sopRecommendations) (\s@ListSopRecommendationsResponse' {} a -> s {sopRecommendations = a} :: ListSopRecommendationsResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListSopRecommendationsResponse+  where+  rnf ListSopRecommendationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf sopRecommendations
+ gen/Amazonka/ResilienceHub/ListSuggestedResiliencyPolicies.hs view
@@ -0,0 +1,221 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResilienceHub.ListSuggestedResiliencyPolicies+-- 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 suggested resiliency policies for the Resilience Hub+-- applications.+module Amazonka.ResilienceHub.ListSuggestedResiliencyPolicies+  ( -- * Creating a Request+    ListSuggestedResiliencyPolicies (..),+    newListSuggestedResiliencyPolicies,++    -- * Request Lenses+    listSuggestedResiliencyPolicies_maxResults,+    listSuggestedResiliencyPolicies_nextToken,++    -- * Destructuring the Response+    ListSuggestedResiliencyPoliciesResponse (..),+    newListSuggestedResiliencyPoliciesResponse,++    -- * Response Lenses+    listSuggestedResiliencyPoliciesResponse_nextToken,+    listSuggestedResiliencyPoliciesResponse_httpStatus,+    listSuggestedResiliencyPoliciesResponse_resiliencyPolicies,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSuggestedResiliencyPolicies' smart constructor.+data ListSuggestedResiliencyPolicies = ListSuggestedResiliencyPolicies'+  { -- | The maximum number of results to include in the response. If more+    -- results exist than the specified @MaxResults@ value, a token is included+    -- in the response so that the remaining results can be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Null, or the token from a previous call to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSuggestedResiliencyPolicies' 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', 'listSuggestedResiliencyPolicies_maxResults' - The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'listSuggestedResiliencyPolicies_nextToken' - Null, or the token from a previous call to get the next set of results.+newListSuggestedResiliencyPolicies ::+  ListSuggestedResiliencyPolicies+newListSuggestedResiliencyPolicies =+  ListSuggestedResiliencyPolicies'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+listSuggestedResiliencyPolicies_maxResults :: Lens.Lens' ListSuggestedResiliencyPolicies (Prelude.Maybe Prelude.Natural)+listSuggestedResiliencyPolicies_maxResults = Lens.lens (\ListSuggestedResiliencyPolicies' {maxResults} -> maxResults) (\s@ListSuggestedResiliencyPolicies' {} a -> s {maxResults = a} :: ListSuggestedResiliencyPolicies)++-- | Null, or the token from a previous call to get the next set of results.+listSuggestedResiliencyPolicies_nextToken :: Lens.Lens' ListSuggestedResiliencyPolicies (Prelude.Maybe Prelude.Text)+listSuggestedResiliencyPolicies_nextToken = Lens.lens (\ListSuggestedResiliencyPolicies' {nextToken} -> nextToken) (\s@ListSuggestedResiliencyPolicies' {} a -> s {nextToken = a} :: ListSuggestedResiliencyPolicies)++instance+  Core.AWSRequest+    ListSuggestedResiliencyPolicies+  where+  type+    AWSResponse ListSuggestedResiliencyPolicies =+      ListSuggestedResiliencyPoliciesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSuggestedResiliencyPoliciesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "resiliencyPolicies"+                            Core..!@ Prelude.mempty+                        )+      )++instance+  Prelude.Hashable+    ListSuggestedResiliencyPolicies+  where+  hashWithSalt+    _salt+    ListSuggestedResiliencyPolicies' {..} =+      _salt+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken++instance+  Prelude.NFData+    ListSuggestedResiliencyPolicies+  where+  rnf ListSuggestedResiliencyPolicies' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance+  Data.ToHeaders+    ListSuggestedResiliencyPolicies+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListSuggestedResiliencyPolicies where+  toPath =+    Prelude.const "/list-suggested-resiliency-policies"++instance Data.ToQuery ListSuggestedResiliencyPolicies where+  toQuery ListSuggestedResiliencyPolicies' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListSuggestedResiliencyPoliciesResponse' smart constructor.+data ListSuggestedResiliencyPoliciesResponse = ListSuggestedResiliencyPoliciesResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The suggested resiliency policies for the Resilience Hub applications.+    resiliencyPolicies :: [ResiliencyPolicy]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSuggestedResiliencyPoliciesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listSuggestedResiliencyPoliciesResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listSuggestedResiliencyPoliciesResponse_httpStatus' - The response's http status code.+--+-- 'resiliencyPolicies', 'listSuggestedResiliencyPoliciesResponse_resiliencyPolicies' - The suggested resiliency policies for the Resilience Hub applications.+newListSuggestedResiliencyPoliciesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSuggestedResiliencyPoliciesResponse+newListSuggestedResiliencyPoliciesResponse+  pHttpStatus_ =+    ListSuggestedResiliencyPoliciesResponse'+      { nextToken =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        resiliencyPolicies =+          Prelude.mempty+      }++-- | The token for the next set of results, or null if there are no more+-- results.+listSuggestedResiliencyPoliciesResponse_nextToken :: Lens.Lens' ListSuggestedResiliencyPoliciesResponse (Prelude.Maybe Prelude.Text)+listSuggestedResiliencyPoliciesResponse_nextToken = Lens.lens (\ListSuggestedResiliencyPoliciesResponse' {nextToken} -> nextToken) (\s@ListSuggestedResiliencyPoliciesResponse' {} a -> s {nextToken = a} :: ListSuggestedResiliencyPoliciesResponse)++-- | The response's http status code.+listSuggestedResiliencyPoliciesResponse_httpStatus :: Lens.Lens' ListSuggestedResiliencyPoliciesResponse Prelude.Int+listSuggestedResiliencyPoliciesResponse_httpStatus = Lens.lens (\ListSuggestedResiliencyPoliciesResponse' {httpStatus} -> httpStatus) (\s@ListSuggestedResiliencyPoliciesResponse' {} a -> s {httpStatus = a} :: ListSuggestedResiliencyPoliciesResponse)++-- | The suggested resiliency policies for the Resilience Hub applications.+listSuggestedResiliencyPoliciesResponse_resiliencyPolicies :: Lens.Lens' ListSuggestedResiliencyPoliciesResponse [ResiliencyPolicy]+listSuggestedResiliencyPoliciesResponse_resiliencyPolicies = Lens.lens (\ListSuggestedResiliencyPoliciesResponse' {resiliencyPolicies} -> resiliencyPolicies) (\s@ListSuggestedResiliencyPoliciesResponse' {} a -> s {resiliencyPolicies = a} :: ListSuggestedResiliencyPoliciesResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListSuggestedResiliencyPoliciesResponse+  where+  rnf ListSuggestedResiliencyPoliciesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf resiliencyPolicies
+ gen/Amazonka/ResilienceHub/ListTagsForResource.hs view
@@ -0,0 +1,165 @@+{-# 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.ResilienceHub.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 the tags for your resources in your Resilience Hub applications.+module Amazonka.ResilienceHub.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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The Amazon Resource Name (ARN) for a specific resource in your+    -- Resilience Hub application.+    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' - The Amazon Resource Name (ARN) for a specific resource in your+-- Resilience Hub application.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) for a specific resource in your+-- Resilience Hub application.+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'+  { -- | The tags assigned to the resource. A tag is a label that you assign to+    -- an Amazon Web Services resource. Each tag consists of a key\/value pair.+    tags :: Prelude.Maybe (Data.Sensitive (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 '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' - The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+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 (Data._Sensitive Prelude.. 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/ResilienceHub/ListTestRecommendations.hs view
@@ -0,0 +1,239 @@+{-# 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.ResilienceHub.ListTestRecommendations+-- 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 test recommendations for the Resilience Hub application.+module Amazonka.ResilienceHub.ListTestRecommendations+  ( -- * Creating a Request+    ListTestRecommendations (..),+    newListTestRecommendations,++    -- * Request Lenses+    listTestRecommendations_maxResults,+    listTestRecommendations_nextToken,+    listTestRecommendations_assessmentArn,++    -- * Destructuring the Response+    ListTestRecommendationsResponse (..),+    newListTestRecommendationsResponse,++    -- * Response Lenses+    listTestRecommendationsResponse_nextToken,+    listTestRecommendationsResponse_httpStatus,+    listTestRecommendationsResponse_testRecommendations,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTestRecommendations' smart constructor.+data ListTestRecommendations = ListTestRecommendations'+  { -- | The maximum number of results to include in the response. If more+    -- results exist than the specified @MaxResults@ value, a token is included+    -- in the response so that the remaining results can be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Null, or the token from a previous call to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the assessment. The format for this+    -- ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    assessmentArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTestRecommendations' 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', 'listTestRecommendations_maxResults' - The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'listTestRecommendations_nextToken' - Null, or the token from a previous call to get the next set of results.+--+-- 'assessmentArn', 'listTestRecommendations_assessmentArn' - The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newListTestRecommendations ::+  -- | 'assessmentArn'+  Prelude.Text ->+  ListTestRecommendations+newListTestRecommendations pAssessmentArn_ =+  ListTestRecommendations'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      assessmentArn = pAssessmentArn_+    }++-- | The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+listTestRecommendations_maxResults :: Lens.Lens' ListTestRecommendations (Prelude.Maybe Prelude.Natural)+listTestRecommendations_maxResults = Lens.lens (\ListTestRecommendations' {maxResults} -> maxResults) (\s@ListTestRecommendations' {} a -> s {maxResults = a} :: ListTestRecommendations)++-- | Null, or the token from a previous call to get the next set of results.+listTestRecommendations_nextToken :: Lens.Lens' ListTestRecommendations (Prelude.Maybe Prelude.Text)+listTestRecommendations_nextToken = Lens.lens (\ListTestRecommendations' {nextToken} -> nextToken) (\s@ListTestRecommendations' {} a -> s {nextToken = a} :: ListTestRecommendations)++-- | The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+listTestRecommendations_assessmentArn :: Lens.Lens' ListTestRecommendations Prelude.Text+listTestRecommendations_assessmentArn = Lens.lens (\ListTestRecommendations' {assessmentArn} -> assessmentArn) (\s@ListTestRecommendations' {} a -> s {assessmentArn = a} :: ListTestRecommendations)++instance Core.AWSRequest ListTestRecommendations where+  type+    AWSResponse ListTestRecommendations =+      ListTestRecommendationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTestRecommendationsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "testRecommendations"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable ListTestRecommendations where+  hashWithSalt _salt ListTestRecommendations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` assessmentArn++instance Prelude.NFData ListTestRecommendations where+  rnf ListTestRecommendations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf assessmentArn++instance Data.ToHeaders ListTestRecommendations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListTestRecommendations where+  toJSON ListTestRecommendations' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("assessmentArn" Data..= assessmentArn)+          ]+      )++instance Data.ToPath ListTestRecommendations where+  toPath = Prelude.const "/list-test-recommendations"++instance Data.ToQuery ListTestRecommendations where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTestRecommendationsResponse' smart constructor.+data ListTestRecommendationsResponse = ListTestRecommendationsResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The test recommendations for the Resilience Hub application.+    testRecommendations :: [TestRecommendation]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTestRecommendationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listTestRecommendationsResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listTestRecommendationsResponse_httpStatus' - The response's http status code.+--+-- 'testRecommendations', 'listTestRecommendationsResponse_testRecommendations' - The test recommendations for the Resilience Hub application.+newListTestRecommendationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTestRecommendationsResponse+newListTestRecommendationsResponse pHttpStatus_ =+  ListTestRecommendationsResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      testRecommendations = Prelude.mempty+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listTestRecommendationsResponse_nextToken :: Lens.Lens' ListTestRecommendationsResponse (Prelude.Maybe Prelude.Text)+listTestRecommendationsResponse_nextToken = Lens.lens (\ListTestRecommendationsResponse' {nextToken} -> nextToken) (\s@ListTestRecommendationsResponse' {} a -> s {nextToken = a} :: ListTestRecommendationsResponse)++-- | The response's http status code.+listTestRecommendationsResponse_httpStatus :: Lens.Lens' ListTestRecommendationsResponse Prelude.Int+listTestRecommendationsResponse_httpStatus = Lens.lens (\ListTestRecommendationsResponse' {httpStatus} -> httpStatus) (\s@ListTestRecommendationsResponse' {} a -> s {httpStatus = a} :: ListTestRecommendationsResponse)++-- | The test recommendations for the Resilience Hub application.+listTestRecommendationsResponse_testRecommendations :: Lens.Lens' ListTestRecommendationsResponse [TestRecommendation]+listTestRecommendationsResponse_testRecommendations = Lens.lens (\ListTestRecommendationsResponse' {testRecommendations} -> testRecommendations) (\s@ListTestRecommendationsResponse' {} a -> s {testRecommendations = a} :: ListTestRecommendationsResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListTestRecommendationsResponse+  where+  rnf ListTestRecommendationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf testRecommendations
+ gen/Amazonka/ResilienceHub/ListUnsupportedAppVersionResources.hs view
@@ -0,0 +1,309 @@+{-# 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.ResilienceHub.ListUnsupportedAppVersionResources+-- 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 resources that are not currently supported in AWS Resilience+-- Hub. An unsupported resource is a resource that exists in the object+-- that was used to create an app, but is not supported by Resilience Hub.+module Amazonka.ResilienceHub.ListUnsupportedAppVersionResources+  ( -- * Creating a Request+    ListUnsupportedAppVersionResources (..),+    newListUnsupportedAppVersionResources,++    -- * Request Lenses+    listUnsupportedAppVersionResources_maxResults,+    listUnsupportedAppVersionResources_nextToken,+    listUnsupportedAppVersionResources_resolutionId,+    listUnsupportedAppVersionResources_appArn,+    listUnsupportedAppVersionResources_appVersion,++    -- * Destructuring the Response+    ListUnsupportedAppVersionResourcesResponse (..),+    newListUnsupportedAppVersionResourcesResponse,++    -- * Response Lenses+    listUnsupportedAppVersionResourcesResponse_nextToken,+    listUnsupportedAppVersionResourcesResponse_httpStatus,+    listUnsupportedAppVersionResourcesResponse_resolutionId,+    listUnsupportedAppVersionResourcesResponse_unsupportedResources,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newListUnsupportedAppVersionResources' smart constructor.+data ListUnsupportedAppVersionResources = ListUnsupportedAppVersionResources'+  { -- | The maximum number of results to include in the response. If more+    -- results exist than the specified @MaxResults@ value, a token is included+    -- in the response so that the remaining results can be retrieved.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Null, or the token from a previous call to get the next set of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The identifier for a specific resolution.+    resolutionId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListUnsupportedAppVersionResources' 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', 'listUnsupportedAppVersionResources_maxResults' - The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'listUnsupportedAppVersionResources_nextToken' - Null, or the token from a previous call to get the next set of results.+--+-- 'resolutionId', 'listUnsupportedAppVersionResources_resolutionId' - The identifier for a specific resolution.+--+-- 'appArn', 'listUnsupportedAppVersionResources_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'listUnsupportedAppVersionResources_appVersion' - The version of the application.+newListUnsupportedAppVersionResources ::+  -- | 'appArn'+  Prelude.Text ->+  -- | 'appVersion'+  Prelude.Text ->+  ListUnsupportedAppVersionResources+newListUnsupportedAppVersionResources+  pAppArn_+  pAppVersion_ =+    ListUnsupportedAppVersionResources'+      { maxResults =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        resolutionId = Prelude.Nothing,+        appArn = pAppArn_,+        appVersion = pAppVersion_+      }++-- | The maximum number of results to include in the response. If more+-- results exist than the specified @MaxResults@ value, a token is included+-- in the response so that the remaining results can be retrieved.+listUnsupportedAppVersionResources_maxResults :: Lens.Lens' ListUnsupportedAppVersionResources (Prelude.Maybe Prelude.Natural)+listUnsupportedAppVersionResources_maxResults = Lens.lens (\ListUnsupportedAppVersionResources' {maxResults} -> maxResults) (\s@ListUnsupportedAppVersionResources' {} a -> s {maxResults = a} :: ListUnsupportedAppVersionResources)++-- | Null, or the token from a previous call to get the next set of results.+listUnsupportedAppVersionResources_nextToken :: Lens.Lens' ListUnsupportedAppVersionResources (Prelude.Maybe Prelude.Text)+listUnsupportedAppVersionResources_nextToken = Lens.lens (\ListUnsupportedAppVersionResources' {nextToken} -> nextToken) (\s@ListUnsupportedAppVersionResources' {} a -> s {nextToken = a} :: ListUnsupportedAppVersionResources)++-- | The identifier for a specific resolution.+listUnsupportedAppVersionResources_resolutionId :: Lens.Lens' ListUnsupportedAppVersionResources (Prelude.Maybe Prelude.Text)+listUnsupportedAppVersionResources_resolutionId = Lens.lens (\ListUnsupportedAppVersionResources' {resolutionId} -> resolutionId) (\s@ListUnsupportedAppVersionResources' {} a -> s {resolutionId = a} :: ListUnsupportedAppVersionResources)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+listUnsupportedAppVersionResources_appArn :: Lens.Lens' ListUnsupportedAppVersionResources Prelude.Text+listUnsupportedAppVersionResources_appArn = Lens.lens (\ListUnsupportedAppVersionResources' {appArn} -> appArn) (\s@ListUnsupportedAppVersionResources' {} a -> s {appArn = a} :: ListUnsupportedAppVersionResources)++-- | The version of the application.+listUnsupportedAppVersionResources_appVersion :: Lens.Lens' ListUnsupportedAppVersionResources Prelude.Text+listUnsupportedAppVersionResources_appVersion = Lens.lens (\ListUnsupportedAppVersionResources' {appVersion} -> appVersion) (\s@ListUnsupportedAppVersionResources' {} a -> s {appVersion = a} :: ListUnsupportedAppVersionResources)++instance+  Core.AWSRequest+    ListUnsupportedAppVersionResources+  where+  type+    AWSResponse ListUnsupportedAppVersionResources =+      ListUnsupportedAppVersionResourcesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListUnsupportedAppVersionResourcesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "resolutionId")+            Prelude.<*> ( x+                            Data..?> "unsupportedResources"+                            Core..!@ Prelude.mempty+                        )+      )++instance+  Prelude.Hashable+    ListUnsupportedAppVersionResources+  where+  hashWithSalt+    _salt+    ListUnsupportedAppVersionResources' {..} =+      _salt+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` resolutionId+        `Prelude.hashWithSalt` appArn+        `Prelude.hashWithSalt` appVersion++instance+  Prelude.NFData+    ListUnsupportedAppVersionResources+  where+  rnf ListUnsupportedAppVersionResources' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf resolutionId+      `Prelude.seq` Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appVersion++instance+  Data.ToHeaders+    ListUnsupportedAppVersionResources+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    ListUnsupportedAppVersionResources+  where+  toJSON ListUnsupportedAppVersionResources' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("resolutionId" Data..=) Prelude.<$> resolutionId,+            Prelude.Just ("appArn" Data..= appArn),+            Prelude.Just ("appVersion" Data..= appVersion)+          ]+      )++instance+  Data.ToPath+    ListUnsupportedAppVersionResources+  where+  toPath =+    Prelude.const+      "/list-unsupported-app-version-resources"++instance+  Data.ToQuery+    ListUnsupportedAppVersionResources+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListUnsupportedAppVersionResourcesResponse' smart constructor.+data ListUnsupportedAppVersionResourcesResponse = ListUnsupportedAppVersionResourcesResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The identifier for a specific resolution.+    resolutionId :: Prelude.Text,+    -- | The unsupported resources for the application.+    unsupportedResources :: [UnsupportedResource]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListUnsupportedAppVersionResourcesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listUnsupportedAppVersionResourcesResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listUnsupportedAppVersionResourcesResponse_httpStatus' - The response's http status code.+--+-- 'resolutionId', 'listUnsupportedAppVersionResourcesResponse_resolutionId' - The identifier for a specific resolution.+--+-- 'unsupportedResources', 'listUnsupportedAppVersionResourcesResponse_unsupportedResources' - The unsupported resources for the application.+newListUnsupportedAppVersionResourcesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'resolutionId'+  Prelude.Text ->+  ListUnsupportedAppVersionResourcesResponse+newListUnsupportedAppVersionResourcesResponse+  pHttpStatus_+  pResolutionId_ =+    ListUnsupportedAppVersionResourcesResponse'+      { nextToken =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        resolutionId = pResolutionId_,+        unsupportedResources =+          Prelude.mempty+      }++-- | The token for the next set of results, or null if there are no more+-- results.+listUnsupportedAppVersionResourcesResponse_nextToken :: Lens.Lens' ListUnsupportedAppVersionResourcesResponse (Prelude.Maybe Prelude.Text)+listUnsupportedAppVersionResourcesResponse_nextToken = Lens.lens (\ListUnsupportedAppVersionResourcesResponse' {nextToken} -> nextToken) (\s@ListUnsupportedAppVersionResourcesResponse' {} a -> s {nextToken = a} :: ListUnsupportedAppVersionResourcesResponse)++-- | The response's http status code.+listUnsupportedAppVersionResourcesResponse_httpStatus :: Lens.Lens' ListUnsupportedAppVersionResourcesResponse Prelude.Int+listUnsupportedAppVersionResourcesResponse_httpStatus = Lens.lens (\ListUnsupportedAppVersionResourcesResponse' {httpStatus} -> httpStatus) (\s@ListUnsupportedAppVersionResourcesResponse' {} a -> s {httpStatus = a} :: ListUnsupportedAppVersionResourcesResponse)++-- | The identifier for a specific resolution.+listUnsupportedAppVersionResourcesResponse_resolutionId :: Lens.Lens' ListUnsupportedAppVersionResourcesResponse Prelude.Text+listUnsupportedAppVersionResourcesResponse_resolutionId = Lens.lens (\ListUnsupportedAppVersionResourcesResponse' {resolutionId} -> resolutionId) (\s@ListUnsupportedAppVersionResourcesResponse' {} a -> s {resolutionId = a} :: ListUnsupportedAppVersionResourcesResponse)++-- | The unsupported resources for the application.+listUnsupportedAppVersionResourcesResponse_unsupportedResources :: Lens.Lens' ListUnsupportedAppVersionResourcesResponse [UnsupportedResource]+listUnsupportedAppVersionResourcesResponse_unsupportedResources = Lens.lens (\ListUnsupportedAppVersionResourcesResponse' {unsupportedResources} -> unsupportedResources) (\s@ListUnsupportedAppVersionResourcesResponse' {} a -> s {unsupportedResources = a} :: ListUnsupportedAppVersionResourcesResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListUnsupportedAppVersionResourcesResponse+  where+  rnf ListUnsupportedAppVersionResourcesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf resolutionId+      `Prelude.seq` Prelude.rnf unsupportedResources
+ gen/Amazonka/ResilienceHub/PublishAppVersion.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.ResilienceHub.PublishAppVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Publishes a new version of a specific Resilience Hub application.+module Amazonka.ResilienceHub.PublishAppVersion+  ( -- * Creating a Request+    PublishAppVersion (..),+    newPublishAppVersion,++    -- * Request Lenses+    publishAppVersion_appArn,++    -- * Destructuring the Response+    PublishAppVersionResponse (..),+    newPublishAppVersionResponse,++    -- * Response Lenses+    publishAppVersionResponse_appVersion,+    publishAppVersionResponse_httpStatus,+    publishAppVersionResponse_appArn,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newPublishAppVersion' smart constructor.+data PublishAppVersion = PublishAppVersion'+  { -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PublishAppVersion' 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:+--+-- 'appArn', 'publishAppVersion_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newPublishAppVersion ::+  -- | 'appArn'+  Prelude.Text ->+  PublishAppVersion+newPublishAppVersion pAppArn_ =+  PublishAppVersion' {appArn = pAppArn_}++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+publishAppVersion_appArn :: Lens.Lens' PublishAppVersion Prelude.Text+publishAppVersion_appArn = Lens.lens (\PublishAppVersion' {appArn} -> appArn) (\s@PublishAppVersion' {} a -> s {appArn = a} :: PublishAppVersion)++instance Core.AWSRequest PublishAppVersion where+  type+    AWSResponse PublishAppVersion =+      PublishAppVersionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          PublishAppVersionResponse'+            Prelude.<$> (x Data..?> "appVersion")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "appArn")+      )++instance Prelude.Hashable PublishAppVersion where+  hashWithSalt _salt PublishAppVersion' {..} =+    _salt `Prelude.hashWithSalt` appArn++instance Prelude.NFData PublishAppVersion where+  rnf PublishAppVersion' {..} = Prelude.rnf appArn++instance Data.ToHeaders PublishAppVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PublishAppVersion where+  toJSON PublishAppVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("appArn" Data..= appArn)]+      )++instance Data.ToPath PublishAppVersion where+  toPath = Prelude.const "/publish-app-version"++instance Data.ToQuery PublishAppVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPublishAppVersionResponse' smart constructor.+data PublishAppVersionResponse = PublishAppVersionResponse'+  { -- | The version of the application.+    appVersion :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PublishAppVersionResponse' 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:+--+-- 'appVersion', 'publishAppVersionResponse_appVersion' - The version of the application.+--+-- 'httpStatus', 'publishAppVersionResponse_httpStatus' - The response's http status code.+--+-- 'appArn', 'publishAppVersionResponse_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newPublishAppVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'appArn'+  Prelude.Text ->+  PublishAppVersionResponse+newPublishAppVersionResponse pHttpStatus_ pAppArn_ =+  PublishAppVersionResponse'+    { appVersion =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      appArn = pAppArn_+    }++-- | The version of the application.+publishAppVersionResponse_appVersion :: Lens.Lens' PublishAppVersionResponse (Prelude.Maybe Prelude.Text)+publishAppVersionResponse_appVersion = Lens.lens (\PublishAppVersionResponse' {appVersion} -> appVersion) (\s@PublishAppVersionResponse' {} a -> s {appVersion = a} :: PublishAppVersionResponse)++-- | The response's http status code.+publishAppVersionResponse_httpStatus :: Lens.Lens' PublishAppVersionResponse Prelude.Int+publishAppVersionResponse_httpStatus = Lens.lens (\PublishAppVersionResponse' {httpStatus} -> httpStatus) (\s@PublishAppVersionResponse' {} a -> s {httpStatus = a} :: PublishAppVersionResponse)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+publishAppVersionResponse_appArn :: Lens.Lens' PublishAppVersionResponse Prelude.Text+publishAppVersionResponse_appArn = Lens.lens (\PublishAppVersionResponse' {appArn} -> appArn) (\s@PublishAppVersionResponse' {} a -> s {appArn = a} :: PublishAppVersionResponse)++instance Prelude.NFData PublishAppVersionResponse where+  rnf PublishAppVersionResponse' {..} =+    Prelude.rnf appVersion+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf appArn
+ gen/Amazonka/ResilienceHub/PutDraftAppVersionTemplate.hs view
@@ -0,0 +1,228 @@+{-# 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.ResilienceHub.PutDraftAppVersionTemplate+-- 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 or updates the app template for a draft version of a Resilience Hub+-- app.+module Amazonka.ResilienceHub.PutDraftAppVersionTemplate+  ( -- * Creating a Request+    PutDraftAppVersionTemplate (..),+    newPutDraftAppVersionTemplate,++    -- * Request Lenses+    putDraftAppVersionTemplate_appArn,+    putDraftAppVersionTemplate_appTemplateBody,++    -- * Destructuring the Response+    PutDraftAppVersionTemplateResponse (..),+    newPutDraftAppVersionTemplateResponse,++    -- * Response Lenses+    putDraftAppVersionTemplateResponse_appArn,+    putDraftAppVersionTemplateResponse_appVersion,+    putDraftAppVersionTemplateResponse_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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutDraftAppVersionTemplate' smart constructor.+data PutDraftAppVersionTemplate = PutDraftAppVersionTemplate'+  { -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | A JSON string that contains the body of the app template.+    appTemplateBody :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutDraftAppVersionTemplate' 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:+--+-- 'appArn', 'putDraftAppVersionTemplate_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appTemplateBody', 'putDraftAppVersionTemplate_appTemplateBody' - A JSON string that contains the body of the app template.+newPutDraftAppVersionTemplate ::+  -- | 'appArn'+  Prelude.Text ->+  -- | 'appTemplateBody'+  Prelude.Text ->+  PutDraftAppVersionTemplate+newPutDraftAppVersionTemplate+  pAppArn_+  pAppTemplateBody_ =+    PutDraftAppVersionTemplate'+      { appArn = pAppArn_,+        appTemplateBody = pAppTemplateBody_+      }++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+putDraftAppVersionTemplate_appArn :: Lens.Lens' PutDraftAppVersionTemplate Prelude.Text+putDraftAppVersionTemplate_appArn = Lens.lens (\PutDraftAppVersionTemplate' {appArn} -> appArn) (\s@PutDraftAppVersionTemplate' {} a -> s {appArn = a} :: PutDraftAppVersionTemplate)++-- | A JSON string that contains the body of the app template.+putDraftAppVersionTemplate_appTemplateBody :: Lens.Lens' PutDraftAppVersionTemplate Prelude.Text+putDraftAppVersionTemplate_appTemplateBody = Lens.lens (\PutDraftAppVersionTemplate' {appTemplateBody} -> appTemplateBody) (\s@PutDraftAppVersionTemplate' {} a -> s {appTemplateBody = a} :: PutDraftAppVersionTemplate)++instance Core.AWSRequest PutDraftAppVersionTemplate where+  type+    AWSResponse PutDraftAppVersionTemplate =+      PutDraftAppVersionTemplateResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          PutDraftAppVersionTemplateResponse'+            Prelude.<$> (x Data..?> "appArn")+            Prelude.<*> (x Data..?> "appVersion")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutDraftAppVersionTemplate where+  hashWithSalt _salt PutDraftAppVersionTemplate' {..} =+    _salt+      `Prelude.hashWithSalt` appArn+      `Prelude.hashWithSalt` appTemplateBody++instance Prelude.NFData PutDraftAppVersionTemplate where+  rnf PutDraftAppVersionTemplate' {..} =+    Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appTemplateBody++instance Data.ToHeaders PutDraftAppVersionTemplate where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutDraftAppVersionTemplate where+  toJSON PutDraftAppVersionTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("appArn" Data..= appArn),+            Prelude.Just+              ("appTemplateBody" Data..= appTemplateBody)+          ]+      )++instance Data.ToPath PutDraftAppVersionTemplate where+  toPath =+    Prelude.const "/put-draft-app-version-template"++instance Data.ToQuery PutDraftAppVersionTemplate where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutDraftAppVersionTemplateResponse' smart constructor.+data PutDraftAppVersionTemplateResponse = PutDraftAppVersionTemplateResponse'+  { -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Maybe Prelude.Text,+    -- | The version of the application.+    appVersion :: 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 'PutDraftAppVersionTemplateResponse' 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:+--+-- 'appArn', 'putDraftAppVersionTemplateResponse_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'putDraftAppVersionTemplateResponse_appVersion' - The version of the application.+--+-- 'httpStatus', 'putDraftAppVersionTemplateResponse_httpStatus' - The response's http status code.+newPutDraftAppVersionTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutDraftAppVersionTemplateResponse+newPutDraftAppVersionTemplateResponse pHttpStatus_ =+  PutDraftAppVersionTemplateResponse'+    { appArn =+        Prelude.Nothing,+      appVersion = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+putDraftAppVersionTemplateResponse_appArn :: Lens.Lens' PutDraftAppVersionTemplateResponse (Prelude.Maybe Prelude.Text)+putDraftAppVersionTemplateResponse_appArn = Lens.lens (\PutDraftAppVersionTemplateResponse' {appArn} -> appArn) (\s@PutDraftAppVersionTemplateResponse' {} a -> s {appArn = a} :: PutDraftAppVersionTemplateResponse)++-- | The version of the application.+putDraftAppVersionTemplateResponse_appVersion :: Lens.Lens' PutDraftAppVersionTemplateResponse (Prelude.Maybe Prelude.Text)+putDraftAppVersionTemplateResponse_appVersion = Lens.lens (\PutDraftAppVersionTemplateResponse' {appVersion} -> appVersion) (\s@PutDraftAppVersionTemplateResponse' {} a -> s {appVersion = a} :: PutDraftAppVersionTemplateResponse)++-- | The response's http status code.+putDraftAppVersionTemplateResponse_httpStatus :: Lens.Lens' PutDraftAppVersionTemplateResponse Prelude.Int+putDraftAppVersionTemplateResponse_httpStatus = Lens.lens (\PutDraftAppVersionTemplateResponse' {httpStatus} -> httpStatus) (\s@PutDraftAppVersionTemplateResponse' {} a -> s {httpStatus = a} :: PutDraftAppVersionTemplateResponse)++instance+  Prelude.NFData+    PutDraftAppVersionTemplateResponse+  where+  rnf PutDraftAppVersionTemplateResponse' {..} =+    Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appVersion+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResilienceHub/RemoveDraftAppVersionResourceMappings.hs view
@@ -0,0 +1,313 @@+{-# 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.ResilienceHub.RemoveDraftAppVersionResourceMappings+-- 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 resource mappings from a draft application version.+module Amazonka.ResilienceHub.RemoveDraftAppVersionResourceMappings+  ( -- * Creating a Request+    RemoveDraftAppVersionResourceMappings (..),+    newRemoveDraftAppVersionResourceMappings,++    -- * Request Lenses+    removeDraftAppVersionResourceMappings_appRegistryAppNames,+    removeDraftAppVersionResourceMappings_logicalStackNames,+    removeDraftAppVersionResourceMappings_resourceGroupNames,+    removeDraftAppVersionResourceMappings_resourceNames,+    removeDraftAppVersionResourceMappings_terraformSourceNames,+    removeDraftAppVersionResourceMappings_appArn,++    -- * Destructuring the Response+    RemoveDraftAppVersionResourceMappingsResponse (..),+    newRemoveDraftAppVersionResourceMappingsResponse,++    -- * Response Lenses+    removeDraftAppVersionResourceMappingsResponse_appArn,+    removeDraftAppVersionResourceMappingsResponse_appVersion,+    removeDraftAppVersionResourceMappingsResponse_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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newRemoveDraftAppVersionResourceMappings' smart constructor.+data RemoveDraftAppVersionResourceMappings = RemoveDraftAppVersionResourceMappings'+  { -- | The names of the registered applications to remove from the resource+    -- mappings.+    appRegistryAppNames :: Prelude.Maybe [Prelude.Text],+    -- | The names of the CloudFormation stacks to remove from the resource+    -- mappings.+    logicalStackNames :: Prelude.Maybe [Prelude.Text],+    -- | The names of the resource groups to remove from the resource mappings.+    resourceGroupNames :: Prelude.Maybe [Prelude.Text],+    -- | The names of the resources to remove from the resource mappings.+    resourceNames :: Prelude.Maybe [Prelude.Text],+    -- | > </p>+    terraformSourceNames :: Prelude.Maybe [Prelude.Text],+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveDraftAppVersionResourceMappings' 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:+--+-- 'appRegistryAppNames', 'removeDraftAppVersionResourceMappings_appRegistryAppNames' - The names of the registered applications to remove from the resource+-- mappings.+--+-- 'logicalStackNames', 'removeDraftAppVersionResourceMappings_logicalStackNames' - The names of the CloudFormation stacks to remove from the resource+-- mappings.+--+-- 'resourceGroupNames', 'removeDraftAppVersionResourceMappings_resourceGroupNames' - The names of the resource groups to remove from the resource mappings.+--+-- 'resourceNames', 'removeDraftAppVersionResourceMappings_resourceNames' - The names of the resources to remove from the resource mappings.+--+-- 'terraformSourceNames', 'removeDraftAppVersionResourceMappings_terraformSourceNames' - > </p>+--+-- 'appArn', 'removeDraftAppVersionResourceMappings_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newRemoveDraftAppVersionResourceMappings ::+  -- | 'appArn'+  Prelude.Text ->+  RemoveDraftAppVersionResourceMappings+newRemoveDraftAppVersionResourceMappings pAppArn_ =+  RemoveDraftAppVersionResourceMappings'+    { appRegistryAppNames =+        Prelude.Nothing,+      logicalStackNames = Prelude.Nothing,+      resourceGroupNames = Prelude.Nothing,+      resourceNames = Prelude.Nothing,+      terraformSourceNames =+        Prelude.Nothing,+      appArn = pAppArn_+    }++-- | The names of the registered applications to remove from the resource+-- mappings.+removeDraftAppVersionResourceMappings_appRegistryAppNames :: Lens.Lens' RemoveDraftAppVersionResourceMappings (Prelude.Maybe [Prelude.Text])+removeDraftAppVersionResourceMappings_appRegistryAppNames = Lens.lens (\RemoveDraftAppVersionResourceMappings' {appRegistryAppNames} -> appRegistryAppNames) (\s@RemoveDraftAppVersionResourceMappings' {} a -> s {appRegistryAppNames = a} :: RemoveDraftAppVersionResourceMappings) Prelude.. Lens.mapping Lens.coerced++-- | The names of the CloudFormation stacks to remove from the resource+-- mappings.+removeDraftAppVersionResourceMappings_logicalStackNames :: Lens.Lens' RemoveDraftAppVersionResourceMappings (Prelude.Maybe [Prelude.Text])+removeDraftAppVersionResourceMappings_logicalStackNames = Lens.lens (\RemoveDraftAppVersionResourceMappings' {logicalStackNames} -> logicalStackNames) (\s@RemoveDraftAppVersionResourceMappings' {} a -> s {logicalStackNames = a} :: RemoveDraftAppVersionResourceMappings) Prelude.. Lens.mapping Lens.coerced++-- | The names of the resource groups to remove from the resource mappings.+removeDraftAppVersionResourceMappings_resourceGroupNames :: Lens.Lens' RemoveDraftAppVersionResourceMappings (Prelude.Maybe [Prelude.Text])+removeDraftAppVersionResourceMappings_resourceGroupNames = Lens.lens (\RemoveDraftAppVersionResourceMappings' {resourceGroupNames} -> resourceGroupNames) (\s@RemoveDraftAppVersionResourceMappings' {} a -> s {resourceGroupNames = a} :: RemoveDraftAppVersionResourceMappings) Prelude.. Lens.mapping Lens.coerced++-- | The names of the resources to remove from the resource mappings.+removeDraftAppVersionResourceMappings_resourceNames :: Lens.Lens' RemoveDraftAppVersionResourceMappings (Prelude.Maybe [Prelude.Text])+removeDraftAppVersionResourceMappings_resourceNames = Lens.lens (\RemoveDraftAppVersionResourceMappings' {resourceNames} -> resourceNames) (\s@RemoveDraftAppVersionResourceMappings' {} a -> s {resourceNames = a} :: RemoveDraftAppVersionResourceMappings) Prelude.. Lens.mapping Lens.coerced++-- | > </p>+removeDraftAppVersionResourceMappings_terraformSourceNames :: Lens.Lens' RemoveDraftAppVersionResourceMappings (Prelude.Maybe [Prelude.Text])+removeDraftAppVersionResourceMappings_terraformSourceNames = Lens.lens (\RemoveDraftAppVersionResourceMappings' {terraformSourceNames} -> terraformSourceNames) (\s@RemoveDraftAppVersionResourceMappings' {} a -> s {terraformSourceNames = a} :: RemoveDraftAppVersionResourceMappings) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+removeDraftAppVersionResourceMappings_appArn :: Lens.Lens' RemoveDraftAppVersionResourceMappings Prelude.Text+removeDraftAppVersionResourceMappings_appArn = Lens.lens (\RemoveDraftAppVersionResourceMappings' {appArn} -> appArn) (\s@RemoveDraftAppVersionResourceMappings' {} a -> s {appArn = a} :: RemoveDraftAppVersionResourceMappings)++instance+  Core.AWSRequest+    RemoveDraftAppVersionResourceMappings+  where+  type+    AWSResponse+      RemoveDraftAppVersionResourceMappings =+      RemoveDraftAppVersionResourceMappingsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          RemoveDraftAppVersionResourceMappingsResponse'+            Prelude.<$> (x Data..?> "appArn")+            Prelude.<*> (x Data..?> "appVersion")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    RemoveDraftAppVersionResourceMappings+  where+  hashWithSalt+    _salt+    RemoveDraftAppVersionResourceMappings' {..} =+      _salt+        `Prelude.hashWithSalt` appRegistryAppNames+        `Prelude.hashWithSalt` logicalStackNames+        `Prelude.hashWithSalt` resourceGroupNames+        `Prelude.hashWithSalt` resourceNames+        `Prelude.hashWithSalt` terraformSourceNames+        `Prelude.hashWithSalt` appArn++instance+  Prelude.NFData+    RemoveDraftAppVersionResourceMappings+  where+  rnf RemoveDraftAppVersionResourceMappings' {..} =+    Prelude.rnf appRegistryAppNames+      `Prelude.seq` Prelude.rnf logicalStackNames+      `Prelude.seq` Prelude.rnf resourceGroupNames+      `Prelude.seq` Prelude.rnf resourceNames+      `Prelude.seq` Prelude.rnf terraformSourceNames+      `Prelude.seq` Prelude.rnf appArn++instance+  Data.ToHeaders+    RemoveDraftAppVersionResourceMappings+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    RemoveDraftAppVersionResourceMappings+  where+  toJSON RemoveDraftAppVersionResourceMappings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("appRegistryAppNames" Data..=)+              Prelude.<$> appRegistryAppNames,+            ("logicalStackNames" Data..=)+              Prelude.<$> logicalStackNames,+            ("resourceGroupNames" Data..=)+              Prelude.<$> resourceGroupNames,+            ("resourceNames" Data..=) Prelude.<$> resourceNames,+            ("terraformSourceNames" Data..=)+              Prelude.<$> terraformSourceNames,+            Prelude.Just ("appArn" Data..= appArn)+          ]+      )++instance+  Data.ToPath+    RemoveDraftAppVersionResourceMappings+  where+  toPath =+    Prelude.const+      "/remove-draft-app-version-resource-mappings"++instance+  Data.ToQuery+    RemoveDraftAppVersionResourceMappings+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRemoveDraftAppVersionResourceMappingsResponse' smart constructor.+data RemoveDraftAppVersionResourceMappingsResponse = RemoveDraftAppVersionResourceMappingsResponse'+  { -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Maybe Prelude.Text,+    -- | The version of the application.+    appVersion :: 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 'RemoveDraftAppVersionResourceMappingsResponse' 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:+--+-- 'appArn', 'removeDraftAppVersionResourceMappingsResponse_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'removeDraftAppVersionResourceMappingsResponse_appVersion' - The version of the application.+--+-- 'httpStatus', 'removeDraftAppVersionResourceMappingsResponse_httpStatus' - The response's http status code.+newRemoveDraftAppVersionResourceMappingsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RemoveDraftAppVersionResourceMappingsResponse+newRemoveDraftAppVersionResourceMappingsResponse+  pHttpStatus_ =+    RemoveDraftAppVersionResourceMappingsResponse'+      { appArn =+          Prelude.Nothing,+        appVersion = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+removeDraftAppVersionResourceMappingsResponse_appArn :: Lens.Lens' RemoveDraftAppVersionResourceMappingsResponse (Prelude.Maybe Prelude.Text)+removeDraftAppVersionResourceMappingsResponse_appArn = Lens.lens (\RemoveDraftAppVersionResourceMappingsResponse' {appArn} -> appArn) (\s@RemoveDraftAppVersionResourceMappingsResponse' {} a -> s {appArn = a} :: RemoveDraftAppVersionResourceMappingsResponse)++-- | The version of the application.+removeDraftAppVersionResourceMappingsResponse_appVersion :: Lens.Lens' RemoveDraftAppVersionResourceMappingsResponse (Prelude.Maybe Prelude.Text)+removeDraftAppVersionResourceMappingsResponse_appVersion = Lens.lens (\RemoveDraftAppVersionResourceMappingsResponse' {appVersion} -> appVersion) (\s@RemoveDraftAppVersionResourceMappingsResponse' {} a -> s {appVersion = a} :: RemoveDraftAppVersionResourceMappingsResponse)++-- | The response's http status code.+removeDraftAppVersionResourceMappingsResponse_httpStatus :: Lens.Lens' RemoveDraftAppVersionResourceMappingsResponse Prelude.Int+removeDraftAppVersionResourceMappingsResponse_httpStatus = Lens.lens (\RemoveDraftAppVersionResourceMappingsResponse' {httpStatus} -> httpStatus) (\s@RemoveDraftAppVersionResourceMappingsResponse' {} a -> s {httpStatus = a} :: RemoveDraftAppVersionResourceMappingsResponse)++instance+  Prelude.NFData+    RemoveDraftAppVersionResourceMappingsResponse+  where+  rnf+    RemoveDraftAppVersionResourceMappingsResponse' {..} =+      Prelude.rnf appArn+        `Prelude.seq` Prelude.rnf appVersion+        `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/ResilienceHub/ResolveAppVersionResources.hs view
@@ -0,0 +1,261 @@+{-# 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.ResilienceHub.ResolveAppVersionResources+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Resolves the resources for an application version.+module Amazonka.ResilienceHub.ResolveAppVersionResources+  ( -- * Creating a Request+    ResolveAppVersionResources (..),+    newResolveAppVersionResources,++    -- * Request Lenses+    resolveAppVersionResources_appArn,+    resolveAppVersionResources_appVersion,++    -- * Destructuring the Response+    ResolveAppVersionResourcesResponse (..),+    newResolveAppVersionResourcesResponse,++    -- * Response Lenses+    resolveAppVersionResourcesResponse_httpStatus,+    resolveAppVersionResourcesResponse_appArn,+    resolveAppVersionResourcesResponse_appVersion,+    resolveAppVersionResourcesResponse_resolutionId,+    resolveAppVersionResourcesResponse_status,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newResolveAppVersionResources' smart constructor.+data ResolveAppVersionResources = ResolveAppVersionResources'+  { -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResolveAppVersionResources' 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:+--+-- 'appArn', 'resolveAppVersionResources_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'resolveAppVersionResources_appVersion' - The version of the application.+newResolveAppVersionResources ::+  -- | 'appArn'+  Prelude.Text ->+  -- | 'appVersion'+  Prelude.Text ->+  ResolveAppVersionResources+newResolveAppVersionResources pAppArn_ pAppVersion_ =+  ResolveAppVersionResources'+    { appArn = pAppArn_,+      appVersion = pAppVersion_+    }++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+resolveAppVersionResources_appArn :: Lens.Lens' ResolveAppVersionResources Prelude.Text+resolveAppVersionResources_appArn = Lens.lens (\ResolveAppVersionResources' {appArn} -> appArn) (\s@ResolveAppVersionResources' {} a -> s {appArn = a} :: ResolveAppVersionResources)++-- | The version of the application.+resolveAppVersionResources_appVersion :: Lens.Lens' ResolveAppVersionResources Prelude.Text+resolveAppVersionResources_appVersion = Lens.lens (\ResolveAppVersionResources' {appVersion} -> appVersion) (\s@ResolveAppVersionResources' {} a -> s {appVersion = a} :: ResolveAppVersionResources)++instance Core.AWSRequest ResolveAppVersionResources where+  type+    AWSResponse ResolveAppVersionResources =+      ResolveAppVersionResourcesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ResolveAppVersionResourcesResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "appArn")+            Prelude.<*> (x Data..:> "appVersion")+            Prelude.<*> (x Data..:> "resolutionId")+            Prelude.<*> (x Data..:> "status")+      )++instance Prelude.Hashable ResolveAppVersionResources where+  hashWithSalt _salt ResolveAppVersionResources' {..} =+    _salt+      `Prelude.hashWithSalt` appArn+      `Prelude.hashWithSalt` appVersion++instance Prelude.NFData ResolveAppVersionResources where+  rnf ResolveAppVersionResources' {..} =+    Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appVersion++instance Data.ToHeaders ResolveAppVersionResources where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ResolveAppVersionResources where+  toJSON ResolveAppVersionResources' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("appArn" Data..= appArn),+            Prelude.Just ("appVersion" Data..= appVersion)+          ]+      )++instance Data.ToPath ResolveAppVersionResources where+  toPath =+    Prelude.const "/resolve-app-version-resources"++instance Data.ToQuery ResolveAppVersionResources where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newResolveAppVersionResourcesResponse' smart constructor.+data ResolveAppVersionResourcesResponse = ResolveAppVersionResourcesResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Text,+    -- | The identifier for a specific resolution.+    resolutionId :: Prelude.Text,+    -- | The status of the action.+    status :: ResourceResolutionStatusType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResolveAppVersionResourcesResponse' 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', 'resolveAppVersionResourcesResponse_httpStatus' - The response's http status code.+--+-- 'appArn', 'resolveAppVersionResourcesResponse_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'resolveAppVersionResourcesResponse_appVersion' - The version of the application.+--+-- 'resolutionId', 'resolveAppVersionResourcesResponse_resolutionId' - The identifier for a specific resolution.+--+-- 'status', 'resolveAppVersionResourcesResponse_status' - The status of the action.+newResolveAppVersionResourcesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'appArn'+  Prelude.Text ->+  -- | 'appVersion'+  Prelude.Text ->+  -- | 'resolutionId'+  Prelude.Text ->+  -- | 'status'+  ResourceResolutionStatusType ->+  ResolveAppVersionResourcesResponse+newResolveAppVersionResourcesResponse+  pHttpStatus_+  pAppArn_+  pAppVersion_+  pResolutionId_+  pStatus_ =+    ResolveAppVersionResourcesResponse'+      { httpStatus =+          pHttpStatus_,+        appArn = pAppArn_,+        appVersion = pAppVersion_,+        resolutionId = pResolutionId_,+        status = pStatus_+      }++-- | The response's http status code.+resolveAppVersionResourcesResponse_httpStatus :: Lens.Lens' ResolveAppVersionResourcesResponse Prelude.Int+resolveAppVersionResourcesResponse_httpStatus = Lens.lens (\ResolveAppVersionResourcesResponse' {httpStatus} -> httpStatus) (\s@ResolveAppVersionResourcesResponse' {} a -> s {httpStatus = a} :: ResolveAppVersionResourcesResponse)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+resolveAppVersionResourcesResponse_appArn :: Lens.Lens' ResolveAppVersionResourcesResponse Prelude.Text+resolveAppVersionResourcesResponse_appArn = Lens.lens (\ResolveAppVersionResourcesResponse' {appArn} -> appArn) (\s@ResolveAppVersionResourcesResponse' {} a -> s {appArn = a} :: ResolveAppVersionResourcesResponse)++-- | The version of the application.+resolveAppVersionResourcesResponse_appVersion :: Lens.Lens' ResolveAppVersionResourcesResponse Prelude.Text+resolveAppVersionResourcesResponse_appVersion = Lens.lens (\ResolveAppVersionResourcesResponse' {appVersion} -> appVersion) (\s@ResolveAppVersionResourcesResponse' {} a -> s {appVersion = a} :: ResolveAppVersionResourcesResponse)++-- | The identifier for a specific resolution.+resolveAppVersionResourcesResponse_resolutionId :: Lens.Lens' ResolveAppVersionResourcesResponse Prelude.Text+resolveAppVersionResourcesResponse_resolutionId = Lens.lens (\ResolveAppVersionResourcesResponse' {resolutionId} -> resolutionId) (\s@ResolveAppVersionResourcesResponse' {} a -> s {resolutionId = a} :: ResolveAppVersionResourcesResponse)++-- | The status of the action.+resolveAppVersionResourcesResponse_status :: Lens.Lens' ResolveAppVersionResourcesResponse ResourceResolutionStatusType+resolveAppVersionResourcesResponse_status = Lens.lens (\ResolveAppVersionResourcesResponse' {status} -> status) (\s@ResolveAppVersionResourcesResponse' {} a -> s {status = a} :: ResolveAppVersionResourcesResponse)++instance+  Prelude.NFData+    ResolveAppVersionResourcesResponse+  where+  rnf ResolveAppVersionResourcesResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appVersion+      `Prelude.seq` Prelude.rnf resolutionId+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/ResilienceHub/StartAppAssessment.hs view
@@ -0,0 +1,254 @@+{-# 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.ResilienceHub.StartAppAssessment+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new application assessment for an application.+module Amazonka.ResilienceHub.StartAppAssessment+  ( -- * Creating a Request+    StartAppAssessment (..),+    newStartAppAssessment,++    -- * Request Lenses+    startAppAssessment_clientToken,+    startAppAssessment_tags,+    startAppAssessment_appArn,+    startAppAssessment_appVersion,+    startAppAssessment_assessmentName,++    -- * Destructuring the Response+    StartAppAssessmentResponse (..),+    newStartAppAssessmentResponse,++    -- * Response Lenses+    startAppAssessmentResponse_httpStatus,+    startAppAssessmentResponse_assessment,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartAppAssessment' smart constructor.+data StartAppAssessment = StartAppAssessment'+  { -- | Used for an idempotency token. A client token is a unique,+    -- case-sensitive string of up to 64 ASCII characters. You should not reuse+    -- the same client token for other API requests.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The tags assigned to the resource. A tag is a label that you assign to+    -- an Amazon Web Services resource. Each tag consists of a key\/value pair.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Text,+    -- | The name for the assessment.+    assessmentName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartAppAssessment' 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:+--+-- 'clientToken', 'startAppAssessment_clientToken' - Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+--+-- 'tags', 'startAppAssessment_tags' - The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+--+-- 'appArn', 'startAppAssessment_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'startAppAssessment_appVersion' - The version of the application.+--+-- 'assessmentName', 'startAppAssessment_assessmentName' - The name for the assessment.+newStartAppAssessment ::+  -- | 'appArn'+  Prelude.Text ->+  -- | 'appVersion'+  Prelude.Text ->+  -- | 'assessmentName'+  Prelude.Text ->+  StartAppAssessment+newStartAppAssessment+  pAppArn_+  pAppVersion_+  pAssessmentName_ =+    StartAppAssessment'+      { clientToken = Prelude.Nothing,+        tags = Prelude.Nothing,+        appArn = pAppArn_,+        appVersion = pAppVersion_,+        assessmentName = pAssessmentName_+      }++-- | Used for an idempotency token. A client token is a unique,+-- case-sensitive string of up to 64 ASCII characters. You should not reuse+-- the same client token for other API requests.+startAppAssessment_clientToken :: Lens.Lens' StartAppAssessment (Prelude.Maybe Prelude.Text)+startAppAssessment_clientToken = Lens.lens (\StartAppAssessment' {clientToken} -> clientToken) (\s@StartAppAssessment' {} a -> s {clientToken = a} :: StartAppAssessment)++-- | The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+startAppAssessment_tags :: Lens.Lens' StartAppAssessment (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+startAppAssessment_tags = Lens.lens (\StartAppAssessment' {tags} -> tags) (\s@StartAppAssessment' {} a -> s {tags = a} :: StartAppAssessment) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+startAppAssessment_appArn :: Lens.Lens' StartAppAssessment Prelude.Text+startAppAssessment_appArn = Lens.lens (\StartAppAssessment' {appArn} -> appArn) (\s@StartAppAssessment' {} a -> s {appArn = a} :: StartAppAssessment)++-- | The version of the application.+startAppAssessment_appVersion :: Lens.Lens' StartAppAssessment Prelude.Text+startAppAssessment_appVersion = Lens.lens (\StartAppAssessment' {appVersion} -> appVersion) (\s@StartAppAssessment' {} a -> s {appVersion = a} :: StartAppAssessment)++-- | The name for the assessment.+startAppAssessment_assessmentName :: Lens.Lens' StartAppAssessment Prelude.Text+startAppAssessment_assessmentName = Lens.lens (\StartAppAssessment' {assessmentName} -> assessmentName) (\s@StartAppAssessment' {} a -> s {assessmentName = a} :: StartAppAssessment)++instance Core.AWSRequest StartAppAssessment where+  type+    AWSResponse StartAppAssessment =+      StartAppAssessmentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartAppAssessmentResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "assessment")+      )++instance Prelude.Hashable StartAppAssessment where+  hashWithSalt _salt StartAppAssessment' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` appArn+      `Prelude.hashWithSalt` appVersion+      `Prelude.hashWithSalt` assessmentName++instance Prelude.NFData StartAppAssessment where+  rnf StartAppAssessment' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appVersion+      `Prelude.seq` Prelude.rnf assessmentName++instance Data.ToHeaders StartAppAssessment where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartAppAssessment where+  toJSON StartAppAssessment' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("clientToken" Data..=) Prelude.<$> clientToken,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("appArn" Data..= appArn),+            Prelude.Just ("appVersion" Data..= appVersion),+            Prelude.Just+              ("assessmentName" Data..= assessmentName)+          ]+      )++instance Data.ToPath StartAppAssessment where+  toPath = Prelude.const "/start-app-assessment"++instance Data.ToQuery StartAppAssessment where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartAppAssessmentResponse' smart constructor.+data StartAppAssessmentResponse = StartAppAssessmentResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The assessment created.+    assessment :: AppAssessment+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartAppAssessmentResponse' 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', 'startAppAssessmentResponse_httpStatus' - The response's http status code.+--+-- 'assessment', 'startAppAssessmentResponse_assessment' - The assessment created.+newStartAppAssessmentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'assessment'+  AppAssessment ->+  StartAppAssessmentResponse+newStartAppAssessmentResponse+  pHttpStatus_+  pAssessment_ =+    StartAppAssessmentResponse'+      { httpStatus =+          pHttpStatus_,+        assessment = pAssessment_+      }++-- | The response's http status code.+startAppAssessmentResponse_httpStatus :: Lens.Lens' StartAppAssessmentResponse Prelude.Int+startAppAssessmentResponse_httpStatus = Lens.lens (\StartAppAssessmentResponse' {httpStatus} -> httpStatus) (\s@StartAppAssessmentResponse' {} a -> s {httpStatus = a} :: StartAppAssessmentResponse)++-- | The assessment created.+startAppAssessmentResponse_assessment :: Lens.Lens' StartAppAssessmentResponse AppAssessment+startAppAssessmentResponse_assessment = Lens.lens (\StartAppAssessmentResponse' {assessment} -> assessment) (\s@StartAppAssessmentResponse' {} a -> s {assessment = a} :: StartAppAssessmentResponse)++instance Prelude.NFData StartAppAssessmentResponse where+  rnf StartAppAssessmentResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf assessment
+ gen/Amazonka/ResilienceHub/TagResource.hs view
@@ -0,0 +1,166 @@+{-# 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.ResilienceHub.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)+--+-- Applies one or more tags to a resource.+module Amazonka.ResilienceHub.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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) of the resource.+    resourceArn :: Prelude.Text,+    -- | The tags to assign to the resource. Each tag consists of a key\/value+    -- pair.+    tags :: Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, 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' - The Amazon Resource Name (ARN) of the resource.+--+-- 'tags', 'tagResource_tags' - The tags to assign to the resource. Each tag consists of a key\/value+-- pair.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the resource.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The tags to assign to the resource. Each tag consists of a key\/value+-- pair.+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.. Data._Sensitive 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/ResilienceHub/Types.hs view
@@ -0,0 +1,591 @@+{-# 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.ResilienceHub.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.ResilienceHub.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _ThrottlingException,+    _ValidationException,++    -- * AlarmType+    AlarmType (..),++    -- * AppAssessmentScheduleType+    AppAssessmentScheduleType (..),++    -- * AppComplianceStatusType+    AppComplianceStatusType (..),++    -- * AppStatusType+    AppStatusType (..),++    -- * AssessmentInvoker+    AssessmentInvoker (..),++    -- * AssessmentStatus+    AssessmentStatus (..),++    -- * ComplianceStatus+    ComplianceStatus (..),++    -- * ConfigRecommendationOptimizationType+    ConfigRecommendationOptimizationType (..),++    -- * CostFrequency+    CostFrequency (..),++    -- * DataLocationConstraint+    DataLocationConstraint (..),++    -- * DisruptionType+    DisruptionType (..),++    -- * EstimatedCostTier+    EstimatedCostTier (..),++    -- * HaArchitecture+    HaArchitecture (..),++    -- * PhysicalIdentifierType+    PhysicalIdentifierType (..),++    -- * RecommendationComplianceStatus+    RecommendationComplianceStatus (..),++    -- * RecommendationTemplateStatus+    RecommendationTemplateStatus (..),++    -- * RenderRecommendationType+    RenderRecommendationType (..),++    -- * ResiliencyPolicyTier+    ResiliencyPolicyTier (..),++    -- * ResourceImportStatusType+    ResourceImportStatusType (..),++    -- * ResourceMappingType+    ResourceMappingType (..),++    -- * ResourceResolutionStatusType+    ResourceResolutionStatusType (..),++    -- * SopServiceType+    SopServiceType (..),++    -- * TemplateFormat+    TemplateFormat (..),++    -- * TestRisk+    TestRisk (..),++    -- * TestType+    TestType (..),++    -- * AlarmRecommendation+    AlarmRecommendation (..),+    newAlarmRecommendation,+    alarmRecommendation_appComponentName,+    alarmRecommendation_description,+    alarmRecommendation_items,+    alarmRecommendation_prerequisite,+    alarmRecommendation_name,+    alarmRecommendation_recommendationId,+    alarmRecommendation_referenceId,+    alarmRecommendation_type,++    -- * App+    App (..),+    newApp,+    app_assessmentSchedule,+    app_complianceStatus,+    app_description,+    app_lastAppComplianceEvaluationTime,+    app_lastResiliencyScoreEvaluationTime,+    app_policyArn,+    app_resiliencyScore,+    app_status,+    app_tags,+    app_appArn,+    app_creationTime,+    app_name,++    -- * AppAssessment+    AppAssessment (..),+    newAppAssessment,+    appAssessment_appArn,+    appAssessment_appVersion,+    appAssessment_assessmentName,+    appAssessment_compliance,+    appAssessment_complianceStatus,+    appAssessment_cost,+    appAssessment_endTime,+    appAssessment_message,+    appAssessment_policy,+    appAssessment_resiliencyScore,+    appAssessment_resourceErrorsDetails,+    appAssessment_startTime,+    appAssessment_tags,+    appAssessment_assessmentArn,+    appAssessment_assessmentStatus,+    appAssessment_invoker,++    -- * AppAssessmentSummary+    AppAssessmentSummary (..),+    newAppAssessmentSummary,+    appAssessmentSummary_appArn,+    appAssessmentSummary_appVersion,+    appAssessmentSummary_assessmentName,+    appAssessmentSummary_complianceStatus,+    appAssessmentSummary_cost,+    appAssessmentSummary_endTime,+    appAssessmentSummary_invoker,+    appAssessmentSummary_message,+    appAssessmentSummary_resiliencyScore,+    appAssessmentSummary_startTime,+    appAssessmentSummary_assessmentArn,+    appAssessmentSummary_assessmentStatus,++    -- * AppComponent+    AppComponent (..),+    newAppComponent,+    appComponent_name,+    appComponent_type,++    -- * AppComponentCompliance+    AppComponentCompliance (..),+    newAppComponentCompliance,+    appComponentCompliance_appComponentName,+    appComponentCompliance_compliance,+    appComponentCompliance_cost,+    appComponentCompliance_message,+    appComponentCompliance_resiliencyScore,+    appComponentCompliance_status,++    -- * AppSummary+    AppSummary (..),+    newAppSummary,+    appSummary_assessmentSchedule,+    appSummary_complianceStatus,+    appSummary_description,+    appSummary_resiliencyScore,+    appSummary_status,+    appSummary_appArn,+    appSummary_creationTime,+    appSummary_name,++    -- * AppVersionSummary+    AppVersionSummary (..),+    newAppVersionSummary,+    appVersionSummary_appVersion,++    -- * ComponentRecommendation+    ComponentRecommendation (..),+    newComponentRecommendation,+    componentRecommendation_appComponentName,+    componentRecommendation_configRecommendations,+    componentRecommendation_recommendationStatus,++    -- * ConfigRecommendation+    ConfigRecommendation (..),+    newConfigRecommendation,+    configRecommendation_appComponentName,+    configRecommendation_compliance,+    configRecommendation_cost,+    configRecommendation_description,+    configRecommendation_haArchitecture,+    configRecommendation_recommendationCompliance,+    configRecommendation_suggestedChanges,+    configRecommendation_name,+    configRecommendation_optimizationType,+    configRecommendation_referenceId,++    -- * Cost+    Cost (..),+    newCost,+    cost_amount,+    cost_currency,+    cost_frequency,++    -- * DisruptionCompliance+    DisruptionCompliance (..),+    newDisruptionCompliance,+    disruptionCompliance_achievableRpoInSecs,+    disruptionCompliance_achievableRtoInSecs,+    disruptionCompliance_currentRpoInSecs,+    disruptionCompliance_currentRtoInSecs,+    disruptionCompliance_message,+    disruptionCompliance_rpoDescription,+    disruptionCompliance_rpoReferenceId,+    disruptionCompliance_rtoDescription,+    disruptionCompliance_rtoReferenceId,+    disruptionCompliance_complianceStatus,++    -- * FailurePolicy+    FailurePolicy (..),+    newFailurePolicy,+    failurePolicy_rpoInSecs,+    failurePolicy_rtoInSecs,++    -- * LogicalResourceId+    LogicalResourceId (..),+    newLogicalResourceId,+    logicalResourceId_logicalStackName,+    logicalResourceId_resourceGroupName,+    logicalResourceId_terraformSourceName,+    logicalResourceId_identifier,++    -- * PhysicalResource+    PhysicalResource (..),+    newPhysicalResource,+    physicalResource_appComponents,+    physicalResource_resourceName,+    physicalResource_logicalResourceId,+    physicalResource_physicalResourceId,+    physicalResource_resourceType,++    -- * PhysicalResourceId+    PhysicalResourceId (..),+    newPhysicalResourceId,+    physicalResourceId_awsAccountId,+    physicalResourceId_awsRegion,+    physicalResourceId_identifier,+    physicalResourceId_type,++    -- * RecommendationDisruptionCompliance+    RecommendationDisruptionCompliance (..),+    newRecommendationDisruptionCompliance,+    recommendationDisruptionCompliance_expectedRpoDescription,+    recommendationDisruptionCompliance_expectedRpoInSecs,+    recommendationDisruptionCompliance_expectedRtoDescription,+    recommendationDisruptionCompliance_expectedRtoInSecs,+    recommendationDisruptionCompliance_expectedComplianceStatus,++    -- * RecommendationItem+    RecommendationItem (..),+    newRecommendationItem,+    recommendationItem_alreadyImplemented,+    recommendationItem_resourceId,+    recommendationItem_targetAccountId,+    recommendationItem_targetRegion,++    -- * RecommendationTemplate+    RecommendationTemplate (..),+    newRecommendationTemplate,+    recommendationTemplate_appArn,+    recommendationTemplate_endTime,+    recommendationTemplate_message,+    recommendationTemplate_needsReplacements,+    recommendationTemplate_recommendationIds,+    recommendationTemplate_startTime,+    recommendationTemplate_tags,+    recommendationTemplate_templatesLocation,+    recommendationTemplate_assessmentArn,+    recommendationTemplate_format,+    recommendationTemplate_name,+    recommendationTemplate_recommendationTemplateArn,+    recommendationTemplate_recommendationTypes,+    recommendationTemplate_status,++    -- * ResiliencyPolicy+    ResiliencyPolicy (..),+    newResiliencyPolicy,+    resiliencyPolicy_creationTime,+    resiliencyPolicy_dataLocationConstraint,+    resiliencyPolicy_estimatedCostTier,+    resiliencyPolicy_policy,+    resiliencyPolicy_policyArn,+    resiliencyPolicy_policyDescription,+    resiliencyPolicy_policyName,+    resiliencyPolicy_tags,+    resiliencyPolicy_tier,++    -- * ResiliencyScore+    ResiliencyScore (..),+    newResiliencyScore,+    resiliencyScore_disruptionScore,+    resiliencyScore_score,++    -- * ResourceError+    ResourceError (..),+    newResourceError,+    resourceError_logicalResourceId,+    resourceError_physicalResourceId,+    resourceError_reason,++    -- * ResourceErrorsDetails+    ResourceErrorsDetails (..),+    newResourceErrorsDetails,+    resourceErrorsDetails_hasMoreErrors,+    resourceErrorsDetails_resourceErrors,++    -- * ResourceMapping+    ResourceMapping (..),+    newResourceMapping,+    resourceMapping_appRegistryAppName,+    resourceMapping_logicalStackName,+    resourceMapping_resourceGroupName,+    resourceMapping_resourceName,+    resourceMapping_terraformSourceName,+    resourceMapping_mappingType,+    resourceMapping_physicalResourceId,++    -- * S3Location+    S3Location (..),+    newS3Location,+    s3Location_bucket,+    s3Location_prefix,++    -- * SopRecommendation+    SopRecommendation (..),+    newSopRecommendation,+    sopRecommendation_appComponentName,+    sopRecommendation_description,+    sopRecommendation_items,+    sopRecommendation_name,+    sopRecommendation_prerequisite,+    sopRecommendation_recommendationId,+    sopRecommendation_referenceId,+    sopRecommendation_serviceType,++    -- * TerraformSource+    TerraformSource (..),+    newTerraformSource,+    terraformSource_s3StateFileUrl,++    -- * TestRecommendation+    TestRecommendation (..),+    newTestRecommendation,+    testRecommendation_appComponentName,+    testRecommendation_dependsOnAlarms,+    testRecommendation_description,+    testRecommendation_intent,+    testRecommendation_items,+    testRecommendation_name,+    testRecommendation_prerequisite,+    testRecommendation_recommendationId,+    testRecommendation_risk,+    testRecommendation_type,+    testRecommendation_referenceId,++    -- * UnsupportedResource+    UnsupportedResource (..),+    newUnsupportedResource,+    unsupportedResource_logicalResourceId,+    unsupportedResource_physicalResourceId,+    unsupportedResource_resourceType,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Prelude as Prelude+import Amazonka.ResilienceHub.Types.AlarmRecommendation+import Amazonka.ResilienceHub.Types.AlarmType+import Amazonka.ResilienceHub.Types.App+import Amazonka.ResilienceHub.Types.AppAssessment+import Amazonka.ResilienceHub.Types.AppAssessmentScheduleType+import Amazonka.ResilienceHub.Types.AppAssessmentSummary+import Amazonka.ResilienceHub.Types.AppComplianceStatusType+import Amazonka.ResilienceHub.Types.AppComponent+import Amazonka.ResilienceHub.Types.AppComponentCompliance+import Amazonka.ResilienceHub.Types.AppStatusType+import Amazonka.ResilienceHub.Types.AppSummary+import Amazonka.ResilienceHub.Types.AppVersionSummary+import Amazonka.ResilienceHub.Types.AssessmentInvoker+import Amazonka.ResilienceHub.Types.AssessmentStatus+import Amazonka.ResilienceHub.Types.ComplianceStatus+import Amazonka.ResilienceHub.Types.ComponentRecommendation+import Amazonka.ResilienceHub.Types.ConfigRecommendation+import Amazonka.ResilienceHub.Types.ConfigRecommendationOptimizationType+import Amazonka.ResilienceHub.Types.Cost+import Amazonka.ResilienceHub.Types.CostFrequency+import Amazonka.ResilienceHub.Types.DataLocationConstraint+import Amazonka.ResilienceHub.Types.DisruptionCompliance+import Amazonka.ResilienceHub.Types.DisruptionType+import Amazonka.ResilienceHub.Types.EstimatedCostTier+import Amazonka.ResilienceHub.Types.FailurePolicy+import Amazonka.ResilienceHub.Types.HaArchitecture+import Amazonka.ResilienceHub.Types.LogicalResourceId+import Amazonka.ResilienceHub.Types.PhysicalIdentifierType+import Amazonka.ResilienceHub.Types.PhysicalResource+import Amazonka.ResilienceHub.Types.PhysicalResourceId+import Amazonka.ResilienceHub.Types.RecommendationComplianceStatus+import Amazonka.ResilienceHub.Types.RecommendationDisruptionCompliance+import Amazonka.ResilienceHub.Types.RecommendationItem+import Amazonka.ResilienceHub.Types.RecommendationTemplate+import Amazonka.ResilienceHub.Types.RecommendationTemplateStatus+import Amazonka.ResilienceHub.Types.RenderRecommendationType+import Amazonka.ResilienceHub.Types.ResiliencyPolicy+import Amazonka.ResilienceHub.Types.ResiliencyPolicyTier+import Amazonka.ResilienceHub.Types.ResiliencyScore+import Amazonka.ResilienceHub.Types.ResourceError+import Amazonka.ResilienceHub.Types.ResourceErrorsDetails+import Amazonka.ResilienceHub.Types.ResourceImportStatusType+import Amazonka.ResilienceHub.Types.ResourceMapping+import Amazonka.ResilienceHub.Types.ResourceMappingType+import Amazonka.ResilienceHub.Types.ResourceResolutionStatusType+import Amazonka.ResilienceHub.Types.S3Location+import Amazonka.ResilienceHub.Types.SopRecommendation+import Amazonka.ResilienceHub.Types.SopServiceType+import Amazonka.ResilienceHub.Types.TemplateFormat+import Amazonka.ResilienceHub.Types.TerraformSource+import Amazonka.ResilienceHub.Types.TestRecommendation+import Amazonka.ResilienceHub.Types.TestRisk+import Amazonka.ResilienceHub.Types.TestType+import Amazonka.ResilienceHub.Types.UnsupportedResource+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-04-30@ of the Amazon Resilience Hub SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "ResilienceHub",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "resiliencehub",+      Core.signingName = "resiliencehub",+      Core.version = "2020-04-30",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "ResilienceHub",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | You don\'t have permissions to perform the requested operation. The user+-- or role that is making the request must have at least one IAM+-- permissions policy attached that grants the required permissions.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | Occurs when a conflict with a previous successful write is detected.+-- This generally occurs when the previous write did not have time to+-- propagate to the host serving the current request. A retry (with+-- appropriate backoff logic) is the recommended response to this+-- exception.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | This exception occurs when there is an internal failure in the AWS+-- Resilience Hub service.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | The specified resource could not be found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | You have exceeded your service quota. To perform the requested action,+-- remove some of the relevant resources, or use Service Quotas to request+-- a service quota increase.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"+    Prelude.. Core.hasStatus 402++-- | The limit on the number of requests per second was exceeded.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"+    Prelude.. Core.hasStatus 429++-- | Indicates that a request was not valid.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/ResilienceHub/Types/AlarmRecommendation.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.ResilienceHub.Types.AlarmRecommendation+-- 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.ResilienceHub.Types.AlarmRecommendation 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.ResilienceHub.Types.AlarmType+import Amazonka.ResilienceHub.Types.RecommendationItem++-- | Defines a recommendation for a CloudWatch alarm.+--+-- /See:/ 'newAlarmRecommendation' smart constructor.+data AlarmRecommendation = AlarmRecommendation'+  { -- | The application component for the CloudWatch alarm recommendation.+    appComponentName :: Prelude.Maybe Prelude.Text,+    -- | The description of the recommendation.+    description :: Prelude.Maybe Prelude.Text,+    -- | The list of CloudWatch alarm recommendations.+    items :: Prelude.Maybe [RecommendationItem],+    -- | The prerequisite for the alarm recommendation.+    prerequisite :: Prelude.Maybe Prelude.Text,+    -- | The name of the alarm recommendation.+    name :: Prelude.Text,+    -- | The identifier of the alarm recommendation.+    recommendationId :: Prelude.Text,+    -- | The reference identifier of the alarm recommendation.+    referenceId :: Prelude.Text,+    -- | The type of alarm recommendation.+    type' :: AlarmType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AlarmRecommendation' 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:+--+-- 'appComponentName', 'alarmRecommendation_appComponentName' - The application component for the CloudWatch alarm recommendation.+--+-- 'description', 'alarmRecommendation_description' - The description of the recommendation.+--+-- 'items', 'alarmRecommendation_items' - The list of CloudWatch alarm recommendations.+--+-- 'prerequisite', 'alarmRecommendation_prerequisite' - The prerequisite for the alarm recommendation.+--+-- 'name', 'alarmRecommendation_name' - The name of the alarm recommendation.+--+-- 'recommendationId', 'alarmRecommendation_recommendationId' - The identifier of the alarm recommendation.+--+-- 'referenceId', 'alarmRecommendation_referenceId' - The reference identifier of the alarm recommendation.+--+-- 'type'', 'alarmRecommendation_type' - The type of alarm recommendation.+newAlarmRecommendation ::+  -- | 'name'+  Prelude.Text ->+  -- | 'recommendationId'+  Prelude.Text ->+  -- | 'referenceId'+  Prelude.Text ->+  -- | 'type''+  AlarmType ->+  AlarmRecommendation+newAlarmRecommendation+  pName_+  pRecommendationId_+  pReferenceId_+  pType_ =+    AlarmRecommendation'+      { appComponentName =+          Prelude.Nothing,+        description = Prelude.Nothing,+        items = Prelude.Nothing,+        prerequisite = Prelude.Nothing,+        name = pName_,+        recommendationId = pRecommendationId_,+        referenceId = pReferenceId_,+        type' = pType_+      }++-- | The application component for the CloudWatch alarm recommendation.+alarmRecommendation_appComponentName :: Lens.Lens' AlarmRecommendation (Prelude.Maybe Prelude.Text)+alarmRecommendation_appComponentName = Lens.lens (\AlarmRecommendation' {appComponentName} -> appComponentName) (\s@AlarmRecommendation' {} a -> s {appComponentName = a} :: AlarmRecommendation)++-- | The description of the recommendation.+alarmRecommendation_description :: Lens.Lens' AlarmRecommendation (Prelude.Maybe Prelude.Text)+alarmRecommendation_description = Lens.lens (\AlarmRecommendation' {description} -> description) (\s@AlarmRecommendation' {} a -> s {description = a} :: AlarmRecommendation)++-- | The list of CloudWatch alarm recommendations.+alarmRecommendation_items :: Lens.Lens' AlarmRecommendation (Prelude.Maybe [RecommendationItem])+alarmRecommendation_items = Lens.lens (\AlarmRecommendation' {items} -> items) (\s@AlarmRecommendation' {} a -> s {items = a} :: AlarmRecommendation) Prelude.. Lens.mapping Lens.coerced++-- | The prerequisite for the alarm recommendation.+alarmRecommendation_prerequisite :: Lens.Lens' AlarmRecommendation (Prelude.Maybe Prelude.Text)+alarmRecommendation_prerequisite = Lens.lens (\AlarmRecommendation' {prerequisite} -> prerequisite) (\s@AlarmRecommendation' {} a -> s {prerequisite = a} :: AlarmRecommendation)++-- | The name of the alarm recommendation.+alarmRecommendation_name :: Lens.Lens' AlarmRecommendation Prelude.Text+alarmRecommendation_name = Lens.lens (\AlarmRecommendation' {name} -> name) (\s@AlarmRecommendation' {} a -> s {name = a} :: AlarmRecommendation)++-- | The identifier of the alarm recommendation.+alarmRecommendation_recommendationId :: Lens.Lens' AlarmRecommendation Prelude.Text+alarmRecommendation_recommendationId = Lens.lens (\AlarmRecommendation' {recommendationId} -> recommendationId) (\s@AlarmRecommendation' {} a -> s {recommendationId = a} :: AlarmRecommendation)++-- | The reference identifier of the alarm recommendation.+alarmRecommendation_referenceId :: Lens.Lens' AlarmRecommendation Prelude.Text+alarmRecommendation_referenceId = Lens.lens (\AlarmRecommendation' {referenceId} -> referenceId) (\s@AlarmRecommendation' {} a -> s {referenceId = a} :: AlarmRecommendation)++-- | The type of alarm recommendation.+alarmRecommendation_type :: Lens.Lens' AlarmRecommendation AlarmType+alarmRecommendation_type = Lens.lens (\AlarmRecommendation' {type'} -> type') (\s@AlarmRecommendation' {} a -> s {type' = a} :: AlarmRecommendation)++instance Data.FromJSON AlarmRecommendation where+  parseJSON =+    Data.withObject+      "AlarmRecommendation"+      ( \x ->+          AlarmRecommendation'+            Prelude.<$> (x Data..:? "appComponentName")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "items" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "prerequisite")+            Prelude.<*> (x Data..: "name")+            Prelude.<*> (x Data..: "recommendationId")+            Prelude.<*> (x Data..: "referenceId")+            Prelude.<*> (x Data..: "type")+      )++instance Prelude.Hashable AlarmRecommendation where+  hashWithSalt _salt AlarmRecommendation' {..} =+    _salt+      `Prelude.hashWithSalt` appComponentName+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` items+      `Prelude.hashWithSalt` prerequisite+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` recommendationId+      `Prelude.hashWithSalt` referenceId+      `Prelude.hashWithSalt` type'++instance Prelude.NFData AlarmRecommendation where+  rnf AlarmRecommendation' {..} =+    Prelude.rnf appComponentName+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf items+      `Prelude.seq` Prelude.rnf prerequisite+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf recommendationId+      `Prelude.seq` Prelude.rnf referenceId+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/ResilienceHub/Types/AlarmType.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.ResilienceHub.Types.AlarmType+-- 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.ResilienceHub.Types.AlarmType+  ( AlarmType+      ( ..,+        AlarmType_Canary,+        AlarmType_Composite,+        AlarmType_Event,+        AlarmType_Logs,+        AlarmType_Metric+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AlarmType = AlarmType'+  { fromAlarmType ::+      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 AlarmType_Canary :: AlarmType+pattern AlarmType_Canary = AlarmType' "Canary"++pattern AlarmType_Composite :: AlarmType+pattern AlarmType_Composite = AlarmType' "Composite"++pattern AlarmType_Event :: AlarmType+pattern AlarmType_Event = AlarmType' "Event"++pattern AlarmType_Logs :: AlarmType+pattern AlarmType_Logs = AlarmType' "Logs"++pattern AlarmType_Metric :: AlarmType+pattern AlarmType_Metric = AlarmType' "Metric"++{-# COMPLETE+  AlarmType_Canary,+  AlarmType_Composite,+  AlarmType_Event,+  AlarmType_Logs,+  AlarmType_Metric,+  AlarmType'+  #-}
+ gen/Amazonka/ResilienceHub/Types/App.hs view
@@ -0,0 +1,243 @@+{-# 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.ResilienceHub.Types.App+-- 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.ResilienceHub.Types.App 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.ResilienceHub.Types.AppAssessmentScheduleType+import Amazonka.ResilienceHub.Types.AppComplianceStatusType+import Amazonka.ResilienceHub.Types.AppStatusType++-- | Defines a Resilience Hub application.+--+-- /See:/ 'newApp' smart constructor.+data App = App'+  { -- | Assessment execution schedule with \'Daily\' or \'Disabled\' values.+    assessmentSchedule :: Prelude.Maybe AppAssessmentScheduleType,+    -- | The current status of compliance for the resiliency policy.+    complianceStatus :: Prelude.Maybe AppComplianceStatusType,+    -- | The optional description for an app.+    description :: Prelude.Maybe Prelude.Text,+    -- | The timestamp for the most recent compliance evaluation.+    lastAppComplianceEvaluationTime :: Prelude.Maybe Data.POSIX,+    -- | The timestamp for the most recent resiliency score evaluation.+    lastResiliencyScoreEvaluationTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+    -- this ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    policyArn :: Prelude.Maybe Prelude.Text,+    -- | The current resiliency score for the application.+    resiliencyScore :: Prelude.Maybe Prelude.Double,+    -- | The status of the application.+    status :: Prelude.Maybe AppStatusType,+    -- | The tags assigned to the resource. A tag is a label that you assign to+    -- an Amazon Web Services resource. Each tag consists of a key\/value pair.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The timestamp for when the app was created.+    creationTime :: Data.POSIX,+    -- | The name for the application.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'App' 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:+--+-- 'assessmentSchedule', 'app_assessmentSchedule' - Assessment execution schedule with \'Daily\' or \'Disabled\' values.+--+-- 'complianceStatus', 'app_complianceStatus' - The current status of compliance for the resiliency policy.+--+-- 'description', 'app_description' - The optional description for an app.+--+-- 'lastAppComplianceEvaluationTime', 'app_lastAppComplianceEvaluationTime' - The timestamp for the most recent compliance evaluation.+--+-- 'lastResiliencyScoreEvaluationTime', 'app_lastResiliencyScoreEvaluationTime' - The timestamp for the most recent resiliency score evaluation.+--+-- 'policyArn', 'app_policyArn' - The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'resiliencyScore', 'app_resiliencyScore' - The current resiliency score for the application.+--+-- 'status', 'app_status' - The status of the application.+--+-- 'tags', 'app_tags' - The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+--+-- 'appArn', 'app_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'creationTime', 'app_creationTime' - The timestamp for when the app was created.+--+-- 'name', 'app_name' - The name for the application.+newApp ::+  -- | 'appArn'+  Prelude.Text ->+  -- | 'creationTime'+  Prelude.UTCTime ->+  -- | 'name'+  Prelude.Text ->+  App+newApp pAppArn_ pCreationTime_ pName_ =+  App'+    { assessmentSchedule = Prelude.Nothing,+      complianceStatus = Prelude.Nothing,+      description = Prelude.Nothing,+      lastAppComplianceEvaluationTime = Prelude.Nothing,+      lastResiliencyScoreEvaluationTime = Prelude.Nothing,+      policyArn = Prelude.Nothing,+      resiliencyScore = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing,+      appArn = pAppArn_,+      creationTime = Data._Time Lens.# pCreationTime_,+      name = pName_+    }++-- | Assessment execution schedule with \'Daily\' or \'Disabled\' values.+app_assessmentSchedule :: Lens.Lens' App (Prelude.Maybe AppAssessmentScheduleType)+app_assessmentSchedule = Lens.lens (\App' {assessmentSchedule} -> assessmentSchedule) (\s@App' {} a -> s {assessmentSchedule = a} :: App)++-- | The current status of compliance for the resiliency policy.+app_complianceStatus :: Lens.Lens' App (Prelude.Maybe AppComplianceStatusType)+app_complianceStatus = Lens.lens (\App' {complianceStatus} -> complianceStatus) (\s@App' {} a -> s {complianceStatus = a} :: App)++-- | The optional description for an app.+app_description :: Lens.Lens' App (Prelude.Maybe Prelude.Text)+app_description = Lens.lens (\App' {description} -> description) (\s@App' {} a -> s {description = a} :: App)++-- | The timestamp for the most recent compliance evaluation.+app_lastAppComplianceEvaluationTime :: Lens.Lens' App (Prelude.Maybe Prelude.UTCTime)+app_lastAppComplianceEvaluationTime = Lens.lens (\App' {lastAppComplianceEvaluationTime} -> lastAppComplianceEvaluationTime) (\s@App' {} a -> s {lastAppComplianceEvaluationTime = a} :: App) Prelude.. Lens.mapping Data._Time++-- | The timestamp for the most recent resiliency score evaluation.+app_lastResiliencyScoreEvaluationTime :: Lens.Lens' App (Prelude.Maybe Prelude.UTCTime)+app_lastResiliencyScoreEvaluationTime = Lens.lens (\App' {lastResiliencyScoreEvaluationTime} -> lastResiliencyScoreEvaluationTime) (\s@App' {} a -> s {lastResiliencyScoreEvaluationTime = a} :: App) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+app_policyArn :: Lens.Lens' App (Prelude.Maybe Prelude.Text)+app_policyArn = Lens.lens (\App' {policyArn} -> policyArn) (\s@App' {} a -> s {policyArn = a} :: App)++-- | The current resiliency score for the application.+app_resiliencyScore :: Lens.Lens' App (Prelude.Maybe Prelude.Double)+app_resiliencyScore = Lens.lens (\App' {resiliencyScore} -> resiliencyScore) (\s@App' {} a -> s {resiliencyScore = a} :: App)++-- | The status of the application.+app_status :: Lens.Lens' App (Prelude.Maybe AppStatusType)+app_status = Lens.lens (\App' {status} -> status) (\s@App' {} a -> s {status = a} :: App)++-- | The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+app_tags :: Lens.Lens' App (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+app_tags = Lens.lens (\App' {tags} -> tags) (\s@App' {} a -> s {tags = a} :: App) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+app_appArn :: Lens.Lens' App Prelude.Text+app_appArn = Lens.lens (\App' {appArn} -> appArn) (\s@App' {} a -> s {appArn = a} :: App)++-- | The timestamp for when the app was created.+app_creationTime :: Lens.Lens' App Prelude.UTCTime+app_creationTime = Lens.lens (\App' {creationTime} -> creationTime) (\s@App' {} a -> s {creationTime = a} :: App) Prelude.. Data._Time++-- | The name for the application.+app_name :: Lens.Lens' App Prelude.Text+app_name = Lens.lens (\App' {name} -> name) (\s@App' {} a -> s {name = a} :: App)++instance Data.FromJSON App where+  parseJSON =+    Data.withObject+      "App"+      ( \x ->+          App'+            Prelude.<$> (x Data..:? "assessmentSchedule")+            Prelude.<*> (x Data..:? "complianceStatus")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastAppComplianceEvaluationTime")+            Prelude.<*> (x Data..:? "lastResiliencyScoreEvaluationTime")+            Prelude.<*> (x Data..:? "policyArn")+            Prelude.<*> (x Data..:? "resiliencyScore")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "appArn")+            Prelude.<*> (x Data..: "creationTime")+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable App where+  hashWithSalt _salt App' {..} =+    _salt+      `Prelude.hashWithSalt` assessmentSchedule+      `Prelude.hashWithSalt` complianceStatus+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastAppComplianceEvaluationTime+      `Prelude.hashWithSalt` lastResiliencyScoreEvaluationTime+      `Prelude.hashWithSalt` policyArn+      `Prelude.hashWithSalt` resiliencyScore+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` appArn+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` name++instance Prelude.NFData App where+  rnf App' {..} =+    Prelude.rnf assessmentSchedule+      `Prelude.seq` Prelude.rnf complianceStatus+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastAppComplianceEvaluationTime+      `Prelude.seq` Prelude.rnf lastResiliencyScoreEvaluationTime+      `Prelude.seq` Prelude.rnf policyArn+      `Prelude.seq` Prelude.rnf resiliencyScore+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/ResilienceHub/Types/AppAssessment.hs view
@@ -0,0 +1,303 @@+{-# 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.ResilienceHub.Types.AppAssessment+-- 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.ResilienceHub.Types.AppAssessment 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.ResilienceHub.Types.AssessmentInvoker+import Amazonka.ResilienceHub.Types.AssessmentStatus+import Amazonka.ResilienceHub.Types.ComplianceStatus+import Amazonka.ResilienceHub.Types.Cost+import Amazonka.ResilienceHub.Types.DisruptionCompliance+import Amazonka.ResilienceHub.Types.DisruptionType+import Amazonka.ResilienceHub.Types.ResiliencyPolicy+import Amazonka.ResilienceHub.Types.ResiliencyScore+import Amazonka.ResilienceHub.Types.ResourceErrorsDetails++-- | Defines an application assessment.+--+-- /See:/ 'newAppAssessment' smart constructor.+data AppAssessment = AppAssessment'+  { -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Maybe Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Maybe Prelude.Text,+    -- | The name of the assessment.+    assessmentName :: Prelude.Maybe Prelude.Text,+    -- | The application compliance against the resiliency policy.+    compliance :: Prelude.Maybe (Prelude.HashMap DisruptionType DisruptionCompliance),+    -- | The current status of the compliance for the resiliency policy.+    complianceStatus :: Prelude.Maybe ComplianceStatus,+    -- | The cost for the application.+    cost :: Prelude.Maybe Cost,+    -- | The end time for the action.+    endTime :: Prelude.Maybe Data.POSIX,+    -- | Error or warning message from the assessment execution+    message :: Prelude.Maybe Prelude.Text,+    -- | The resiliency policy.+    policy :: Prelude.Maybe ResiliencyPolicy,+    -- | The current resiliency score for the application.+    resiliencyScore :: Prelude.Maybe ResiliencyScore,+    -- | A resource error object containing a list of errors retrieving an+    -- application\'s resources.+    resourceErrorsDetails :: Prelude.Maybe ResourceErrorsDetails,+    -- | The starting time for the action.+    startTime :: Prelude.Maybe Data.POSIX,+    -- | The tags assigned to the resource. A tag is a label that you assign to+    -- an Amazon Web Services resource. Each tag consists of a key\/value pair.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The Amazon Resource Name (ARN) of the assessment. The format for this+    -- ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    assessmentArn :: Prelude.Text,+    -- | The current status of the assessment for the resiliency policy.+    assessmentStatus :: AssessmentStatus,+    -- | The entity that invoked the assessment.+    invoker :: AssessmentInvoker+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AppAssessment' 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:+--+-- 'appArn', 'appAssessment_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'appAssessment_appVersion' - The version of the application.+--+-- 'assessmentName', 'appAssessment_assessmentName' - The name of the assessment.+--+-- 'compliance', 'appAssessment_compliance' - The application compliance against the resiliency policy.+--+-- 'complianceStatus', 'appAssessment_complianceStatus' - The current status of the compliance for the resiliency policy.+--+-- 'cost', 'appAssessment_cost' - The cost for the application.+--+-- 'endTime', 'appAssessment_endTime' - The end time for the action.+--+-- 'message', 'appAssessment_message' - Error or warning message from the assessment execution+--+-- 'policy', 'appAssessment_policy' - The resiliency policy.+--+-- 'resiliencyScore', 'appAssessment_resiliencyScore' - The current resiliency score for the application.+--+-- 'resourceErrorsDetails', 'appAssessment_resourceErrorsDetails' - A resource error object containing a list of errors retrieving an+-- application\'s resources.+--+-- 'startTime', 'appAssessment_startTime' - The starting time for the action.+--+-- 'tags', 'appAssessment_tags' - The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+--+-- 'assessmentArn', 'appAssessment_assessmentArn' - The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'assessmentStatus', 'appAssessment_assessmentStatus' - The current status of the assessment for the resiliency policy.+--+-- 'invoker', 'appAssessment_invoker' - The entity that invoked the assessment.+newAppAssessment ::+  -- | 'assessmentArn'+  Prelude.Text ->+  -- | 'assessmentStatus'+  AssessmentStatus ->+  -- | 'invoker'+  AssessmentInvoker ->+  AppAssessment+newAppAssessment+  pAssessmentArn_+  pAssessmentStatus_+  pInvoker_ =+    AppAssessment'+      { appArn = Prelude.Nothing,+        appVersion = Prelude.Nothing,+        assessmentName = Prelude.Nothing,+        compliance = Prelude.Nothing,+        complianceStatus = Prelude.Nothing,+        cost = Prelude.Nothing,+        endTime = Prelude.Nothing,+        message = Prelude.Nothing,+        policy = Prelude.Nothing,+        resiliencyScore = Prelude.Nothing,+        resourceErrorsDetails = Prelude.Nothing,+        startTime = Prelude.Nothing,+        tags = Prelude.Nothing,+        assessmentArn = pAssessmentArn_,+        assessmentStatus = pAssessmentStatus_,+        invoker = pInvoker_+      }++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+appAssessment_appArn :: Lens.Lens' AppAssessment (Prelude.Maybe Prelude.Text)+appAssessment_appArn = Lens.lens (\AppAssessment' {appArn} -> appArn) (\s@AppAssessment' {} a -> s {appArn = a} :: AppAssessment)++-- | The version of the application.+appAssessment_appVersion :: Lens.Lens' AppAssessment (Prelude.Maybe Prelude.Text)+appAssessment_appVersion = Lens.lens (\AppAssessment' {appVersion} -> appVersion) (\s@AppAssessment' {} a -> s {appVersion = a} :: AppAssessment)++-- | The name of the assessment.+appAssessment_assessmentName :: Lens.Lens' AppAssessment (Prelude.Maybe Prelude.Text)+appAssessment_assessmentName = Lens.lens (\AppAssessment' {assessmentName} -> assessmentName) (\s@AppAssessment' {} a -> s {assessmentName = a} :: AppAssessment)++-- | The application compliance against the resiliency policy.+appAssessment_compliance :: Lens.Lens' AppAssessment (Prelude.Maybe (Prelude.HashMap DisruptionType DisruptionCompliance))+appAssessment_compliance = Lens.lens (\AppAssessment' {compliance} -> compliance) (\s@AppAssessment' {} a -> s {compliance = a} :: AppAssessment) Prelude.. Lens.mapping Lens.coerced++-- | The current status of the compliance for the resiliency policy.+appAssessment_complianceStatus :: Lens.Lens' AppAssessment (Prelude.Maybe ComplianceStatus)+appAssessment_complianceStatus = Lens.lens (\AppAssessment' {complianceStatus} -> complianceStatus) (\s@AppAssessment' {} a -> s {complianceStatus = a} :: AppAssessment)++-- | The cost for the application.+appAssessment_cost :: Lens.Lens' AppAssessment (Prelude.Maybe Cost)+appAssessment_cost = Lens.lens (\AppAssessment' {cost} -> cost) (\s@AppAssessment' {} a -> s {cost = a} :: AppAssessment)++-- | The end time for the action.+appAssessment_endTime :: Lens.Lens' AppAssessment (Prelude.Maybe Prelude.UTCTime)+appAssessment_endTime = Lens.lens (\AppAssessment' {endTime} -> endTime) (\s@AppAssessment' {} a -> s {endTime = a} :: AppAssessment) Prelude.. Lens.mapping Data._Time++-- | Error or warning message from the assessment execution+appAssessment_message :: Lens.Lens' AppAssessment (Prelude.Maybe Prelude.Text)+appAssessment_message = Lens.lens (\AppAssessment' {message} -> message) (\s@AppAssessment' {} a -> s {message = a} :: AppAssessment)++-- | The resiliency policy.+appAssessment_policy :: Lens.Lens' AppAssessment (Prelude.Maybe ResiliencyPolicy)+appAssessment_policy = Lens.lens (\AppAssessment' {policy} -> policy) (\s@AppAssessment' {} a -> s {policy = a} :: AppAssessment)++-- | The current resiliency score for the application.+appAssessment_resiliencyScore :: Lens.Lens' AppAssessment (Prelude.Maybe ResiliencyScore)+appAssessment_resiliencyScore = Lens.lens (\AppAssessment' {resiliencyScore} -> resiliencyScore) (\s@AppAssessment' {} a -> s {resiliencyScore = a} :: AppAssessment)++-- | A resource error object containing a list of errors retrieving an+-- application\'s resources.+appAssessment_resourceErrorsDetails :: Lens.Lens' AppAssessment (Prelude.Maybe ResourceErrorsDetails)+appAssessment_resourceErrorsDetails = Lens.lens (\AppAssessment' {resourceErrorsDetails} -> resourceErrorsDetails) (\s@AppAssessment' {} a -> s {resourceErrorsDetails = a} :: AppAssessment)++-- | The starting time for the action.+appAssessment_startTime :: Lens.Lens' AppAssessment (Prelude.Maybe Prelude.UTCTime)+appAssessment_startTime = Lens.lens (\AppAssessment' {startTime} -> startTime) (\s@AppAssessment' {} a -> s {startTime = a} :: AppAssessment) Prelude.. Lens.mapping Data._Time++-- | The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+appAssessment_tags :: Lens.Lens' AppAssessment (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+appAssessment_tags = Lens.lens (\AppAssessment' {tags} -> tags) (\s@AppAssessment' {} a -> s {tags = a} :: AppAssessment) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+appAssessment_assessmentArn :: Lens.Lens' AppAssessment Prelude.Text+appAssessment_assessmentArn = Lens.lens (\AppAssessment' {assessmentArn} -> assessmentArn) (\s@AppAssessment' {} a -> s {assessmentArn = a} :: AppAssessment)++-- | The current status of the assessment for the resiliency policy.+appAssessment_assessmentStatus :: Lens.Lens' AppAssessment AssessmentStatus+appAssessment_assessmentStatus = Lens.lens (\AppAssessment' {assessmentStatus} -> assessmentStatus) (\s@AppAssessment' {} a -> s {assessmentStatus = a} :: AppAssessment)++-- | The entity that invoked the assessment.+appAssessment_invoker :: Lens.Lens' AppAssessment AssessmentInvoker+appAssessment_invoker = Lens.lens (\AppAssessment' {invoker} -> invoker) (\s@AppAssessment' {} a -> s {invoker = a} :: AppAssessment)++instance Data.FromJSON AppAssessment where+  parseJSON =+    Data.withObject+      "AppAssessment"+      ( \x ->+          AppAssessment'+            Prelude.<$> (x Data..:? "appArn")+            Prelude.<*> (x Data..:? "appVersion")+            Prelude.<*> (x Data..:? "assessmentName")+            Prelude.<*> (x Data..:? "compliance" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "complianceStatus")+            Prelude.<*> (x Data..:? "cost")+            Prelude.<*> (x Data..:? "endTime")+            Prelude.<*> (x Data..:? "message")+            Prelude.<*> (x Data..:? "policy")+            Prelude.<*> (x Data..:? "resiliencyScore")+            Prelude.<*> (x Data..:? "resourceErrorsDetails")+            Prelude.<*> (x Data..:? "startTime")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "assessmentArn")+            Prelude.<*> (x Data..: "assessmentStatus")+            Prelude.<*> (x Data..: "invoker")+      )++instance Prelude.Hashable AppAssessment where+  hashWithSalt _salt AppAssessment' {..} =+    _salt+      `Prelude.hashWithSalt` appArn+      `Prelude.hashWithSalt` appVersion+      `Prelude.hashWithSalt` assessmentName+      `Prelude.hashWithSalt` compliance+      `Prelude.hashWithSalt` complianceStatus+      `Prelude.hashWithSalt` cost+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` policy+      `Prelude.hashWithSalt` resiliencyScore+      `Prelude.hashWithSalt` resourceErrorsDetails+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` assessmentArn+      `Prelude.hashWithSalt` assessmentStatus+      `Prelude.hashWithSalt` invoker++instance Prelude.NFData AppAssessment where+  rnf AppAssessment' {..} =+    Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appVersion+      `Prelude.seq` Prelude.rnf assessmentName+      `Prelude.seq` Prelude.rnf compliance+      `Prelude.seq` Prelude.rnf complianceStatus+      `Prelude.seq` Prelude.rnf cost+      `Prelude.seq` Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf message+      `Prelude.seq` Prelude.rnf policy+      `Prelude.seq` Prelude.rnf resiliencyScore+      `Prelude.seq` Prelude.rnf resourceErrorsDetails+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf assessmentArn+      `Prelude.seq` Prelude.rnf assessmentStatus+      `Prelude.seq` Prelude.rnf invoker
+ gen/Amazonka/ResilienceHub/Types/AppAssessmentScheduleType.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.ResilienceHub.Types.AppAssessmentScheduleType+-- 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.ResilienceHub.Types.AppAssessmentScheduleType+  ( AppAssessmentScheduleType+      ( ..,+        AppAssessmentScheduleType_Daily,+        AppAssessmentScheduleType_Disabled+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AppAssessmentScheduleType = AppAssessmentScheduleType'+  { fromAppAssessmentScheduleType ::+      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 AppAssessmentScheduleType_Daily :: AppAssessmentScheduleType+pattern AppAssessmentScheduleType_Daily = AppAssessmentScheduleType' "Daily"++pattern AppAssessmentScheduleType_Disabled :: AppAssessmentScheduleType+pattern AppAssessmentScheduleType_Disabled = AppAssessmentScheduleType' "Disabled"++{-# COMPLETE+  AppAssessmentScheduleType_Daily,+  AppAssessmentScheduleType_Disabled,+  AppAssessmentScheduleType'+  #-}
+ gen/Amazonka/ResilienceHub/Types/AppAssessmentSummary.hs view
@@ -0,0 +1,241 @@+{-# 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.ResilienceHub.Types.AppAssessmentSummary+-- 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.ResilienceHub.Types.AppAssessmentSummary 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.ResilienceHub.Types.AssessmentInvoker+import Amazonka.ResilienceHub.Types.AssessmentStatus+import Amazonka.ResilienceHub.Types.ComplianceStatus+import Amazonka.ResilienceHub.Types.Cost++-- | Defines an application assessment summary.+--+-- /See:/ 'newAppAssessmentSummary' smart constructor.+data AppAssessmentSummary = AppAssessmentSummary'+  { -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Maybe Prelude.Text,+    -- | The version of the application.+    appVersion :: Prelude.Maybe Prelude.Text,+    -- | The name of the assessment.+    assessmentName :: Prelude.Maybe Prelude.Text,+    -- | The current status of compliance for the resiliency policy.+    complianceStatus :: Prelude.Maybe ComplianceStatus,+    -- | The cost for the application.+    cost :: Prelude.Maybe Cost,+    -- | The end time for the action.+    endTime :: Prelude.Maybe Data.POSIX,+    -- | The entity that invoked the assessment.+    invoker :: Prelude.Maybe AssessmentInvoker,+    -- | The message from the assessment run.+    message :: Prelude.Maybe Prelude.Text,+    -- | The current resiliency score for the application.+    resiliencyScore :: Prelude.Maybe Prelude.Double,+    -- | The starting time for the action.+    startTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the assessment. The format for this+    -- ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    assessmentArn :: Prelude.Text,+    -- | The current status of the assessment for the resiliency policy.+    assessmentStatus :: AssessmentStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AppAssessmentSummary' 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:+--+-- 'appArn', 'appAssessmentSummary_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appVersion', 'appAssessmentSummary_appVersion' - The version of the application.+--+-- 'assessmentName', 'appAssessmentSummary_assessmentName' - The name of the assessment.+--+-- 'complianceStatus', 'appAssessmentSummary_complianceStatus' - The current status of compliance for the resiliency policy.+--+-- 'cost', 'appAssessmentSummary_cost' - The cost for the application.+--+-- 'endTime', 'appAssessmentSummary_endTime' - The end time for the action.+--+-- 'invoker', 'appAssessmentSummary_invoker' - The entity that invoked the assessment.+--+-- 'message', 'appAssessmentSummary_message' - The message from the assessment run.+--+-- 'resiliencyScore', 'appAssessmentSummary_resiliencyScore' - The current resiliency score for the application.+--+-- 'startTime', 'appAssessmentSummary_startTime' - The starting time for the action.+--+-- 'assessmentArn', 'appAssessmentSummary_assessmentArn' - The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'assessmentStatus', 'appAssessmentSummary_assessmentStatus' - The current status of the assessment for the resiliency policy.+newAppAssessmentSummary ::+  -- | 'assessmentArn'+  Prelude.Text ->+  -- | 'assessmentStatus'+  AssessmentStatus ->+  AppAssessmentSummary+newAppAssessmentSummary+  pAssessmentArn_+  pAssessmentStatus_ =+    AppAssessmentSummary'+      { appArn = Prelude.Nothing,+        appVersion = Prelude.Nothing,+        assessmentName = Prelude.Nothing,+        complianceStatus = Prelude.Nothing,+        cost = Prelude.Nothing,+        endTime = Prelude.Nothing,+        invoker = Prelude.Nothing,+        message = Prelude.Nothing,+        resiliencyScore = Prelude.Nothing,+        startTime = Prelude.Nothing,+        assessmentArn = pAssessmentArn_,+        assessmentStatus = pAssessmentStatus_+      }++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+appAssessmentSummary_appArn :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Prelude.Text)+appAssessmentSummary_appArn = Lens.lens (\AppAssessmentSummary' {appArn} -> appArn) (\s@AppAssessmentSummary' {} a -> s {appArn = a} :: AppAssessmentSummary)++-- | The version of the application.+appAssessmentSummary_appVersion :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Prelude.Text)+appAssessmentSummary_appVersion = Lens.lens (\AppAssessmentSummary' {appVersion} -> appVersion) (\s@AppAssessmentSummary' {} a -> s {appVersion = a} :: AppAssessmentSummary)++-- | The name of the assessment.+appAssessmentSummary_assessmentName :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Prelude.Text)+appAssessmentSummary_assessmentName = Lens.lens (\AppAssessmentSummary' {assessmentName} -> assessmentName) (\s@AppAssessmentSummary' {} a -> s {assessmentName = a} :: AppAssessmentSummary)++-- | The current status of compliance for the resiliency policy.+appAssessmentSummary_complianceStatus :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe ComplianceStatus)+appAssessmentSummary_complianceStatus = Lens.lens (\AppAssessmentSummary' {complianceStatus} -> complianceStatus) (\s@AppAssessmentSummary' {} a -> s {complianceStatus = a} :: AppAssessmentSummary)++-- | The cost for the application.+appAssessmentSummary_cost :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Cost)+appAssessmentSummary_cost = Lens.lens (\AppAssessmentSummary' {cost} -> cost) (\s@AppAssessmentSummary' {} a -> s {cost = a} :: AppAssessmentSummary)++-- | The end time for the action.+appAssessmentSummary_endTime :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Prelude.UTCTime)+appAssessmentSummary_endTime = Lens.lens (\AppAssessmentSummary' {endTime} -> endTime) (\s@AppAssessmentSummary' {} a -> s {endTime = a} :: AppAssessmentSummary) Prelude.. Lens.mapping Data._Time++-- | The entity that invoked the assessment.+appAssessmentSummary_invoker :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe AssessmentInvoker)+appAssessmentSummary_invoker = Lens.lens (\AppAssessmentSummary' {invoker} -> invoker) (\s@AppAssessmentSummary' {} a -> s {invoker = a} :: AppAssessmentSummary)++-- | The message from the assessment run.+appAssessmentSummary_message :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Prelude.Text)+appAssessmentSummary_message = Lens.lens (\AppAssessmentSummary' {message} -> message) (\s@AppAssessmentSummary' {} a -> s {message = a} :: AppAssessmentSummary)++-- | The current resiliency score for the application.+appAssessmentSummary_resiliencyScore :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Prelude.Double)+appAssessmentSummary_resiliencyScore = Lens.lens (\AppAssessmentSummary' {resiliencyScore} -> resiliencyScore) (\s@AppAssessmentSummary' {} a -> s {resiliencyScore = a} :: AppAssessmentSummary)++-- | The starting time for the action.+appAssessmentSummary_startTime :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Prelude.UTCTime)+appAssessmentSummary_startTime = Lens.lens (\AppAssessmentSummary' {startTime} -> startTime) (\s@AppAssessmentSummary' {} a -> s {startTime = a} :: AppAssessmentSummary) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+appAssessmentSummary_assessmentArn :: Lens.Lens' AppAssessmentSummary Prelude.Text+appAssessmentSummary_assessmentArn = Lens.lens (\AppAssessmentSummary' {assessmentArn} -> assessmentArn) (\s@AppAssessmentSummary' {} a -> s {assessmentArn = a} :: AppAssessmentSummary)++-- | The current status of the assessment for the resiliency policy.+appAssessmentSummary_assessmentStatus :: Lens.Lens' AppAssessmentSummary AssessmentStatus+appAssessmentSummary_assessmentStatus = Lens.lens (\AppAssessmentSummary' {assessmentStatus} -> assessmentStatus) (\s@AppAssessmentSummary' {} a -> s {assessmentStatus = a} :: AppAssessmentSummary)++instance Data.FromJSON AppAssessmentSummary where+  parseJSON =+    Data.withObject+      "AppAssessmentSummary"+      ( \x ->+          AppAssessmentSummary'+            Prelude.<$> (x Data..:? "appArn")+            Prelude.<*> (x Data..:? "appVersion")+            Prelude.<*> (x Data..:? "assessmentName")+            Prelude.<*> (x Data..:? "complianceStatus")+            Prelude.<*> (x Data..:? "cost")+            Prelude.<*> (x Data..:? "endTime")+            Prelude.<*> (x Data..:? "invoker")+            Prelude.<*> (x Data..:? "message")+            Prelude.<*> (x Data..:? "resiliencyScore")+            Prelude.<*> (x Data..:? "startTime")+            Prelude.<*> (x Data..: "assessmentArn")+            Prelude.<*> (x Data..: "assessmentStatus")+      )++instance Prelude.Hashable AppAssessmentSummary where+  hashWithSalt _salt AppAssessmentSummary' {..} =+    _salt+      `Prelude.hashWithSalt` appArn+      `Prelude.hashWithSalt` appVersion+      `Prelude.hashWithSalt` assessmentName+      `Prelude.hashWithSalt` complianceStatus+      `Prelude.hashWithSalt` cost+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` invoker+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` resiliencyScore+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` assessmentArn+      `Prelude.hashWithSalt` assessmentStatus++instance Prelude.NFData AppAssessmentSummary where+  rnf AppAssessmentSummary' {..} =+    Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf appVersion+      `Prelude.seq` Prelude.rnf assessmentName+      `Prelude.seq` Prelude.rnf complianceStatus+      `Prelude.seq` Prelude.rnf cost+      `Prelude.seq` Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf invoker+      `Prelude.seq` Prelude.rnf message+      `Prelude.seq` Prelude.rnf resiliencyScore+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf assessmentArn+      `Prelude.seq` Prelude.rnf assessmentStatus
+ gen/Amazonka/ResilienceHub/Types/AppComplianceStatusType.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.ResilienceHub.Types.AppComplianceStatusType+-- 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.ResilienceHub.Types.AppComplianceStatusType+  ( AppComplianceStatusType+      ( ..,+        AppComplianceStatusType_ChangesDetected,+        AppComplianceStatusType_NotAssessed,+        AppComplianceStatusType_PolicyBreached,+        AppComplianceStatusType_PolicyMet+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AppComplianceStatusType = AppComplianceStatusType'+  { fromAppComplianceStatusType ::+      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 AppComplianceStatusType_ChangesDetected :: AppComplianceStatusType+pattern AppComplianceStatusType_ChangesDetected = AppComplianceStatusType' "ChangesDetected"++pattern AppComplianceStatusType_NotAssessed :: AppComplianceStatusType+pattern AppComplianceStatusType_NotAssessed = AppComplianceStatusType' "NotAssessed"++pattern AppComplianceStatusType_PolicyBreached :: AppComplianceStatusType+pattern AppComplianceStatusType_PolicyBreached = AppComplianceStatusType' "PolicyBreached"++pattern AppComplianceStatusType_PolicyMet :: AppComplianceStatusType+pattern AppComplianceStatusType_PolicyMet = AppComplianceStatusType' "PolicyMet"++{-# COMPLETE+  AppComplianceStatusType_ChangesDetected,+  AppComplianceStatusType_NotAssessed,+  AppComplianceStatusType_PolicyBreached,+  AppComplianceStatusType_PolicyMet,+  AppComplianceStatusType'+  #-}
+ gen/Amazonka/ResilienceHub/Types/AppComponent.hs view
@@ -0,0 +1,84 @@+{-# 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.ResilienceHub.Types.AppComponent+-- 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.ResilienceHub.Types.AppComponent 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++-- | Defines an application component.+--+-- /See:/ 'newAppComponent' smart constructor.+data AppComponent = AppComponent'+  { -- | The name of the application component.+    name :: Prelude.Text,+    -- | The type of application component.+    type' :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AppComponent' 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:+--+-- 'name', 'appComponent_name' - The name of the application component.+--+-- 'type'', 'appComponent_type' - The type of application component.+newAppComponent ::+  -- | 'name'+  Prelude.Text ->+  -- | 'type''+  Prelude.Text ->+  AppComponent+newAppComponent pName_ pType_ =+  AppComponent' {name = pName_, type' = pType_}++-- | The name of the application component.+appComponent_name :: Lens.Lens' AppComponent Prelude.Text+appComponent_name = Lens.lens (\AppComponent' {name} -> name) (\s@AppComponent' {} a -> s {name = a} :: AppComponent)++-- | The type of application component.+appComponent_type :: Lens.Lens' AppComponent Prelude.Text+appComponent_type = Lens.lens (\AppComponent' {type'} -> type') (\s@AppComponent' {} a -> s {type' = a} :: AppComponent)++instance Data.FromJSON AppComponent where+  parseJSON =+    Data.withObject+      "AppComponent"+      ( \x ->+          AppComponent'+            Prelude.<$> (x Data..: "name")+            Prelude.<*> (x Data..: "type")+      )++instance Prelude.Hashable AppComponent where+  hashWithSalt _salt AppComponent' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` type'++instance Prelude.NFData AppComponent where+  rnf AppComponent' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/ResilienceHub/Types/AppComponentCompliance.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.ResilienceHub.Types.AppComponentCompliance+-- 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.ResilienceHub.Types.AppComponentCompliance 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.ResilienceHub.Types.ComplianceStatus+import Amazonka.ResilienceHub.Types.Cost+import Amazonka.ResilienceHub.Types.DisruptionCompliance+import Amazonka.ResilienceHub.Types.DisruptionType+import Amazonka.ResilienceHub.Types.ResiliencyScore++-- | Defines the compliance of an application component against the+-- resiliency policy.+--+-- /See:/ 'newAppComponentCompliance' smart constructor.+data AppComponentCompliance = AppComponentCompliance'+  { -- | The name of the application component.+    appComponentName :: Prelude.Maybe Prelude.Text,+    -- | The compliance of the application component against the resiliency+    -- policy.+    compliance :: Prelude.Maybe (Prelude.HashMap DisruptionType DisruptionCompliance),+    -- | The cost for the application.+    cost :: Prelude.Maybe Cost,+    -- | The compliance message.+    message :: Prelude.Maybe Prelude.Text,+    -- | The current resiliency score for the application.+    resiliencyScore :: Prelude.Maybe ResiliencyScore,+    -- | The status of the action.+    status :: Prelude.Maybe ComplianceStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AppComponentCompliance' 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:+--+-- 'appComponentName', 'appComponentCompliance_appComponentName' - The name of the application component.+--+-- 'compliance', 'appComponentCompliance_compliance' - The compliance of the application component against the resiliency+-- policy.+--+-- 'cost', 'appComponentCompliance_cost' - The cost for the application.+--+-- 'message', 'appComponentCompliance_message' - The compliance message.+--+-- 'resiliencyScore', 'appComponentCompliance_resiliencyScore' - The current resiliency score for the application.+--+-- 'status', 'appComponentCompliance_status' - The status of the action.+newAppComponentCompliance ::+  AppComponentCompliance+newAppComponentCompliance =+  AppComponentCompliance'+    { appComponentName =+        Prelude.Nothing,+      compliance = Prelude.Nothing,+      cost = Prelude.Nothing,+      message = Prelude.Nothing,+      resiliencyScore = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The name of the application component.+appComponentCompliance_appComponentName :: Lens.Lens' AppComponentCompliance (Prelude.Maybe Prelude.Text)+appComponentCompliance_appComponentName = Lens.lens (\AppComponentCompliance' {appComponentName} -> appComponentName) (\s@AppComponentCompliance' {} a -> s {appComponentName = a} :: AppComponentCompliance)++-- | The compliance of the application component against the resiliency+-- policy.+appComponentCompliance_compliance :: Lens.Lens' AppComponentCompliance (Prelude.Maybe (Prelude.HashMap DisruptionType DisruptionCompliance))+appComponentCompliance_compliance = Lens.lens (\AppComponentCompliance' {compliance} -> compliance) (\s@AppComponentCompliance' {} a -> s {compliance = a} :: AppComponentCompliance) Prelude.. Lens.mapping Lens.coerced++-- | The cost for the application.+appComponentCompliance_cost :: Lens.Lens' AppComponentCompliance (Prelude.Maybe Cost)+appComponentCompliance_cost = Lens.lens (\AppComponentCompliance' {cost} -> cost) (\s@AppComponentCompliance' {} a -> s {cost = a} :: AppComponentCompliance)++-- | The compliance message.+appComponentCompliance_message :: Lens.Lens' AppComponentCompliance (Prelude.Maybe Prelude.Text)+appComponentCompliance_message = Lens.lens (\AppComponentCompliance' {message} -> message) (\s@AppComponentCompliance' {} a -> s {message = a} :: AppComponentCompliance)++-- | The current resiliency score for the application.+appComponentCompliance_resiliencyScore :: Lens.Lens' AppComponentCompliance (Prelude.Maybe ResiliencyScore)+appComponentCompliance_resiliencyScore = Lens.lens (\AppComponentCompliance' {resiliencyScore} -> resiliencyScore) (\s@AppComponentCompliance' {} a -> s {resiliencyScore = a} :: AppComponentCompliance)++-- | The status of the action.+appComponentCompliance_status :: Lens.Lens' AppComponentCompliance (Prelude.Maybe ComplianceStatus)+appComponentCompliance_status = Lens.lens (\AppComponentCompliance' {status} -> status) (\s@AppComponentCompliance' {} a -> s {status = a} :: AppComponentCompliance)++instance Data.FromJSON AppComponentCompliance where+  parseJSON =+    Data.withObject+      "AppComponentCompliance"+      ( \x ->+          AppComponentCompliance'+            Prelude.<$> (x Data..:? "appComponentName")+            Prelude.<*> (x Data..:? "compliance" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "cost")+            Prelude.<*> (x Data..:? "message")+            Prelude.<*> (x Data..:? "resiliencyScore")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable AppComponentCompliance where+  hashWithSalt _salt AppComponentCompliance' {..} =+    _salt+      `Prelude.hashWithSalt` appComponentName+      `Prelude.hashWithSalt` compliance+      `Prelude.hashWithSalt` cost+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` resiliencyScore+      `Prelude.hashWithSalt` status++instance Prelude.NFData AppComponentCompliance where+  rnf AppComponentCompliance' {..} =+    Prelude.rnf appComponentName+      `Prelude.seq` Prelude.rnf compliance+      `Prelude.seq` Prelude.rnf cost+      `Prelude.seq` Prelude.rnf message+      `Prelude.seq` Prelude.rnf resiliencyScore+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/ResilienceHub/Types/AppStatusType.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.ResilienceHub.Types.AppStatusType+-- 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.ResilienceHub.Types.AppStatusType+  ( AppStatusType+      ( ..,+        AppStatusType_Active,+        AppStatusType_Deleting+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AppStatusType = AppStatusType'+  { fromAppStatusType ::+      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 AppStatusType_Active :: AppStatusType+pattern AppStatusType_Active = AppStatusType' "Active"++pattern AppStatusType_Deleting :: AppStatusType+pattern AppStatusType_Deleting = AppStatusType' "Deleting"++{-# COMPLETE+  AppStatusType_Active,+  AppStatusType_Deleting,+  AppStatusType'+  #-}
+ gen/Amazonka/ResilienceHub/Types/AppSummary.hs view
@@ -0,0 +1,177 @@+{-# 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.ResilienceHub.Types.AppSummary+-- 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.ResilienceHub.Types.AppSummary 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.ResilienceHub.Types.AppAssessmentScheduleType+import Amazonka.ResilienceHub.Types.AppComplianceStatusType+import Amazonka.ResilienceHub.Types.AppStatusType++-- | Defines an application summary.+--+-- /See:/ 'newAppSummary' smart constructor.+data AppSummary = AppSummary'+  { -- | Assessment execution schedule with \'Daily\' or \'Disabled\' values.+    assessmentSchedule :: Prelude.Maybe AppAssessmentScheduleType,+    -- | The current status of compliance for the resiliency policy.+    complianceStatus :: Prelude.Maybe AppComplianceStatusType,+    -- | The optional description for an app.+    description :: Prelude.Maybe Prelude.Text,+    -- | The current resiliency score for the application.+    resiliencyScore :: Prelude.Maybe Prelude.Double,+    -- | The status of the application.+    status :: Prelude.Maybe AppStatusType,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text,+    -- | The timestamp for when the app was created.+    creationTime :: Data.POSIX,+    -- | The name of the application.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AppSummary' 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:+--+-- 'assessmentSchedule', 'appSummary_assessmentSchedule' - Assessment execution schedule with \'Daily\' or \'Disabled\' values.+--+-- 'complianceStatus', 'appSummary_complianceStatus' - The current status of compliance for the resiliency policy.+--+-- 'description', 'appSummary_description' - The optional description for an app.+--+-- 'resiliencyScore', 'appSummary_resiliencyScore' - The current resiliency score for the application.+--+-- 'status', 'appSummary_status' - The status of the application.+--+-- 'appArn', 'appSummary_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'creationTime', 'appSummary_creationTime' - The timestamp for when the app was created.+--+-- 'name', 'appSummary_name' - The name of the application.+newAppSummary ::+  -- | 'appArn'+  Prelude.Text ->+  -- | 'creationTime'+  Prelude.UTCTime ->+  -- | 'name'+  Prelude.Text ->+  AppSummary+newAppSummary pAppArn_ pCreationTime_ pName_ =+  AppSummary'+    { assessmentSchedule = Prelude.Nothing,+      complianceStatus = Prelude.Nothing,+      description = Prelude.Nothing,+      resiliencyScore = Prelude.Nothing,+      status = Prelude.Nothing,+      appArn = pAppArn_,+      creationTime = Data._Time Lens.# pCreationTime_,+      name = pName_+    }++-- | Assessment execution schedule with \'Daily\' or \'Disabled\' values.+appSummary_assessmentSchedule :: Lens.Lens' AppSummary (Prelude.Maybe AppAssessmentScheduleType)+appSummary_assessmentSchedule = Lens.lens (\AppSummary' {assessmentSchedule} -> assessmentSchedule) (\s@AppSummary' {} a -> s {assessmentSchedule = a} :: AppSummary)++-- | The current status of compliance for the resiliency policy.+appSummary_complianceStatus :: Lens.Lens' AppSummary (Prelude.Maybe AppComplianceStatusType)+appSummary_complianceStatus = Lens.lens (\AppSummary' {complianceStatus} -> complianceStatus) (\s@AppSummary' {} a -> s {complianceStatus = a} :: AppSummary)++-- | The optional description for an app.+appSummary_description :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)+appSummary_description = Lens.lens (\AppSummary' {description} -> description) (\s@AppSummary' {} a -> s {description = a} :: AppSummary)++-- | The current resiliency score for the application.+appSummary_resiliencyScore :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Double)+appSummary_resiliencyScore = Lens.lens (\AppSummary' {resiliencyScore} -> resiliencyScore) (\s@AppSummary' {} a -> s {resiliencyScore = a} :: AppSummary)++-- | The status of the application.+appSummary_status :: Lens.Lens' AppSummary (Prelude.Maybe AppStatusType)+appSummary_status = Lens.lens (\AppSummary' {status} -> status) (\s@AppSummary' {} a -> s {status = a} :: AppSummary)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+appSummary_appArn :: Lens.Lens' AppSummary Prelude.Text+appSummary_appArn = Lens.lens (\AppSummary' {appArn} -> appArn) (\s@AppSummary' {} a -> s {appArn = a} :: AppSummary)++-- | The timestamp for when the app was created.+appSummary_creationTime :: Lens.Lens' AppSummary Prelude.UTCTime+appSummary_creationTime = Lens.lens (\AppSummary' {creationTime} -> creationTime) (\s@AppSummary' {} a -> s {creationTime = a} :: AppSummary) Prelude.. Data._Time++-- | The name of the application.+appSummary_name :: Lens.Lens' AppSummary Prelude.Text+appSummary_name = Lens.lens (\AppSummary' {name} -> name) (\s@AppSummary' {} a -> s {name = a} :: AppSummary)++instance Data.FromJSON AppSummary where+  parseJSON =+    Data.withObject+      "AppSummary"+      ( \x ->+          AppSummary'+            Prelude.<$> (x Data..:? "assessmentSchedule")+            Prelude.<*> (x Data..:? "complianceStatus")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "resiliencyScore")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..: "appArn")+            Prelude.<*> (x Data..: "creationTime")+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable AppSummary where+  hashWithSalt _salt AppSummary' {..} =+    _salt+      `Prelude.hashWithSalt` assessmentSchedule+      `Prelude.hashWithSalt` complianceStatus+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` resiliencyScore+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` appArn+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` name++instance Prelude.NFData AppSummary where+  rnf AppSummary' {..} =+    Prelude.rnf assessmentSchedule+      `Prelude.seq` Prelude.rnf complianceStatus+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf resiliencyScore+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/ResilienceHub/Types/AppVersionSummary.hs view
@@ -0,0 +1,70 @@+{-# 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.ResilienceHub.Types.AppVersionSummary+-- 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.ResilienceHub.Types.AppVersionSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The version of the application.+--+-- /See:/ 'newAppVersionSummary' smart constructor.+data AppVersionSummary = AppVersionSummary'+  { -- | The version of the application.+    appVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AppVersionSummary' 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:+--+-- 'appVersion', 'appVersionSummary_appVersion' - The version of the application.+newAppVersionSummary ::+  -- | 'appVersion'+  Prelude.Text ->+  AppVersionSummary+newAppVersionSummary pAppVersion_ =+  AppVersionSummary' {appVersion = pAppVersion_}++-- | The version of the application.+appVersionSummary_appVersion :: Lens.Lens' AppVersionSummary Prelude.Text+appVersionSummary_appVersion = Lens.lens (\AppVersionSummary' {appVersion} -> appVersion) (\s@AppVersionSummary' {} a -> s {appVersion = a} :: AppVersionSummary)++instance Data.FromJSON AppVersionSummary where+  parseJSON =+    Data.withObject+      "AppVersionSummary"+      ( \x ->+          AppVersionSummary'+            Prelude.<$> (x Data..: "appVersion")+      )++instance Prelude.Hashable AppVersionSummary where+  hashWithSalt _salt AppVersionSummary' {..} =+    _salt `Prelude.hashWithSalt` appVersion++instance Prelude.NFData AppVersionSummary where+  rnf AppVersionSummary' {..} = Prelude.rnf appVersion
+ gen/Amazonka/ResilienceHub/Types/AssessmentInvoker.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.ResilienceHub.Types.AssessmentInvoker+-- 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.ResilienceHub.Types.AssessmentInvoker+  ( AssessmentInvoker+      ( ..,+        AssessmentInvoker_System,+        AssessmentInvoker_User+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AssessmentInvoker = AssessmentInvoker'+  { fromAssessmentInvoker ::+      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 AssessmentInvoker_System :: AssessmentInvoker+pattern AssessmentInvoker_System = AssessmentInvoker' "System"++pattern AssessmentInvoker_User :: AssessmentInvoker+pattern AssessmentInvoker_User = AssessmentInvoker' "User"++{-# COMPLETE+  AssessmentInvoker_System,+  AssessmentInvoker_User,+  AssessmentInvoker'+  #-}
+ gen/Amazonka/ResilienceHub/Types/AssessmentStatus.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.ResilienceHub.Types.AssessmentStatus+-- 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.ResilienceHub.Types.AssessmentStatus+  ( AssessmentStatus+      ( ..,+        AssessmentStatus_Failed,+        AssessmentStatus_InProgress,+        AssessmentStatus_Pending,+        AssessmentStatus_Success+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AssessmentStatus = AssessmentStatus'+  { fromAssessmentStatus ::+      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 AssessmentStatus_Failed :: AssessmentStatus+pattern AssessmentStatus_Failed = AssessmentStatus' "Failed"++pattern AssessmentStatus_InProgress :: AssessmentStatus+pattern AssessmentStatus_InProgress = AssessmentStatus' "InProgress"++pattern AssessmentStatus_Pending :: AssessmentStatus+pattern AssessmentStatus_Pending = AssessmentStatus' "Pending"++pattern AssessmentStatus_Success :: AssessmentStatus+pattern AssessmentStatus_Success = AssessmentStatus' "Success"++{-# COMPLETE+  AssessmentStatus_Failed,+  AssessmentStatus_InProgress,+  AssessmentStatus_Pending,+  AssessmentStatus_Success,+  AssessmentStatus'+  #-}
+ gen/Amazonka/ResilienceHub/Types/ComplianceStatus.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.ResilienceHub.Types.ComplianceStatus+-- 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.ResilienceHub.Types.ComplianceStatus+  ( ComplianceStatus+      ( ..,+        ComplianceStatus_PolicyBreached,+        ComplianceStatus_PolicyMet+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ComplianceStatus = ComplianceStatus'+  { fromComplianceStatus ::+      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 ComplianceStatus_PolicyBreached :: ComplianceStatus+pattern ComplianceStatus_PolicyBreached = ComplianceStatus' "PolicyBreached"++pattern ComplianceStatus_PolicyMet :: ComplianceStatus+pattern ComplianceStatus_PolicyMet = ComplianceStatus' "PolicyMet"++{-# COMPLETE+  ComplianceStatus_PolicyBreached,+  ComplianceStatus_PolicyMet,+  ComplianceStatus'+  #-}
+ gen/Amazonka/ResilienceHub/Types/ComponentRecommendation.hs view
@@ -0,0 +1,110 @@+{-# 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.ResilienceHub.Types.ComponentRecommendation+-- 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.ResilienceHub.Types.ComponentRecommendation 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.ResilienceHub.Types.ConfigRecommendation+import Amazonka.ResilienceHub.Types.RecommendationComplianceStatus++-- | Defines recommendations for a Resilience Hub application component,+-- returned as an object. This object contains component names,+-- configuration recommendations, and recommendation statuses.+--+-- /See:/ 'newComponentRecommendation' smart constructor.+data ComponentRecommendation = ComponentRecommendation'+  { -- | The name of the application component.+    appComponentName :: Prelude.Text,+    -- | The list of recommendations.+    configRecommendations :: [ConfigRecommendation],+    -- | The recommendation status.+    recommendationStatus :: RecommendationComplianceStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentRecommendation' 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:+--+-- 'appComponentName', 'componentRecommendation_appComponentName' - The name of the application component.+--+-- 'configRecommendations', 'componentRecommendation_configRecommendations' - The list of recommendations.+--+-- 'recommendationStatus', 'componentRecommendation_recommendationStatus' - The recommendation status.+newComponentRecommendation ::+  -- | 'appComponentName'+  Prelude.Text ->+  -- | 'recommendationStatus'+  RecommendationComplianceStatus ->+  ComponentRecommendation+newComponentRecommendation+  pAppComponentName_+  pRecommendationStatus_ =+    ComponentRecommendation'+      { appComponentName =+          pAppComponentName_,+        configRecommendations = Prelude.mempty,+        recommendationStatus = pRecommendationStatus_+      }++-- | The name of the application component.+componentRecommendation_appComponentName :: Lens.Lens' ComponentRecommendation Prelude.Text+componentRecommendation_appComponentName = Lens.lens (\ComponentRecommendation' {appComponentName} -> appComponentName) (\s@ComponentRecommendation' {} a -> s {appComponentName = a} :: ComponentRecommendation)++-- | The list of recommendations.+componentRecommendation_configRecommendations :: Lens.Lens' ComponentRecommendation [ConfigRecommendation]+componentRecommendation_configRecommendations = Lens.lens (\ComponentRecommendation' {configRecommendations} -> configRecommendations) (\s@ComponentRecommendation' {} a -> s {configRecommendations = a} :: ComponentRecommendation) Prelude.. Lens.coerced++-- | The recommendation status.+componentRecommendation_recommendationStatus :: Lens.Lens' ComponentRecommendation RecommendationComplianceStatus+componentRecommendation_recommendationStatus = Lens.lens (\ComponentRecommendation' {recommendationStatus} -> recommendationStatus) (\s@ComponentRecommendation' {} a -> s {recommendationStatus = a} :: ComponentRecommendation)++instance Data.FromJSON ComponentRecommendation where+  parseJSON =+    Data.withObject+      "ComponentRecommendation"+      ( \x ->+          ComponentRecommendation'+            Prelude.<$> (x Data..: "appComponentName")+            Prelude.<*> ( x+                            Data..:? "configRecommendations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "recommendationStatus")+      )++instance Prelude.Hashable ComponentRecommendation where+  hashWithSalt _salt ComponentRecommendation' {..} =+    _salt+      `Prelude.hashWithSalt` appComponentName+      `Prelude.hashWithSalt` configRecommendations+      `Prelude.hashWithSalt` recommendationStatus++instance Prelude.NFData ComponentRecommendation where+  rnf ComponentRecommendation' {..} =+    Prelude.rnf appComponentName+      `Prelude.seq` Prelude.rnf configRecommendations+      `Prelude.seq` Prelude.rnf recommendationStatus
+ gen/Amazonka/ResilienceHub/Types/ConfigRecommendation.hs view
@@ -0,0 +1,208 @@+{-# 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.ResilienceHub.Types.ConfigRecommendation+-- 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.ResilienceHub.Types.ConfigRecommendation 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.ResilienceHub.Types.ConfigRecommendationOptimizationType+import Amazonka.ResilienceHub.Types.Cost+import Amazonka.ResilienceHub.Types.DisruptionCompliance+import Amazonka.ResilienceHub.Types.DisruptionType+import Amazonka.ResilienceHub.Types.HaArchitecture+import Amazonka.ResilienceHub.Types.RecommendationDisruptionCompliance++-- | Defines a configuration recommendation.+--+-- /See:/ 'newConfigRecommendation' smart constructor.+data ConfigRecommendation = ConfigRecommendation'+  { -- | The application component name.+    appComponentName :: Prelude.Maybe Prelude.Text,+    -- | The current compliance against the resiliency policy before applying the+    -- configuration change.+    compliance :: Prelude.Maybe (Prelude.HashMap DisruptionType DisruptionCompliance),+    -- | The cost for the application.+    cost :: Prelude.Maybe Cost,+    -- | The optional description for an app.+    description :: Prelude.Maybe Prelude.Text,+    -- | The architecture type.+    haArchitecture :: Prelude.Maybe HaArchitecture,+    -- | The expected compliance against the resiliency policy after applying the+    -- configuration change.+    recommendationCompliance :: Prelude.Maybe (Prelude.HashMap DisruptionType RecommendationDisruptionCompliance),+    -- | List of the suggested configuration changes.+    suggestedChanges :: Prelude.Maybe [Prelude.Text],+    -- | The name of the recommendation configuration.+    name :: Prelude.Text,+    -- | The type of optimization.+    optimizationType :: ConfigRecommendationOptimizationType,+    -- | The reference identifier for the recommendation configuration.+    referenceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfigRecommendation' 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:+--+-- 'appComponentName', 'configRecommendation_appComponentName' - The application component name.+--+-- 'compliance', 'configRecommendation_compliance' - The current compliance against the resiliency policy before applying the+-- configuration change.+--+-- 'cost', 'configRecommendation_cost' - The cost for the application.+--+-- 'description', 'configRecommendation_description' - The optional description for an app.+--+-- 'haArchitecture', 'configRecommendation_haArchitecture' - The architecture type.+--+-- 'recommendationCompliance', 'configRecommendation_recommendationCompliance' - The expected compliance against the resiliency policy after applying the+-- configuration change.+--+-- 'suggestedChanges', 'configRecommendation_suggestedChanges' - List of the suggested configuration changes.+--+-- 'name', 'configRecommendation_name' - The name of the recommendation configuration.+--+-- 'optimizationType', 'configRecommendation_optimizationType' - The type of optimization.+--+-- 'referenceId', 'configRecommendation_referenceId' - The reference identifier for the recommendation configuration.+newConfigRecommendation ::+  -- | 'name'+  Prelude.Text ->+  -- | 'optimizationType'+  ConfigRecommendationOptimizationType ->+  -- | 'referenceId'+  Prelude.Text ->+  ConfigRecommendation+newConfigRecommendation+  pName_+  pOptimizationType_+  pReferenceId_ =+    ConfigRecommendation'+      { appComponentName =+          Prelude.Nothing,+        compliance = Prelude.Nothing,+        cost = Prelude.Nothing,+        description = Prelude.Nothing,+        haArchitecture = Prelude.Nothing,+        recommendationCompliance = Prelude.Nothing,+        suggestedChanges = Prelude.Nothing,+        name = pName_,+        optimizationType = pOptimizationType_,+        referenceId = pReferenceId_+      }++-- | The application component name.+configRecommendation_appComponentName :: Lens.Lens' ConfigRecommendation (Prelude.Maybe Prelude.Text)+configRecommendation_appComponentName = Lens.lens (\ConfigRecommendation' {appComponentName} -> appComponentName) (\s@ConfigRecommendation' {} a -> s {appComponentName = a} :: ConfigRecommendation)++-- | The current compliance against the resiliency policy before applying the+-- configuration change.+configRecommendation_compliance :: Lens.Lens' ConfigRecommendation (Prelude.Maybe (Prelude.HashMap DisruptionType DisruptionCompliance))+configRecommendation_compliance = Lens.lens (\ConfigRecommendation' {compliance} -> compliance) (\s@ConfigRecommendation' {} a -> s {compliance = a} :: ConfigRecommendation) Prelude.. Lens.mapping Lens.coerced++-- | The cost for the application.+configRecommendation_cost :: Lens.Lens' ConfigRecommendation (Prelude.Maybe Cost)+configRecommendation_cost = Lens.lens (\ConfigRecommendation' {cost} -> cost) (\s@ConfigRecommendation' {} a -> s {cost = a} :: ConfigRecommendation)++-- | The optional description for an app.+configRecommendation_description :: Lens.Lens' ConfigRecommendation (Prelude.Maybe Prelude.Text)+configRecommendation_description = Lens.lens (\ConfigRecommendation' {description} -> description) (\s@ConfigRecommendation' {} a -> s {description = a} :: ConfigRecommendation)++-- | The architecture type.+configRecommendation_haArchitecture :: Lens.Lens' ConfigRecommendation (Prelude.Maybe HaArchitecture)+configRecommendation_haArchitecture = Lens.lens (\ConfigRecommendation' {haArchitecture} -> haArchitecture) (\s@ConfigRecommendation' {} a -> s {haArchitecture = a} :: ConfigRecommendation)++-- | The expected compliance against the resiliency policy after applying the+-- configuration change.+configRecommendation_recommendationCompliance :: Lens.Lens' ConfigRecommendation (Prelude.Maybe (Prelude.HashMap DisruptionType RecommendationDisruptionCompliance))+configRecommendation_recommendationCompliance = Lens.lens (\ConfigRecommendation' {recommendationCompliance} -> recommendationCompliance) (\s@ConfigRecommendation' {} a -> s {recommendationCompliance = a} :: ConfigRecommendation) Prelude.. Lens.mapping Lens.coerced++-- | List of the suggested configuration changes.+configRecommendation_suggestedChanges :: Lens.Lens' ConfigRecommendation (Prelude.Maybe [Prelude.Text])+configRecommendation_suggestedChanges = Lens.lens (\ConfigRecommendation' {suggestedChanges} -> suggestedChanges) (\s@ConfigRecommendation' {} a -> s {suggestedChanges = a} :: ConfigRecommendation) Prelude.. Lens.mapping Lens.coerced++-- | The name of the recommendation configuration.+configRecommendation_name :: Lens.Lens' ConfigRecommendation Prelude.Text+configRecommendation_name = Lens.lens (\ConfigRecommendation' {name} -> name) (\s@ConfigRecommendation' {} a -> s {name = a} :: ConfigRecommendation)++-- | The type of optimization.+configRecommendation_optimizationType :: Lens.Lens' ConfigRecommendation ConfigRecommendationOptimizationType+configRecommendation_optimizationType = Lens.lens (\ConfigRecommendation' {optimizationType} -> optimizationType) (\s@ConfigRecommendation' {} a -> s {optimizationType = a} :: ConfigRecommendation)++-- | The reference identifier for the recommendation configuration.+configRecommendation_referenceId :: Lens.Lens' ConfigRecommendation Prelude.Text+configRecommendation_referenceId = Lens.lens (\ConfigRecommendation' {referenceId} -> referenceId) (\s@ConfigRecommendation' {} a -> s {referenceId = a} :: ConfigRecommendation)++instance Data.FromJSON ConfigRecommendation where+  parseJSON =+    Data.withObject+      "ConfigRecommendation"+      ( \x ->+          ConfigRecommendation'+            Prelude.<$> (x Data..:? "appComponentName")+            Prelude.<*> (x Data..:? "compliance" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "cost")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "haArchitecture")+            Prelude.<*> ( x+                            Data..:? "recommendationCompliance"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "suggestedChanges"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "name")+            Prelude.<*> (x Data..: "optimizationType")+            Prelude.<*> (x Data..: "referenceId")+      )++instance Prelude.Hashable ConfigRecommendation where+  hashWithSalt _salt ConfigRecommendation' {..} =+    _salt+      `Prelude.hashWithSalt` appComponentName+      `Prelude.hashWithSalt` compliance+      `Prelude.hashWithSalt` cost+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` haArchitecture+      `Prelude.hashWithSalt` recommendationCompliance+      `Prelude.hashWithSalt` suggestedChanges+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` optimizationType+      `Prelude.hashWithSalt` referenceId++instance Prelude.NFData ConfigRecommendation where+  rnf ConfigRecommendation' {..} =+    Prelude.rnf appComponentName+      `Prelude.seq` Prelude.rnf compliance+      `Prelude.seq` Prelude.rnf cost+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf haArchitecture+      `Prelude.seq` Prelude.rnf recommendationCompliance+      `Prelude.seq` Prelude.rnf suggestedChanges+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf optimizationType+      `Prelude.seq` Prelude.rnf referenceId
+ gen/Amazonka/ResilienceHub/Types/ConfigRecommendationOptimizationType.hs view
@@ -0,0 +1,91 @@+{-# 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.ResilienceHub.Types.ConfigRecommendationOptimizationType+-- 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.ResilienceHub.Types.ConfigRecommendationOptimizationType+  ( ConfigRecommendationOptimizationType+      ( ..,+        ConfigRecommendationOptimizationType_BestAZRecovery,+        ConfigRecommendationOptimizationType_BestAttainable,+        ConfigRecommendationOptimizationType_BestRegionRecovery,+        ConfigRecommendationOptimizationType_LeastChange,+        ConfigRecommendationOptimizationType_LeastCost,+        ConfigRecommendationOptimizationType_LeastErrors+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ConfigRecommendationOptimizationType = ConfigRecommendationOptimizationType'+  { fromConfigRecommendationOptimizationType ::+      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 ConfigRecommendationOptimizationType_BestAZRecovery :: ConfigRecommendationOptimizationType+pattern ConfigRecommendationOptimizationType_BestAZRecovery = ConfigRecommendationOptimizationType' "BestAZRecovery"++pattern ConfigRecommendationOptimizationType_BestAttainable :: ConfigRecommendationOptimizationType+pattern ConfigRecommendationOptimizationType_BestAttainable = ConfigRecommendationOptimizationType' "BestAttainable"++pattern ConfigRecommendationOptimizationType_BestRegionRecovery :: ConfigRecommendationOptimizationType+pattern ConfigRecommendationOptimizationType_BestRegionRecovery = ConfigRecommendationOptimizationType' "BestRegionRecovery"++pattern ConfigRecommendationOptimizationType_LeastChange :: ConfigRecommendationOptimizationType+pattern ConfigRecommendationOptimizationType_LeastChange = ConfigRecommendationOptimizationType' "LeastChange"++pattern ConfigRecommendationOptimizationType_LeastCost :: ConfigRecommendationOptimizationType+pattern ConfigRecommendationOptimizationType_LeastCost = ConfigRecommendationOptimizationType' "LeastCost"++pattern ConfigRecommendationOptimizationType_LeastErrors :: ConfigRecommendationOptimizationType+pattern ConfigRecommendationOptimizationType_LeastErrors = ConfigRecommendationOptimizationType' "LeastErrors"++{-# COMPLETE+  ConfigRecommendationOptimizationType_BestAZRecovery,+  ConfigRecommendationOptimizationType_BestAttainable,+  ConfigRecommendationOptimizationType_BestRegionRecovery,+  ConfigRecommendationOptimizationType_LeastChange,+  ConfigRecommendationOptimizationType_LeastCost,+  ConfigRecommendationOptimizationType_LeastErrors,+  ConfigRecommendationOptimizationType'+  #-}
+ gen/Amazonka/ResilienceHub/Types/Cost.hs view
@@ -0,0 +1,103 @@+{-# 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.ResilienceHub.Types.Cost+-- 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.ResilienceHub.Types.Cost 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.ResilienceHub.Types.CostFrequency++-- | Defines a cost object.+--+-- /See:/ 'newCost' smart constructor.+data Cost = Cost'+  { -- | The cost amount.+    amount :: Prelude.Double,+    -- | The cost currency, for example @USD@.+    currency :: Prelude.Text,+    -- | The cost frequency.+    frequency :: CostFrequency+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Cost' 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:+--+-- 'amount', 'cost_amount' - The cost amount.+--+-- 'currency', 'cost_currency' - The cost currency, for example @USD@.+--+-- 'frequency', 'cost_frequency' - The cost frequency.+newCost ::+  -- | 'amount'+  Prelude.Double ->+  -- | 'currency'+  Prelude.Text ->+  -- | 'frequency'+  CostFrequency ->+  Cost+newCost pAmount_ pCurrency_ pFrequency_ =+  Cost'+    { amount = pAmount_,+      currency = pCurrency_,+      frequency = pFrequency_+    }++-- | The cost amount.+cost_amount :: Lens.Lens' Cost Prelude.Double+cost_amount = Lens.lens (\Cost' {amount} -> amount) (\s@Cost' {} a -> s {amount = a} :: Cost)++-- | The cost currency, for example @USD@.+cost_currency :: Lens.Lens' Cost Prelude.Text+cost_currency = Lens.lens (\Cost' {currency} -> currency) (\s@Cost' {} a -> s {currency = a} :: Cost)++-- | The cost frequency.+cost_frequency :: Lens.Lens' Cost CostFrequency+cost_frequency = Lens.lens (\Cost' {frequency} -> frequency) (\s@Cost' {} a -> s {frequency = a} :: Cost)++instance Data.FromJSON Cost where+  parseJSON =+    Data.withObject+      "Cost"+      ( \x ->+          Cost'+            Prelude.<$> (x Data..: "amount")+            Prelude.<*> (x Data..: "currency")+            Prelude.<*> (x Data..: "frequency")+      )++instance Prelude.Hashable Cost where+  hashWithSalt _salt Cost' {..} =+    _salt+      `Prelude.hashWithSalt` amount+      `Prelude.hashWithSalt` currency+      `Prelude.hashWithSalt` frequency++instance Prelude.NFData Cost where+  rnf Cost' {..} =+    Prelude.rnf amount+      `Prelude.seq` Prelude.rnf currency+      `Prelude.seq` Prelude.rnf frequency
+ gen/Amazonka/ResilienceHub/Types/CostFrequency.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.ResilienceHub.Types.CostFrequency+-- 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.ResilienceHub.Types.CostFrequency+  ( CostFrequency+      ( ..,+        CostFrequency_Daily,+        CostFrequency_Hourly,+        CostFrequency_Monthly,+        CostFrequency_Yearly+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CostFrequency = CostFrequency'+  { fromCostFrequency ::+      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 CostFrequency_Daily :: CostFrequency+pattern CostFrequency_Daily = CostFrequency' "Daily"++pattern CostFrequency_Hourly :: CostFrequency+pattern CostFrequency_Hourly = CostFrequency' "Hourly"++pattern CostFrequency_Monthly :: CostFrequency+pattern CostFrequency_Monthly = CostFrequency' "Monthly"++pattern CostFrequency_Yearly :: CostFrequency+pattern CostFrequency_Yearly = CostFrequency' "Yearly"++{-# COMPLETE+  CostFrequency_Daily,+  CostFrequency_Hourly,+  CostFrequency_Monthly,+  CostFrequency_Yearly,+  CostFrequency'+  #-}
+ gen/Amazonka/ResilienceHub/Types/DataLocationConstraint.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.ResilienceHub.Types.DataLocationConstraint+-- 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.ResilienceHub.Types.DataLocationConstraint+  ( DataLocationConstraint+      ( ..,+        DataLocationConstraint_AnyLocation,+        DataLocationConstraint_SameContinent,+        DataLocationConstraint_SameCountry+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataLocationConstraint = DataLocationConstraint'+  { fromDataLocationConstraint ::+      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 DataLocationConstraint_AnyLocation :: DataLocationConstraint+pattern DataLocationConstraint_AnyLocation = DataLocationConstraint' "AnyLocation"++pattern DataLocationConstraint_SameContinent :: DataLocationConstraint+pattern DataLocationConstraint_SameContinent = DataLocationConstraint' "SameContinent"++pattern DataLocationConstraint_SameCountry :: DataLocationConstraint+pattern DataLocationConstraint_SameCountry = DataLocationConstraint' "SameCountry"++{-# COMPLETE+  DataLocationConstraint_AnyLocation,+  DataLocationConstraint_SameContinent,+  DataLocationConstraint_SameCountry,+  DataLocationConstraint'+  #-}
+ gen/Amazonka/ResilienceHub/Types/DisruptionCompliance.hs view
@@ -0,0 +1,184 @@+{-# 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.ResilienceHub.Types.DisruptionCompliance+-- 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.ResilienceHub.Types.DisruptionCompliance 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.ResilienceHub.Types.ComplianceStatus++-- | Defines the compliance against the resiliency policy for a disruption.+--+-- /See:/ 'newDisruptionCompliance' smart constructor.+data DisruptionCompliance = DisruptionCompliance'+  { -- | The Recovery Point Objective (RPO) that is achievable, in seconds.+    achievableRpoInSecs :: Prelude.Maybe Prelude.Natural,+    -- | The Recovery Time Objective (RTO) that is achievable, in seconds+    achievableRtoInSecs :: Prelude.Maybe Prelude.Natural,+    -- | The current RPO, in seconds.+    currentRpoInSecs :: Prelude.Maybe Prelude.Natural,+    -- | The current RTO, in seconds.+    currentRtoInSecs :: Prelude.Maybe Prelude.Natural,+    -- | The disruption compliance message.+    message :: Prelude.Maybe Prelude.Text,+    -- | The RPO description.+    rpoDescription :: Prelude.Maybe Prelude.Text,+    -- | The RPO reference identifier.+    rpoReferenceId :: Prelude.Maybe Prelude.Text,+    -- | The RTO description.+    rtoDescription :: Prelude.Maybe Prelude.Text,+    -- | The RTO reference identifier.+    rtoReferenceId :: Prelude.Maybe Prelude.Text,+    -- | The current status of compliance for the resiliency policy.+    complianceStatus :: ComplianceStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisruptionCompliance' 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:+--+-- 'achievableRpoInSecs', 'disruptionCompliance_achievableRpoInSecs' - The Recovery Point Objective (RPO) that is achievable, in seconds.+--+-- 'achievableRtoInSecs', 'disruptionCompliance_achievableRtoInSecs' - The Recovery Time Objective (RTO) that is achievable, in seconds+--+-- 'currentRpoInSecs', 'disruptionCompliance_currentRpoInSecs' - The current RPO, in seconds.+--+-- 'currentRtoInSecs', 'disruptionCompliance_currentRtoInSecs' - The current RTO, in seconds.+--+-- 'message', 'disruptionCompliance_message' - The disruption compliance message.+--+-- 'rpoDescription', 'disruptionCompliance_rpoDescription' - The RPO description.+--+-- 'rpoReferenceId', 'disruptionCompliance_rpoReferenceId' - The RPO reference identifier.+--+-- 'rtoDescription', 'disruptionCompliance_rtoDescription' - The RTO description.+--+-- 'rtoReferenceId', 'disruptionCompliance_rtoReferenceId' - The RTO reference identifier.+--+-- 'complianceStatus', 'disruptionCompliance_complianceStatus' - The current status of compliance for the resiliency policy.+newDisruptionCompliance ::+  -- | 'complianceStatus'+  ComplianceStatus ->+  DisruptionCompliance+newDisruptionCompliance pComplianceStatus_ =+  DisruptionCompliance'+    { achievableRpoInSecs =+        Prelude.Nothing,+      achievableRtoInSecs = Prelude.Nothing,+      currentRpoInSecs = Prelude.Nothing,+      currentRtoInSecs = Prelude.Nothing,+      message = Prelude.Nothing,+      rpoDescription = Prelude.Nothing,+      rpoReferenceId = Prelude.Nothing,+      rtoDescription = Prelude.Nothing,+      rtoReferenceId = Prelude.Nothing,+      complianceStatus = pComplianceStatus_+    }++-- | The Recovery Point Objective (RPO) that is achievable, in seconds.+disruptionCompliance_achievableRpoInSecs :: Lens.Lens' DisruptionCompliance (Prelude.Maybe Prelude.Natural)+disruptionCompliance_achievableRpoInSecs = Lens.lens (\DisruptionCompliance' {achievableRpoInSecs} -> achievableRpoInSecs) (\s@DisruptionCompliance' {} a -> s {achievableRpoInSecs = a} :: DisruptionCompliance)++-- | The Recovery Time Objective (RTO) that is achievable, in seconds+disruptionCompliance_achievableRtoInSecs :: Lens.Lens' DisruptionCompliance (Prelude.Maybe Prelude.Natural)+disruptionCompliance_achievableRtoInSecs = Lens.lens (\DisruptionCompliance' {achievableRtoInSecs} -> achievableRtoInSecs) (\s@DisruptionCompliance' {} a -> s {achievableRtoInSecs = a} :: DisruptionCompliance)++-- | The current RPO, in seconds.+disruptionCompliance_currentRpoInSecs :: Lens.Lens' DisruptionCompliance (Prelude.Maybe Prelude.Natural)+disruptionCompliance_currentRpoInSecs = Lens.lens (\DisruptionCompliance' {currentRpoInSecs} -> currentRpoInSecs) (\s@DisruptionCompliance' {} a -> s {currentRpoInSecs = a} :: DisruptionCompliance)++-- | The current RTO, in seconds.+disruptionCompliance_currentRtoInSecs :: Lens.Lens' DisruptionCompliance (Prelude.Maybe Prelude.Natural)+disruptionCompliance_currentRtoInSecs = Lens.lens (\DisruptionCompliance' {currentRtoInSecs} -> currentRtoInSecs) (\s@DisruptionCompliance' {} a -> s {currentRtoInSecs = a} :: DisruptionCompliance)++-- | The disruption compliance message.+disruptionCompliance_message :: Lens.Lens' DisruptionCompliance (Prelude.Maybe Prelude.Text)+disruptionCompliance_message = Lens.lens (\DisruptionCompliance' {message} -> message) (\s@DisruptionCompliance' {} a -> s {message = a} :: DisruptionCompliance)++-- | The RPO description.+disruptionCompliance_rpoDescription :: Lens.Lens' DisruptionCompliance (Prelude.Maybe Prelude.Text)+disruptionCompliance_rpoDescription = Lens.lens (\DisruptionCompliance' {rpoDescription} -> rpoDescription) (\s@DisruptionCompliance' {} a -> s {rpoDescription = a} :: DisruptionCompliance)++-- | The RPO reference identifier.+disruptionCompliance_rpoReferenceId :: Lens.Lens' DisruptionCompliance (Prelude.Maybe Prelude.Text)+disruptionCompliance_rpoReferenceId = Lens.lens (\DisruptionCompliance' {rpoReferenceId} -> rpoReferenceId) (\s@DisruptionCompliance' {} a -> s {rpoReferenceId = a} :: DisruptionCompliance)++-- | The RTO description.+disruptionCompliance_rtoDescription :: Lens.Lens' DisruptionCompliance (Prelude.Maybe Prelude.Text)+disruptionCompliance_rtoDescription = Lens.lens (\DisruptionCompliance' {rtoDescription} -> rtoDescription) (\s@DisruptionCompliance' {} a -> s {rtoDescription = a} :: DisruptionCompliance)++-- | The RTO reference identifier.+disruptionCompliance_rtoReferenceId :: Lens.Lens' DisruptionCompliance (Prelude.Maybe Prelude.Text)+disruptionCompliance_rtoReferenceId = Lens.lens (\DisruptionCompliance' {rtoReferenceId} -> rtoReferenceId) (\s@DisruptionCompliance' {} a -> s {rtoReferenceId = a} :: DisruptionCompliance)++-- | The current status of compliance for the resiliency policy.+disruptionCompliance_complianceStatus :: Lens.Lens' DisruptionCompliance ComplianceStatus+disruptionCompliance_complianceStatus = Lens.lens (\DisruptionCompliance' {complianceStatus} -> complianceStatus) (\s@DisruptionCompliance' {} a -> s {complianceStatus = a} :: DisruptionCompliance)++instance Data.FromJSON DisruptionCompliance where+  parseJSON =+    Data.withObject+      "DisruptionCompliance"+      ( \x ->+          DisruptionCompliance'+            Prelude.<$> (x Data..:? "achievableRpoInSecs")+            Prelude.<*> (x Data..:? "achievableRtoInSecs")+            Prelude.<*> (x Data..:? "currentRpoInSecs")+            Prelude.<*> (x Data..:? "currentRtoInSecs")+            Prelude.<*> (x Data..:? "message")+            Prelude.<*> (x Data..:? "rpoDescription")+            Prelude.<*> (x Data..:? "rpoReferenceId")+            Prelude.<*> (x Data..:? "rtoDescription")+            Prelude.<*> (x Data..:? "rtoReferenceId")+            Prelude.<*> (x Data..: "complianceStatus")+      )++instance Prelude.Hashable DisruptionCompliance where+  hashWithSalt _salt DisruptionCompliance' {..} =+    _salt+      `Prelude.hashWithSalt` achievableRpoInSecs+      `Prelude.hashWithSalt` achievableRtoInSecs+      `Prelude.hashWithSalt` currentRpoInSecs+      `Prelude.hashWithSalt` currentRtoInSecs+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` rpoDescription+      `Prelude.hashWithSalt` rpoReferenceId+      `Prelude.hashWithSalt` rtoDescription+      `Prelude.hashWithSalt` rtoReferenceId+      `Prelude.hashWithSalt` complianceStatus++instance Prelude.NFData DisruptionCompliance where+  rnf DisruptionCompliance' {..} =+    Prelude.rnf achievableRpoInSecs+      `Prelude.seq` Prelude.rnf achievableRtoInSecs+      `Prelude.seq` Prelude.rnf currentRpoInSecs+      `Prelude.seq` Prelude.rnf currentRtoInSecs+      `Prelude.seq` Prelude.rnf message+      `Prelude.seq` Prelude.rnf rpoDescription+      `Prelude.seq` Prelude.rnf rpoReferenceId+      `Prelude.seq` Prelude.rnf rtoDescription+      `Prelude.seq` Prelude.rnf rtoReferenceId+      `Prelude.seq` Prelude.rnf complianceStatus
+ gen/Amazonka/ResilienceHub/Types/DisruptionType.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.ResilienceHub.Types.DisruptionType+-- 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.ResilienceHub.Types.DisruptionType+  ( DisruptionType+      ( ..,+        DisruptionType_AZ,+        DisruptionType_Hardware,+        DisruptionType_Region,+        DisruptionType_Software+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DisruptionType = DisruptionType'+  { fromDisruptionType ::+      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 DisruptionType_AZ :: DisruptionType+pattern DisruptionType_AZ = DisruptionType' "AZ"++pattern DisruptionType_Hardware :: DisruptionType+pattern DisruptionType_Hardware = DisruptionType' "Hardware"++pattern DisruptionType_Region :: DisruptionType+pattern DisruptionType_Region = DisruptionType' "Region"++pattern DisruptionType_Software :: DisruptionType+pattern DisruptionType_Software = DisruptionType' "Software"++{-# COMPLETE+  DisruptionType_AZ,+  DisruptionType_Hardware,+  DisruptionType_Region,+  DisruptionType_Software,+  DisruptionType'+  #-}
+ gen/Amazonka/ResilienceHub/Types/EstimatedCostTier.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.ResilienceHub.Types.EstimatedCostTier+-- 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.ResilienceHub.Types.EstimatedCostTier+  ( EstimatedCostTier+      ( ..,+        EstimatedCostTier_L1,+        EstimatedCostTier_L2,+        EstimatedCostTier_L3,+        EstimatedCostTier_L4+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EstimatedCostTier = EstimatedCostTier'+  { fromEstimatedCostTier ::+      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 EstimatedCostTier_L1 :: EstimatedCostTier+pattern EstimatedCostTier_L1 = EstimatedCostTier' "L1"++pattern EstimatedCostTier_L2 :: EstimatedCostTier+pattern EstimatedCostTier_L2 = EstimatedCostTier' "L2"++pattern EstimatedCostTier_L3 :: EstimatedCostTier+pattern EstimatedCostTier_L3 = EstimatedCostTier' "L3"++pattern EstimatedCostTier_L4 :: EstimatedCostTier+pattern EstimatedCostTier_L4 = EstimatedCostTier' "L4"++{-# COMPLETE+  EstimatedCostTier_L1,+  EstimatedCostTier_L2,+  EstimatedCostTier_L3,+  EstimatedCostTier_L4,+  EstimatedCostTier'+  #-}
+ gen/Amazonka/ResilienceHub/Types/FailurePolicy.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResilienceHub.Types.FailurePolicy+-- 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.ResilienceHub.Types.FailurePolicy 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++-- | Defines a failure policy.+--+-- /See:/ 'newFailurePolicy' smart constructor.+data FailurePolicy = FailurePolicy'+  { -- | The Recovery Point Objective (RPO), in seconds.+    rpoInSecs :: Prelude.Natural,+    -- | The Recovery Time Objective (RTO), in seconds.+    rtoInSecs :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FailurePolicy' 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:+--+-- 'rpoInSecs', 'failurePolicy_rpoInSecs' - The Recovery Point Objective (RPO), in seconds.+--+-- 'rtoInSecs', 'failurePolicy_rtoInSecs' - The Recovery Time Objective (RTO), in seconds.+newFailurePolicy ::+  -- | 'rpoInSecs'+  Prelude.Natural ->+  -- | 'rtoInSecs'+  Prelude.Natural ->+  FailurePolicy+newFailurePolicy pRpoInSecs_ pRtoInSecs_ =+  FailurePolicy'+    { rpoInSecs = pRpoInSecs_,+      rtoInSecs = pRtoInSecs_+    }++-- | The Recovery Point Objective (RPO), in seconds.+failurePolicy_rpoInSecs :: Lens.Lens' FailurePolicy Prelude.Natural+failurePolicy_rpoInSecs = Lens.lens (\FailurePolicy' {rpoInSecs} -> rpoInSecs) (\s@FailurePolicy' {} a -> s {rpoInSecs = a} :: FailurePolicy)++-- | The Recovery Time Objective (RTO), in seconds.+failurePolicy_rtoInSecs :: Lens.Lens' FailurePolicy Prelude.Natural+failurePolicy_rtoInSecs = Lens.lens (\FailurePolicy' {rtoInSecs} -> rtoInSecs) (\s@FailurePolicy' {} a -> s {rtoInSecs = a} :: FailurePolicy)++instance Data.FromJSON FailurePolicy where+  parseJSON =+    Data.withObject+      "FailurePolicy"+      ( \x ->+          FailurePolicy'+            Prelude.<$> (x Data..: "rpoInSecs")+            Prelude.<*> (x Data..: "rtoInSecs")+      )++instance Prelude.Hashable FailurePolicy where+  hashWithSalt _salt FailurePolicy' {..} =+    _salt+      `Prelude.hashWithSalt` rpoInSecs+      `Prelude.hashWithSalt` rtoInSecs++instance Prelude.NFData FailurePolicy where+  rnf FailurePolicy' {..} =+    Prelude.rnf rpoInSecs+      `Prelude.seq` Prelude.rnf rtoInSecs++instance Data.ToJSON FailurePolicy where+  toJSON FailurePolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("rpoInSecs" Data..= rpoInSecs),+            Prelude.Just ("rtoInSecs" Data..= rtoInSecs)+          ]+      )
+ gen/Amazonka/ResilienceHub/Types/HaArchitecture.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.ResilienceHub.Types.HaArchitecture+-- 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.ResilienceHub.Types.HaArchitecture+  ( HaArchitecture+      ( ..,+        HaArchitecture_BackupAndRestore,+        HaArchitecture_MultiSite,+        HaArchitecture_NoRecoveryPlan,+        HaArchitecture_PilotLight,+        HaArchitecture_WarmStandby+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype HaArchitecture = HaArchitecture'+  { fromHaArchitecture ::+      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 HaArchitecture_BackupAndRestore :: HaArchitecture+pattern HaArchitecture_BackupAndRestore = HaArchitecture' "BackupAndRestore"++pattern HaArchitecture_MultiSite :: HaArchitecture+pattern HaArchitecture_MultiSite = HaArchitecture' "MultiSite"++pattern HaArchitecture_NoRecoveryPlan :: HaArchitecture+pattern HaArchitecture_NoRecoveryPlan = HaArchitecture' "NoRecoveryPlan"++pattern HaArchitecture_PilotLight :: HaArchitecture+pattern HaArchitecture_PilotLight = HaArchitecture' "PilotLight"++pattern HaArchitecture_WarmStandby :: HaArchitecture+pattern HaArchitecture_WarmStandby = HaArchitecture' "WarmStandby"++{-# COMPLETE+  HaArchitecture_BackupAndRestore,+  HaArchitecture_MultiSite,+  HaArchitecture_NoRecoveryPlan,+  HaArchitecture_PilotLight,+  HaArchitecture_WarmStandby,+  HaArchitecture'+  #-}
+ gen/Amazonka/ResilienceHub/Types/LogicalResourceId.hs view
@@ -0,0 +1,111 @@+{-# 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.ResilienceHub.Types.LogicalResourceId+-- 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.ResilienceHub.Types.LogicalResourceId 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++-- | Defines a logical resource identifier.+--+-- /See:/ 'newLogicalResourceId' smart constructor.+data LogicalResourceId = LogicalResourceId'+  { -- | The name of the CloudFormation stack this resource belongs to.+    logicalStackName :: Prelude.Maybe Prelude.Text,+    -- | The name of the resource group that this resource belongs to.+    resourceGroupName :: Prelude.Maybe Prelude.Text,+    -- | The name of the Terraform S3 state file this resource belongs to.+    terraformSourceName :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the resource.+    identifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LogicalResourceId' 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:+--+-- 'logicalStackName', 'logicalResourceId_logicalStackName' - The name of the CloudFormation stack this resource belongs to.+--+-- 'resourceGroupName', 'logicalResourceId_resourceGroupName' - The name of the resource group that this resource belongs to.+--+-- 'terraformSourceName', 'logicalResourceId_terraformSourceName' - The name of the Terraform S3 state file this resource belongs to.+--+-- 'identifier', 'logicalResourceId_identifier' - The identifier of the resource.+newLogicalResourceId ::+  -- | 'identifier'+  Prelude.Text ->+  LogicalResourceId+newLogicalResourceId pIdentifier_ =+  LogicalResourceId'+    { logicalStackName =+        Prelude.Nothing,+      resourceGroupName = Prelude.Nothing,+      terraformSourceName = Prelude.Nothing,+      identifier = pIdentifier_+    }++-- | The name of the CloudFormation stack this resource belongs to.+logicalResourceId_logicalStackName :: Lens.Lens' LogicalResourceId (Prelude.Maybe Prelude.Text)+logicalResourceId_logicalStackName = Lens.lens (\LogicalResourceId' {logicalStackName} -> logicalStackName) (\s@LogicalResourceId' {} a -> s {logicalStackName = a} :: LogicalResourceId)++-- | The name of the resource group that this resource belongs to.+logicalResourceId_resourceGroupName :: Lens.Lens' LogicalResourceId (Prelude.Maybe Prelude.Text)+logicalResourceId_resourceGroupName = Lens.lens (\LogicalResourceId' {resourceGroupName} -> resourceGroupName) (\s@LogicalResourceId' {} a -> s {resourceGroupName = a} :: LogicalResourceId)++-- | The name of the Terraform S3 state file this resource belongs to.+logicalResourceId_terraformSourceName :: Lens.Lens' LogicalResourceId (Prelude.Maybe Prelude.Text)+logicalResourceId_terraformSourceName = Lens.lens (\LogicalResourceId' {terraformSourceName} -> terraformSourceName) (\s@LogicalResourceId' {} a -> s {terraformSourceName = a} :: LogicalResourceId)++-- | The identifier of the resource.+logicalResourceId_identifier :: Lens.Lens' LogicalResourceId Prelude.Text+logicalResourceId_identifier = Lens.lens (\LogicalResourceId' {identifier} -> identifier) (\s@LogicalResourceId' {} a -> s {identifier = a} :: LogicalResourceId)++instance Data.FromJSON LogicalResourceId where+  parseJSON =+    Data.withObject+      "LogicalResourceId"+      ( \x ->+          LogicalResourceId'+            Prelude.<$> (x Data..:? "logicalStackName")+            Prelude.<*> (x Data..:? "resourceGroupName")+            Prelude.<*> (x Data..:? "terraformSourceName")+            Prelude.<*> (x Data..: "identifier")+      )++instance Prelude.Hashable LogicalResourceId where+  hashWithSalt _salt LogicalResourceId' {..} =+    _salt+      `Prelude.hashWithSalt` logicalStackName+      `Prelude.hashWithSalt` resourceGroupName+      `Prelude.hashWithSalt` terraformSourceName+      `Prelude.hashWithSalt` identifier++instance Prelude.NFData LogicalResourceId where+  rnf LogicalResourceId' {..} =+    Prelude.rnf logicalStackName+      `Prelude.seq` Prelude.rnf resourceGroupName+      `Prelude.seq` Prelude.rnf terraformSourceName+      `Prelude.seq` Prelude.rnf identifier
+ gen/Amazonka/ResilienceHub/Types/PhysicalIdentifierType.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.ResilienceHub.Types.PhysicalIdentifierType+-- 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.ResilienceHub.Types.PhysicalIdentifierType+  ( PhysicalIdentifierType+      ( ..,+        PhysicalIdentifierType_Arn,+        PhysicalIdentifierType_Native+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PhysicalIdentifierType = PhysicalIdentifierType'+  { fromPhysicalIdentifierType ::+      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 PhysicalIdentifierType_Arn :: PhysicalIdentifierType+pattern PhysicalIdentifierType_Arn = PhysicalIdentifierType' "Arn"++pattern PhysicalIdentifierType_Native :: PhysicalIdentifierType+pattern PhysicalIdentifierType_Native = PhysicalIdentifierType' "Native"++{-# COMPLETE+  PhysicalIdentifierType_Arn,+  PhysicalIdentifierType_Native,+  PhysicalIdentifierType'+  #-}
+ gen/Amazonka/ResilienceHub/Types/PhysicalResource.hs view
@@ -0,0 +1,134 @@+{-# 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.ResilienceHub.Types.PhysicalResource+-- 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.ResilienceHub.Types.PhysicalResource 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.ResilienceHub.Types.AppComponent+import Amazonka.ResilienceHub.Types.LogicalResourceId+import Amazonka.ResilienceHub.Types.PhysicalResourceId++-- | Defines a physical resource. A physical resource is a resource that+-- exists in your account. It can be identified using an Amazon Resource+-- Name (ARN) or a Resilience Hub-native identifier.+--+-- /See:/ 'newPhysicalResource' smart constructor.+data PhysicalResource = PhysicalResource'+  { -- | The application components that belong to this resource.+    appComponents :: Prelude.Maybe [AppComponent],+    -- | The name of the resource.+    resourceName :: Prelude.Maybe Prelude.Text,+    -- | The logical identifier of the resource.+    logicalResourceId :: LogicalResourceId,+    -- | The physical identifier of the resource.+    physicalResourceId :: PhysicalResourceId,+    -- | The type of resource.+    resourceType :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PhysicalResource' 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:+--+-- 'appComponents', 'physicalResource_appComponents' - The application components that belong to this resource.+--+-- 'resourceName', 'physicalResource_resourceName' - The name of the resource.+--+-- 'logicalResourceId', 'physicalResource_logicalResourceId' - The logical identifier of the resource.+--+-- 'physicalResourceId', 'physicalResource_physicalResourceId' - The physical identifier of the resource.+--+-- 'resourceType', 'physicalResource_resourceType' - The type of resource.+newPhysicalResource ::+  -- | 'logicalResourceId'+  LogicalResourceId ->+  -- | 'physicalResourceId'+  PhysicalResourceId ->+  -- | 'resourceType'+  Prelude.Text ->+  PhysicalResource+newPhysicalResource+  pLogicalResourceId_+  pPhysicalResourceId_+  pResourceType_ =+    PhysicalResource'+      { appComponents = Prelude.Nothing,+        resourceName = Prelude.Nothing,+        logicalResourceId = pLogicalResourceId_,+        physicalResourceId = pPhysicalResourceId_,+        resourceType = pResourceType_+      }++-- | The application components that belong to this resource.+physicalResource_appComponents :: Lens.Lens' PhysicalResource (Prelude.Maybe [AppComponent])+physicalResource_appComponents = Lens.lens (\PhysicalResource' {appComponents} -> appComponents) (\s@PhysicalResource' {} a -> s {appComponents = a} :: PhysicalResource) Prelude.. Lens.mapping Lens.coerced++-- | The name of the resource.+physicalResource_resourceName :: Lens.Lens' PhysicalResource (Prelude.Maybe Prelude.Text)+physicalResource_resourceName = Lens.lens (\PhysicalResource' {resourceName} -> resourceName) (\s@PhysicalResource' {} a -> s {resourceName = a} :: PhysicalResource)++-- | The logical identifier of the resource.+physicalResource_logicalResourceId :: Lens.Lens' PhysicalResource LogicalResourceId+physicalResource_logicalResourceId = Lens.lens (\PhysicalResource' {logicalResourceId} -> logicalResourceId) (\s@PhysicalResource' {} a -> s {logicalResourceId = a} :: PhysicalResource)++-- | The physical identifier of the resource.+physicalResource_physicalResourceId :: Lens.Lens' PhysicalResource PhysicalResourceId+physicalResource_physicalResourceId = Lens.lens (\PhysicalResource' {physicalResourceId} -> physicalResourceId) (\s@PhysicalResource' {} a -> s {physicalResourceId = a} :: PhysicalResource)++-- | The type of resource.+physicalResource_resourceType :: Lens.Lens' PhysicalResource Prelude.Text+physicalResource_resourceType = Lens.lens (\PhysicalResource' {resourceType} -> resourceType) (\s@PhysicalResource' {} a -> s {resourceType = a} :: PhysicalResource)++instance Data.FromJSON PhysicalResource where+  parseJSON =+    Data.withObject+      "PhysicalResource"+      ( \x ->+          PhysicalResource'+            Prelude.<$> (x Data..:? "appComponents" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "resourceName")+            Prelude.<*> (x Data..: "logicalResourceId")+            Prelude.<*> (x Data..: "physicalResourceId")+            Prelude.<*> (x Data..: "resourceType")+      )++instance Prelude.Hashable PhysicalResource where+  hashWithSalt _salt PhysicalResource' {..} =+    _salt+      `Prelude.hashWithSalt` appComponents+      `Prelude.hashWithSalt` resourceName+      `Prelude.hashWithSalt` logicalResourceId+      `Prelude.hashWithSalt` physicalResourceId+      `Prelude.hashWithSalt` resourceType++instance Prelude.NFData PhysicalResource where+  rnf PhysicalResource' {..} =+    Prelude.rnf appComponents+      `Prelude.seq` Prelude.rnf resourceName+      `Prelude.seq` Prelude.rnf logicalResourceId+      `Prelude.seq` Prelude.rnf physicalResourceId+      `Prelude.seq` Prelude.rnf resourceType
+ gen/Amazonka/ResilienceHub/Types/PhysicalResourceId.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.ResilienceHub.Types.PhysicalResourceId+-- 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.ResilienceHub.Types.PhysicalResourceId 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.ResilienceHub.Types.PhysicalIdentifierType++-- | Defines a physical resource identifier.+--+-- /See:/ 'newPhysicalResourceId' smart constructor.+data PhysicalResourceId = PhysicalResourceId'+  { -- | The Amazon Web Services account that owns the physical resource.+    awsAccountId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services Region that the physical resource is located in.+    awsRegion :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the physical resource.+    identifier :: Prelude.Text,+    -- | Specifies the type of physical resource identifier.+    --+    -- [Arn]+    --     The resource identifier is an Amazon Resource Name (ARN) .+    --+    -- [Native]+    --     The resource identifier is a Resilience Hub-native identifier.+    type' :: PhysicalIdentifierType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PhysicalResourceId' 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:+--+-- 'awsAccountId', 'physicalResourceId_awsAccountId' - The Amazon Web Services account that owns the physical resource.+--+-- 'awsRegion', 'physicalResourceId_awsRegion' - The Amazon Web Services Region that the physical resource is located in.+--+-- 'identifier', 'physicalResourceId_identifier' - The identifier of the physical resource.+--+-- 'type'', 'physicalResourceId_type' - Specifies the type of physical resource identifier.+--+-- [Arn]+--     The resource identifier is an Amazon Resource Name (ARN) .+--+-- [Native]+--     The resource identifier is a Resilience Hub-native identifier.+newPhysicalResourceId ::+  -- | 'identifier'+  Prelude.Text ->+  -- | 'type''+  PhysicalIdentifierType ->+  PhysicalResourceId+newPhysicalResourceId pIdentifier_ pType_ =+  PhysicalResourceId'+    { awsAccountId = Prelude.Nothing,+      awsRegion = Prelude.Nothing,+      identifier = pIdentifier_,+      type' = pType_+    }++-- | The Amazon Web Services account that owns the physical resource.+physicalResourceId_awsAccountId :: Lens.Lens' PhysicalResourceId (Prelude.Maybe Prelude.Text)+physicalResourceId_awsAccountId = Lens.lens (\PhysicalResourceId' {awsAccountId} -> awsAccountId) (\s@PhysicalResourceId' {} a -> s {awsAccountId = a} :: PhysicalResourceId)++-- | The Amazon Web Services Region that the physical resource is located in.+physicalResourceId_awsRegion :: Lens.Lens' PhysicalResourceId (Prelude.Maybe Prelude.Text)+physicalResourceId_awsRegion = Lens.lens (\PhysicalResourceId' {awsRegion} -> awsRegion) (\s@PhysicalResourceId' {} a -> s {awsRegion = a} :: PhysicalResourceId)++-- | The identifier of the physical resource.+physicalResourceId_identifier :: Lens.Lens' PhysicalResourceId Prelude.Text+physicalResourceId_identifier = Lens.lens (\PhysicalResourceId' {identifier} -> identifier) (\s@PhysicalResourceId' {} a -> s {identifier = a} :: PhysicalResourceId)++-- | Specifies the type of physical resource identifier.+--+-- [Arn]+--     The resource identifier is an Amazon Resource Name (ARN) .+--+-- [Native]+--     The resource identifier is a Resilience Hub-native identifier.+physicalResourceId_type :: Lens.Lens' PhysicalResourceId PhysicalIdentifierType+physicalResourceId_type = Lens.lens (\PhysicalResourceId' {type'} -> type') (\s@PhysicalResourceId' {} a -> s {type' = a} :: PhysicalResourceId)++instance Data.FromJSON PhysicalResourceId where+  parseJSON =+    Data.withObject+      "PhysicalResourceId"+      ( \x ->+          PhysicalResourceId'+            Prelude.<$> (x Data..:? "awsAccountId")+            Prelude.<*> (x Data..:? "awsRegion")+            Prelude.<*> (x Data..: "identifier")+            Prelude.<*> (x Data..: "type")+      )++instance Prelude.Hashable PhysicalResourceId where+  hashWithSalt _salt PhysicalResourceId' {..} =+    _salt+      `Prelude.hashWithSalt` awsAccountId+      `Prelude.hashWithSalt` awsRegion+      `Prelude.hashWithSalt` identifier+      `Prelude.hashWithSalt` type'++instance Prelude.NFData PhysicalResourceId where+  rnf PhysicalResourceId' {..} =+    Prelude.rnf awsAccountId+      `Prelude.seq` Prelude.rnf awsRegion+      `Prelude.seq` Prelude.rnf identifier+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON PhysicalResourceId where+  toJSON PhysicalResourceId' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("awsAccountId" Data..=) Prelude.<$> awsAccountId,+            ("awsRegion" Data..=) Prelude.<$> awsRegion,+            Prelude.Just ("identifier" Data..= identifier),+            Prelude.Just ("type" Data..= type')+          ]+      )
+ gen/Amazonka/ResilienceHub/Types/RecommendationComplianceStatus.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.ResilienceHub.Types.RecommendationComplianceStatus+-- 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.ResilienceHub.Types.RecommendationComplianceStatus+  ( RecommendationComplianceStatus+      ( ..,+        RecommendationComplianceStatus_BreachedCanMeet,+        RecommendationComplianceStatus_BreachedUnattainable,+        RecommendationComplianceStatus_MetCanImprove+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RecommendationComplianceStatus = RecommendationComplianceStatus'+  { fromRecommendationComplianceStatus ::+      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 RecommendationComplianceStatus_BreachedCanMeet :: RecommendationComplianceStatus+pattern RecommendationComplianceStatus_BreachedCanMeet = RecommendationComplianceStatus' "BreachedCanMeet"++pattern RecommendationComplianceStatus_BreachedUnattainable :: RecommendationComplianceStatus+pattern RecommendationComplianceStatus_BreachedUnattainable = RecommendationComplianceStatus' "BreachedUnattainable"++pattern RecommendationComplianceStatus_MetCanImprove :: RecommendationComplianceStatus+pattern RecommendationComplianceStatus_MetCanImprove = RecommendationComplianceStatus' "MetCanImprove"++{-# COMPLETE+  RecommendationComplianceStatus_BreachedCanMeet,+  RecommendationComplianceStatus_BreachedUnattainable,+  RecommendationComplianceStatus_MetCanImprove,+  RecommendationComplianceStatus'+  #-}
+ gen/Amazonka/ResilienceHub/Types/RecommendationDisruptionCompliance.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResilienceHub.Types.RecommendationDisruptionCompliance+-- 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.ResilienceHub.Types.RecommendationDisruptionCompliance 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.ResilienceHub.Types.ComplianceStatus++-- | Defines a disruption compliance recommendation.+--+-- /See:/ 'newRecommendationDisruptionCompliance' smart constructor.+data RecommendationDisruptionCompliance = RecommendationDisruptionCompliance'+  { -- | The expected Recovery Point Objective (RPO) description after applying+    -- the recommended configuration change.+    expectedRpoDescription :: Prelude.Maybe Prelude.Text,+    -- | The expected RPO after applying the recommended configuration change.+    expectedRpoInSecs :: Prelude.Maybe Prelude.Natural,+    -- | The expected Recovery Time Objective (RTO) description after applying+    -- the recommended configuration change.+    expectedRtoDescription :: Prelude.Maybe Prelude.Text,+    -- | The expected RTO after applying the recommended configuration change.+    expectedRtoInSecs :: Prelude.Maybe Prelude.Natural,+    -- | The expected compliance status after applying the recommended+    -- configuration change.+    expectedComplianceStatus :: ComplianceStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommendationDisruptionCompliance' 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:+--+-- 'expectedRpoDescription', 'recommendationDisruptionCompliance_expectedRpoDescription' - The expected Recovery Point Objective (RPO) description after applying+-- the recommended configuration change.+--+-- 'expectedRpoInSecs', 'recommendationDisruptionCompliance_expectedRpoInSecs' - The expected RPO after applying the recommended configuration change.+--+-- 'expectedRtoDescription', 'recommendationDisruptionCompliance_expectedRtoDescription' - The expected Recovery Time Objective (RTO) description after applying+-- the recommended configuration change.+--+-- 'expectedRtoInSecs', 'recommendationDisruptionCompliance_expectedRtoInSecs' - The expected RTO after applying the recommended configuration change.+--+-- 'expectedComplianceStatus', 'recommendationDisruptionCompliance_expectedComplianceStatus' - The expected compliance status after applying the recommended+-- configuration change.+newRecommendationDisruptionCompliance ::+  -- | 'expectedComplianceStatus'+  ComplianceStatus ->+  RecommendationDisruptionCompliance+newRecommendationDisruptionCompliance+  pExpectedComplianceStatus_ =+    RecommendationDisruptionCompliance'+      { expectedRpoDescription =+          Prelude.Nothing,+        expectedRpoInSecs = Prelude.Nothing,+        expectedRtoDescription =+          Prelude.Nothing,+        expectedRtoInSecs = Prelude.Nothing,+        expectedComplianceStatus =+          pExpectedComplianceStatus_+      }++-- | The expected Recovery Point Objective (RPO) description after applying+-- the recommended configuration change.+recommendationDisruptionCompliance_expectedRpoDescription :: Lens.Lens' RecommendationDisruptionCompliance (Prelude.Maybe Prelude.Text)+recommendationDisruptionCompliance_expectedRpoDescription = Lens.lens (\RecommendationDisruptionCompliance' {expectedRpoDescription} -> expectedRpoDescription) (\s@RecommendationDisruptionCompliance' {} a -> s {expectedRpoDescription = a} :: RecommendationDisruptionCompliance)++-- | The expected RPO after applying the recommended configuration change.+recommendationDisruptionCompliance_expectedRpoInSecs :: Lens.Lens' RecommendationDisruptionCompliance (Prelude.Maybe Prelude.Natural)+recommendationDisruptionCompliance_expectedRpoInSecs = Lens.lens (\RecommendationDisruptionCompliance' {expectedRpoInSecs} -> expectedRpoInSecs) (\s@RecommendationDisruptionCompliance' {} a -> s {expectedRpoInSecs = a} :: RecommendationDisruptionCompliance)++-- | The expected Recovery Time Objective (RTO) description after applying+-- the recommended configuration change.+recommendationDisruptionCompliance_expectedRtoDescription :: Lens.Lens' RecommendationDisruptionCompliance (Prelude.Maybe Prelude.Text)+recommendationDisruptionCompliance_expectedRtoDescription = Lens.lens (\RecommendationDisruptionCompliance' {expectedRtoDescription} -> expectedRtoDescription) (\s@RecommendationDisruptionCompliance' {} a -> s {expectedRtoDescription = a} :: RecommendationDisruptionCompliance)++-- | The expected RTO after applying the recommended configuration change.+recommendationDisruptionCompliance_expectedRtoInSecs :: Lens.Lens' RecommendationDisruptionCompliance (Prelude.Maybe Prelude.Natural)+recommendationDisruptionCompliance_expectedRtoInSecs = Lens.lens (\RecommendationDisruptionCompliance' {expectedRtoInSecs} -> expectedRtoInSecs) (\s@RecommendationDisruptionCompliance' {} a -> s {expectedRtoInSecs = a} :: RecommendationDisruptionCompliance)++-- | The expected compliance status after applying the recommended+-- configuration change.+recommendationDisruptionCompliance_expectedComplianceStatus :: Lens.Lens' RecommendationDisruptionCompliance ComplianceStatus+recommendationDisruptionCompliance_expectedComplianceStatus = Lens.lens (\RecommendationDisruptionCompliance' {expectedComplianceStatus} -> expectedComplianceStatus) (\s@RecommendationDisruptionCompliance' {} a -> s {expectedComplianceStatus = a} :: RecommendationDisruptionCompliance)++instance+  Data.FromJSON+    RecommendationDisruptionCompliance+  where+  parseJSON =+    Data.withObject+      "RecommendationDisruptionCompliance"+      ( \x ->+          RecommendationDisruptionCompliance'+            Prelude.<$> (x Data..:? "expectedRpoDescription")+            Prelude.<*> (x Data..:? "expectedRpoInSecs")+            Prelude.<*> (x Data..:? "expectedRtoDescription")+            Prelude.<*> (x Data..:? "expectedRtoInSecs")+            Prelude.<*> (x Data..: "expectedComplianceStatus")+      )++instance+  Prelude.Hashable+    RecommendationDisruptionCompliance+  where+  hashWithSalt+    _salt+    RecommendationDisruptionCompliance' {..} =+      _salt+        `Prelude.hashWithSalt` expectedRpoDescription+        `Prelude.hashWithSalt` expectedRpoInSecs+        `Prelude.hashWithSalt` expectedRtoDescription+        `Prelude.hashWithSalt` expectedRtoInSecs+        `Prelude.hashWithSalt` expectedComplianceStatus++instance+  Prelude.NFData+    RecommendationDisruptionCompliance+  where+  rnf RecommendationDisruptionCompliance' {..} =+    Prelude.rnf expectedRpoDescription+      `Prelude.seq` Prelude.rnf expectedRpoInSecs+      `Prelude.seq` Prelude.rnf expectedRtoDescription+      `Prelude.seq` Prelude.rnf expectedRtoInSecs+      `Prelude.seq` Prelude.rnf expectedComplianceStatus
+ gen/Amazonka/ResilienceHub/Types/RecommendationItem.hs view
@@ -0,0 +1,109 @@+{-# 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.ResilienceHub.Types.RecommendationItem+-- 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.ResilienceHub.Types.RecommendationItem 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++-- | Defines a recommendation.+--+-- /See:/ 'newRecommendationItem' smart constructor.+data RecommendationItem = RecommendationItem'+  { -- | Specifies if the recommendation has already been implemented.+    alreadyImplemented :: Prelude.Maybe Prelude.Bool,+    -- | The resource identifier.+    resourceId :: Prelude.Maybe Prelude.Text,+    -- | The target account identifier.+    targetAccountId :: Prelude.Maybe Prelude.Text,+    -- | The target region.+    targetRegion :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommendationItem' 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:+--+-- 'alreadyImplemented', 'recommendationItem_alreadyImplemented' - Specifies if the recommendation has already been implemented.+--+-- 'resourceId', 'recommendationItem_resourceId' - The resource identifier.+--+-- 'targetAccountId', 'recommendationItem_targetAccountId' - The target account identifier.+--+-- 'targetRegion', 'recommendationItem_targetRegion' - The target region.+newRecommendationItem ::+  RecommendationItem+newRecommendationItem =+  RecommendationItem'+    { alreadyImplemented =+        Prelude.Nothing,+      resourceId = Prelude.Nothing,+      targetAccountId = Prelude.Nothing,+      targetRegion = Prelude.Nothing+    }++-- | Specifies if the recommendation has already been implemented.+recommendationItem_alreadyImplemented :: Lens.Lens' RecommendationItem (Prelude.Maybe Prelude.Bool)+recommendationItem_alreadyImplemented = Lens.lens (\RecommendationItem' {alreadyImplemented} -> alreadyImplemented) (\s@RecommendationItem' {} a -> s {alreadyImplemented = a} :: RecommendationItem)++-- | The resource identifier.+recommendationItem_resourceId :: Lens.Lens' RecommendationItem (Prelude.Maybe Prelude.Text)+recommendationItem_resourceId = Lens.lens (\RecommendationItem' {resourceId} -> resourceId) (\s@RecommendationItem' {} a -> s {resourceId = a} :: RecommendationItem)++-- | The target account identifier.+recommendationItem_targetAccountId :: Lens.Lens' RecommendationItem (Prelude.Maybe Prelude.Text)+recommendationItem_targetAccountId = Lens.lens (\RecommendationItem' {targetAccountId} -> targetAccountId) (\s@RecommendationItem' {} a -> s {targetAccountId = a} :: RecommendationItem)++-- | The target region.+recommendationItem_targetRegion :: Lens.Lens' RecommendationItem (Prelude.Maybe Prelude.Text)+recommendationItem_targetRegion = Lens.lens (\RecommendationItem' {targetRegion} -> targetRegion) (\s@RecommendationItem' {} a -> s {targetRegion = a} :: RecommendationItem)++instance Data.FromJSON RecommendationItem where+  parseJSON =+    Data.withObject+      "RecommendationItem"+      ( \x ->+          RecommendationItem'+            Prelude.<$> (x Data..:? "alreadyImplemented")+            Prelude.<*> (x Data..:? "resourceId")+            Prelude.<*> (x Data..:? "targetAccountId")+            Prelude.<*> (x Data..:? "targetRegion")+      )++instance Prelude.Hashable RecommendationItem where+  hashWithSalt _salt RecommendationItem' {..} =+    _salt+      `Prelude.hashWithSalt` alreadyImplemented+      `Prelude.hashWithSalt` resourceId+      `Prelude.hashWithSalt` targetAccountId+      `Prelude.hashWithSalt` targetRegion++instance Prelude.NFData RecommendationItem where+  rnf RecommendationItem' {..} =+    Prelude.rnf alreadyImplemented+      `Prelude.seq` Prelude.rnf resourceId+      `Prelude.seq` Prelude.rnf targetAccountId+      `Prelude.seq` Prelude.rnf targetRegion
+ gen/Amazonka/ResilienceHub/Types/RecommendationTemplate.hs view
@@ -0,0 +1,331 @@+{-# 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.ResilienceHub.Types.RecommendationTemplate+-- 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.ResilienceHub.Types.RecommendationTemplate 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.ResilienceHub.Types.RecommendationTemplateStatus+import Amazonka.ResilienceHub.Types.RenderRecommendationType+import Amazonka.ResilienceHub.Types.S3Location+import Amazonka.ResilienceHub.Types.TemplateFormat++-- | Defines a recommendation template created with the+-- CreateRecommendationTemplate action.+--+-- /See:/ 'newRecommendationTemplate' smart constructor.+data RecommendationTemplate = RecommendationTemplate'+  { -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Maybe Prelude.Text,+    -- | The end time for the action.+    endTime :: Prelude.Maybe Data.POSIX,+    -- | The message for the recommendation template.+    message :: Prelude.Maybe Prelude.Text,+    -- | Indicates if replacements are needed.+    needsReplacements :: Prelude.Maybe Prelude.Bool,+    -- | Identifiers for the recommendations used in the recommendation template.+    recommendationIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The start time for the action.+    startTime :: Prelude.Maybe Data.POSIX,+    -- | The tags assigned to the resource. A tag is a label that you assign to+    -- an Amazon Web Services resource. Each tag consists of a key\/value pair.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The file location of the template.+    templatesLocation :: Prelude.Maybe S3Location,+    -- | The Amazon Resource Name (ARN) of the assessment. The format for this+    -- ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    assessmentArn :: Prelude.Text,+    -- | The format of the recommendation template.+    --+    -- [CfnJson]+    --     The template is CloudFormation JSON.+    --+    -- [CfnYaml]+    --     The template is CloudFormation YAML.+    format :: TemplateFormat,+    -- | The name for the recommendation template.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) for the recommendation template.+    recommendationTemplateArn :: Prelude.Text,+    -- | An array of strings that specify the recommendation template type or+    -- types.+    --+    -- [Alarm]+    --     The template is an AlarmRecommendation template.+    --+    -- [Sop]+    --     The template is a SopRecommendation template.+    --+    -- [Test]+    --     The template is a TestRecommendation template.+    recommendationTypes :: Prelude.NonEmpty RenderRecommendationType,+    -- | The status of the action.+    status :: RecommendationTemplateStatus+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommendationTemplate' 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:+--+-- 'appArn', 'recommendationTemplate_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'endTime', 'recommendationTemplate_endTime' - The end time for the action.+--+-- 'message', 'recommendationTemplate_message' - The message for the recommendation template.+--+-- 'needsReplacements', 'recommendationTemplate_needsReplacements' - Indicates if replacements are needed.+--+-- 'recommendationIds', 'recommendationTemplate_recommendationIds' - Identifiers for the recommendations used in the recommendation template.+--+-- 'startTime', 'recommendationTemplate_startTime' - The start time for the action.+--+-- 'tags', 'recommendationTemplate_tags' - The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+--+-- 'templatesLocation', 'recommendationTemplate_templatesLocation' - The file location of the template.+--+-- 'assessmentArn', 'recommendationTemplate_assessmentArn' - The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'format', 'recommendationTemplate_format' - The format of the recommendation template.+--+-- [CfnJson]+--     The template is CloudFormation JSON.+--+-- [CfnYaml]+--     The template is CloudFormation YAML.+--+-- 'name', 'recommendationTemplate_name' - The name for the recommendation template.+--+-- 'recommendationTemplateArn', 'recommendationTemplate_recommendationTemplateArn' - The Amazon Resource Name (ARN) for the recommendation template.+--+-- 'recommendationTypes', 'recommendationTemplate_recommendationTypes' - An array of strings that specify the recommendation template type or+-- types.+--+-- [Alarm]+--     The template is an AlarmRecommendation template.+--+-- [Sop]+--     The template is a SopRecommendation template.+--+-- [Test]+--     The template is a TestRecommendation template.+--+-- 'status', 'recommendationTemplate_status' - The status of the action.+newRecommendationTemplate ::+  -- | 'assessmentArn'+  Prelude.Text ->+  -- | 'format'+  TemplateFormat ->+  -- | 'name'+  Prelude.Text ->+  -- | 'recommendationTemplateArn'+  Prelude.Text ->+  -- | 'recommendationTypes'+  Prelude.NonEmpty RenderRecommendationType ->+  -- | 'status'+  RecommendationTemplateStatus ->+  RecommendationTemplate+newRecommendationTemplate+  pAssessmentArn_+  pFormat_+  pName_+  pRecommendationTemplateArn_+  pRecommendationTypes_+  pStatus_ =+    RecommendationTemplate'+      { appArn = Prelude.Nothing,+        endTime = Prelude.Nothing,+        message = Prelude.Nothing,+        needsReplacements = Prelude.Nothing,+        recommendationIds = Prelude.Nothing,+        startTime = Prelude.Nothing,+        tags = Prelude.Nothing,+        templatesLocation = Prelude.Nothing,+        assessmentArn = pAssessmentArn_,+        format = pFormat_,+        name = pName_,+        recommendationTemplateArn =+          pRecommendationTemplateArn_,+        recommendationTypes =+          Lens.coerced Lens.# pRecommendationTypes_,+        status = pStatus_+      }++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+recommendationTemplate_appArn :: Lens.Lens' RecommendationTemplate (Prelude.Maybe Prelude.Text)+recommendationTemplate_appArn = Lens.lens (\RecommendationTemplate' {appArn} -> appArn) (\s@RecommendationTemplate' {} a -> s {appArn = a} :: RecommendationTemplate)++-- | The end time for the action.+recommendationTemplate_endTime :: Lens.Lens' RecommendationTemplate (Prelude.Maybe Prelude.UTCTime)+recommendationTemplate_endTime = Lens.lens (\RecommendationTemplate' {endTime} -> endTime) (\s@RecommendationTemplate' {} a -> s {endTime = a} :: RecommendationTemplate) Prelude.. Lens.mapping Data._Time++-- | The message for the recommendation template.+recommendationTemplate_message :: Lens.Lens' RecommendationTemplate (Prelude.Maybe Prelude.Text)+recommendationTemplate_message = Lens.lens (\RecommendationTemplate' {message} -> message) (\s@RecommendationTemplate' {} a -> s {message = a} :: RecommendationTemplate)++-- | Indicates if replacements are needed.+recommendationTemplate_needsReplacements :: Lens.Lens' RecommendationTemplate (Prelude.Maybe Prelude.Bool)+recommendationTemplate_needsReplacements = Lens.lens (\RecommendationTemplate' {needsReplacements} -> needsReplacements) (\s@RecommendationTemplate' {} a -> s {needsReplacements = a} :: RecommendationTemplate)++-- | Identifiers for the recommendations used in the recommendation template.+recommendationTemplate_recommendationIds :: Lens.Lens' RecommendationTemplate (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+recommendationTemplate_recommendationIds = Lens.lens (\RecommendationTemplate' {recommendationIds} -> recommendationIds) (\s@RecommendationTemplate' {} a -> s {recommendationIds = a} :: RecommendationTemplate) Prelude.. Lens.mapping Lens.coerced++-- | The start time for the action.+recommendationTemplate_startTime :: Lens.Lens' RecommendationTemplate (Prelude.Maybe Prelude.UTCTime)+recommendationTemplate_startTime = Lens.lens (\RecommendationTemplate' {startTime} -> startTime) (\s@RecommendationTemplate' {} a -> s {startTime = a} :: RecommendationTemplate) Prelude.. Lens.mapping Data._Time++-- | The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+recommendationTemplate_tags :: Lens.Lens' RecommendationTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+recommendationTemplate_tags = Lens.lens (\RecommendationTemplate' {tags} -> tags) (\s@RecommendationTemplate' {} a -> s {tags = a} :: RecommendationTemplate) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The file location of the template.+recommendationTemplate_templatesLocation :: Lens.Lens' RecommendationTemplate (Prelude.Maybe S3Location)+recommendationTemplate_templatesLocation = Lens.lens (\RecommendationTemplate' {templatesLocation} -> templatesLocation) (\s@RecommendationTemplate' {} a -> s {templatesLocation = a} :: RecommendationTemplate)++-- | The Amazon Resource Name (ARN) of the assessment. The format for this+-- ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+recommendationTemplate_assessmentArn :: Lens.Lens' RecommendationTemplate Prelude.Text+recommendationTemplate_assessmentArn = Lens.lens (\RecommendationTemplate' {assessmentArn} -> assessmentArn) (\s@RecommendationTemplate' {} a -> s {assessmentArn = a} :: RecommendationTemplate)++-- | The format of the recommendation template.+--+-- [CfnJson]+--     The template is CloudFormation JSON.+--+-- [CfnYaml]+--     The template is CloudFormation YAML.+recommendationTemplate_format :: Lens.Lens' RecommendationTemplate TemplateFormat+recommendationTemplate_format = Lens.lens (\RecommendationTemplate' {format} -> format) (\s@RecommendationTemplate' {} a -> s {format = a} :: RecommendationTemplate)++-- | The name for the recommendation template.+recommendationTemplate_name :: Lens.Lens' RecommendationTemplate Prelude.Text+recommendationTemplate_name = Lens.lens (\RecommendationTemplate' {name} -> name) (\s@RecommendationTemplate' {} a -> s {name = a} :: RecommendationTemplate)++-- | The Amazon Resource Name (ARN) for the recommendation template.+recommendationTemplate_recommendationTemplateArn :: Lens.Lens' RecommendationTemplate Prelude.Text+recommendationTemplate_recommendationTemplateArn = Lens.lens (\RecommendationTemplate' {recommendationTemplateArn} -> recommendationTemplateArn) (\s@RecommendationTemplate' {} a -> s {recommendationTemplateArn = a} :: RecommendationTemplate)++-- | An array of strings that specify the recommendation template type or+-- types.+--+-- [Alarm]+--     The template is an AlarmRecommendation template.+--+-- [Sop]+--     The template is a SopRecommendation template.+--+-- [Test]+--     The template is a TestRecommendation template.+recommendationTemplate_recommendationTypes :: Lens.Lens' RecommendationTemplate (Prelude.NonEmpty RenderRecommendationType)+recommendationTemplate_recommendationTypes = Lens.lens (\RecommendationTemplate' {recommendationTypes} -> recommendationTypes) (\s@RecommendationTemplate' {} a -> s {recommendationTypes = a} :: RecommendationTemplate) Prelude.. Lens.coerced++-- | The status of the action.+recommendationTemplate_status :: Lens.Lens' RecommendationTemplate RecommendationTemplateStatus+recommendationTemplate_status = Lens.lens (\RecommendationTemplate' {status} -> status) (\s@RecommendationTemplate' {} a -> s {status = a} :: RecommendationTemplate)++instance Data.FromJSON RecommendationTemplate where+  parseJSON =+    Data.withObject+      "RecommendationTemplate"+      ( \x ->+          RecommendationTemplate'+            Prelude.<$> (x Data..:? "appArn")+            Prelude.<*> (x Data..:? "endTime")+            Prelude.<*> (x Data..:? "message")+            Prelude.<*> (x Data..:? "needsReplacements")+            Prelude.<*> (x Data..:? "recommendationIds")+            Prelude.<*> (x Data..:? "startTime")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "templatesLocation")+            Prelude.<*> (x Data..: "assessmentArn")+            Prelude.<*> (x Data..: "format")+            Prelude.<*> (x Data..: "name")+            Prelude.<*> (x Data..: "recommendationTemplateArn")+            Prelude.<*> (x Data..: "recommendationTypes")+            Prelude.<*> (x Data..: "status")+      )++instance Prelude.Hashable RecommendationTemplate where+  hashWithSalt _salt RecommendationTemplate' {..} =+    _salt+      `Prelude.hashWithSalt` appArn+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` needsReplacements+      `Prelude.hashWithSalt` recommendationIds+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` templatesLocation+      `Prelude.hashWithSalt` assessmentArn+      `Prelude.hashWithSalt` format+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` recommendationTemplateArn+      `Prelude.hashWithSalt` recommendationTypes+      `Prelude.hashWithSalt` status++instance Prelude.NFData RecommendationTemplate where+  rnf RecommendationTemplate' {..} =+    Prelude.rnf appArn+      `Prelude.seq` Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf message+      `Prelude.seq` Prelude.rnf needsReplacements+      `Prelude.seq` Prelude.rnf recommendationIds+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf templatesLocation+      `Prelude.seq` Prelude.rnf assessmentArn+      `Prelude.seq` Prelude.rnf format+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf recommendationTemplateArn+      `Prelude.seq` Prelude.rnf recommendationTypes+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/ResilienceHub/Types/RecommendationTemplateStatus.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.ResilienceHub.Types.RecommendationTemplateStatus+-- 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.ResilienceHub.Types.RecommendationTemplateStatus+  ( RecommendationTemplateStatus+      ( ..,+        RecommendationTemplateStatus_Failed,+        RecommendationTemplateStatus_InProgress,+        RecommendationTemplateStatus_Pending,+        RecommendationTemplateStatus_Success+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RecommendationTemplateStatus = RecommendationTemplateStatus'+  { fromRecommendationTemplateStatus ::+      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 RecommendationTemplateStatus_Failed :: RecommendationTemplateStatus+pattern RecommendationTemplateStatus_Failed = RecommendationTemplateStatus' "Failed"++pattern RecommendationTemplateStatus_InProgress :: RecommendationTemplateStatus+pattern RecommendationTemplateStatus_InProgress = RecommendationTemplateStatus' "InProgress"++pattern RecommendationTemplateStatus_Pending :: RecommendationTemplateStatus+pattern RecommendationTemplateStatus_Pending = RecommendationTemplateStatus' "Pending"++pattern RecommendationTemplateStatus_Success :: RecommendationTemplateStatus+pattern RecommendationTemplateStatus_Success = RecommendationTemplateStatus' "Success"++{-# COMPLETE+  RecommendationTemplateStatus_Failed,+  RecommendationTemplateStatus_InProgress,+  RecommendationTemplateStatus_Pending,+  RecommendationTemplateStatus_Success,+  RecommendationTemplateStatus'+  #-}
+ gen/Amazonka/ResilienceHub/Types/RenderRecommendationType.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.ResilienceHub.Types.RenderRecommendationType+-- 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.ResilienceHub.Types.RenderRecommendationType+  ( RenderRecommendationType+      ( ..,+        RenderRecommendationType_Alarm,+        RenderRecommendationType_Sop,+        RenderRecommendationType_Test+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RenderRecommendationType = RenderRecommendationType'+  { fromRenderRecommendationType ::+      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 RenderRecommendationType_Alarm :: RenderRecommendationType+pattern RenderRecommendationType_Alarm = RenderRecommendationType' "Alarm"++pattern RenderRecommendationType_Sop :: RenderRecommendationType+pattern RenderRecommendationType_Sop = RenderRecommendationType' "Sop"++pattern RenderRecommendationType_Test :: RenderRecommendationType+pattern RenderRecommendationType_Test = RenderRecommendationType' "Test"++{-# COMPLETE+  RenderRecommendationType_Alarm,+  RenderRecommendationType_Sop,+  RenderRecommendationType_Test,+  RenderRecommendationType'+  #-}
+ gen/Amazonka/ResilienceHub/Types/ResiliencyPolicy.hs view
@@ -0,0 +1,197 @@+{-# 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.ResilienceHub.Types.ResiliencyPolicy+-- 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.ResilienceHub.Types.ResiliencyPolicy 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.ResilienceHub.Types.DataLocationConstraint+import Amazonka.ResilienceHub.Types.DisruptionType+import Amazonka.ResilienceHub.Types.EstimatedCostTier+import Amazonka.ResilienceHub.Types.FailurePolicy+import Amazonka.ResilienceHub.Types.ResiliencyPolicyTier++-- | Defines a resiliency policy.+--+-- /See:/ 'newResiliencyPolicy' smart constructor.+data ResiliencyPolicy = ResiliencyPolicy'+  { -- | The timestamp for when the resiliency policy was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | Specifies a high-level geographical location constraint for where your+    -- resilience policy data can be stored.+    dataLocationConstraint :: Prelude.Maybe DataLocationConstraint,+    -- | Specifies the estimated cost tier of the resiliency policy.+    estimatedCostTier :: Prelude.Maybe EstimatedCostTier,+    -- | The resiliency policy.+    policy :: Prelude.Maybe (Prelude.HashMap DisruptionType FailurePolicy),+    -- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+    -- this ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    policyArn :: Prelude.Maybe Prelude.Text,+    -- | The description for the policy.+    policyDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the policy+    policyName :: Prelude.Maybe Prelude.Text,+    -- | The tags assigned to the resource. A tag is a label that you assign to+    -- an Amazon Web Services resource. Each tag consists of a key\/value pair.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The tier for this resiliency policy, ranging from the highest severity+    -- (@MissionCritical@) to lowest (@NonCritical@).+    tier :: Prelude.Maybe ResiliencyPolicyTier+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResiliencyPolicy' 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:+--+-- 'creationTime', 'resiliencyPolicy_creationTime' - The timestamp for when the resiliency policy was created.+--+-- 'dataLocationConstraint', 'resiliencyPolicy_dataLocationConstraint' - Specifies a high-level geographical location constraint for where your+-- resilience policy data can be stored.+--+-- 'estimatedCostTier', 'resiliencyPolicy_estimatedCostTier' - Specifies the estimated cost tier of the resiliency policy.+--+-- 'policy', 'resiliencyPolicy_policy' - The resiliency policy.+--+-- 'policyArn', 'resiliencyPolicy_policyArn' - The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'policyDescription', 'resiliencyPolicy_policyDescription' - The description for the policy.+--+-- 'policyName', 'resiliencyPolicy_policyName' - The name of the policy+--+-- 'tags', 'resiliencyPolicy_tags' - The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+--+-- 'tier', 'resiliencyPolicy_tier' - The tier for this resiliency policy, ranging from the highest severity+-- (@MissionCritical@) to lowest (@NonCritical@).+newResiliencyPolicy ::+  ResiliencyPolicy+newResiliencyPolicy =+  ResiliencyPolicy'+    { creationTime = Prelude.Nothing,+      dataLocationConstraint = Prelude.Nothing,+      estimatedCostTier = Prelude.Nothing,+      policy = Prelude.Nothing,+      policyArn = Prelude.Nothing,+      policyDescription = Prelude.Nothing,+      policyName = Prelude.Nothing,+      tags = Prelude.Nothing,+      tier = Prelude.Nothing+    }++-- | The timestamp for when the resiliency policy was created.+resiliencyPolicy_creationTime :: Lens.Lens' ResiliencyPolicy (Prelude.Maybe Prelude.UTCTime)+resiliencyPolicy_creationTime = Lens.lens (\ResiliencyPolicy' {creationTime} -> creationTime) (\s@ResiliencyPolicy' {} a -> s {creationTime = a} :: ResiliencyPolicy) Prelude.. Lens.mapping Data._Time++-- | Specifies a high-level geographical location constraint for where your+-- resilience policy data can be stored.+resiliencyPolicy_dataLocationConstraint :: Lens.Lens' ResiliencyPolicy (Prelude.Maybe DataLocationConstraint)+resiliencyPolicy_dataLocationConstraint = Lens.lens (\ResiliencyPolicy' {dataLocationConstraint} -> dataLocationConstraint) (\s@ResiliencyPolicy' {} a -> s {dataLocationConstraint = a} :: ResiliencyPolicy)++-- | Specifies the estimated cost tier of the resiliency policy.+resiliencyPolicy_estimatedCostTier :: Lens.Lens' ResiliencyPolicy (Prelude.Maybe EstimatedCostTier)+resiliencyPolicy_estimatedCostTier = Lens.lens (\ResiliencyPolicy' {estimatedCostTier} -> estimatedCostTier) (\s@ResiliencyPolicy' {} a -> s {estimatedCostTier = a} :: ResiliencyPolicy)++-- | The resiliency policy.+resiliencyPolicy_policy :: Lens.Lens' ResiliencyPolicy (Prelude.Maybe (Prelude.HashMap DisruptionType FailurePolicy))+resiliencyPolicy_policy = Lens.lens (\ResiliencyPolicy' {policy} -> policy) (\s@ResiliencyPolicy' {} a -> s {policy = a} :: ResiliencyPolicy) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+resiliencyPolicy_policyArn :: Lens.Lens' ResiliencyPolicy (Prelude.Maybe Prelude.Text)+resiliencyPolicy_policyArn = Lens.lens (\ResiliencyPolicy' {policyArn} -> policyArn) (\s@ResiliencyPolicy' {} a -> s {policyArn = a} :: ResiliencyPolicy)++-- | The description for the policy.+resiliencyPolicy_policyDescription :: Lens.Lens' ResiliencyPolicy (Prelude.Maybe Prelude.Text)+resiliencyPolicy_policyDescription = Lens.lens (\ResiliencyPolicy' {policyDescription} -> policyDescription) (\s@ResiliencyPolicy' {} a -> s {policyDescription = a} :: ResiliencyPolicy)++-- | The name of the policy+resiliencyPolicy_policyName :: Lens.Lens' ResiliencyPolicy (Prelude.Maybe Prelude.Text)+resiliencyPolicy_policyName = Lens.lens (\ResiliencyPolicy' {policyName} -> policyName) (\s@ResiliencyPolicy' {} a -> s {policyName = a} :: ResiliencyPolicy)++-- | The tags assigned to the resource. A tag is a label that you assign to+-- an Amazon Web Services resource. Each tag consists of a key\/value pair.+resiliencyPolicy_tags :: Lens.Lens' ResiliencyPolicy (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+resiliencyPolicy_tags = Lens.lens (\ResiliencyPolicy' {tags} -> tags) (\s@ResiliencyPolicy' {} a -> s {tags = a} :: ResiliencyPolicy) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The tier for this resiliency policy, ranging from the highest severity+-- (@MissionCritical@) to lowest (@NonCritical@).+resiliencyPolicy_tier :: Lens.Lens' ResiliencyPolicy (Prelude.Maybe ResiliencyPolicyTier)+resiliencyPolicy_tier = Lens.lens (\ResiliencyPolicy' {tier} -> tier) (\s@ResiliencyPolicy' {} a -> s {tier = a} :: ResiliencyPolicy)++instance Data.FromJSON ResiliencyPolicy where+  parseJSON =+    Data.withObject+      "ResiliencyPolicy"+      ( \x ->+          ResiliencyPolicy'+            Prelude.<$> (x Data..:? "creationTime")+            Prelude.<*> (x Data..:? "dataLocationConstraint")+            Prelude.<*> (x Data..:? "estimatedCostTier")+            Prelude.<*> (x Data..:? "policy" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "policyArn")+            Prelude.<*> (x Data..:? "policyDescription")+            Prelude.<*> (x Data..:? "policyName")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "tier")+      )++instance Prelude.Hashable ResiliencyPolicy where+  hashWithSalt _salt ResiliencyPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` dataLocationConstraint+      `Prelude.hashWithSalt` estimatedCostTier+      `Prelude.hashWithSalt` policy+      `Prelude.hashWithSalt` policyArn+      `Prelude.hashWithSalt` policyDescription+      `Prelude.hashWithSalt` policyName+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` tier++instance Prelude.NFData ResiliencyPolicy where+  rnf ResiliencyPolicy' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf dataLocationConstraint+      `Prelude.seq` Prelude.rnf estimatedCostTier+      `Prelude.seq` Prelude.rnf policy+      `Prelude.seq` Prelude.rnf policyArn+      `Prelude.seq` Prelude.rnf policyDescription+      `Prelude.seq` Prelude.rnf policyName+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf tier
+ gen/Amazonka/ResilienceHub/Types/ResiliencyPolicyTier.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.ResilienceHub.Types.ResiliencyPolicyTier+-- 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.ResilienceHub.Types.ResiliencyPolicyTier+  ( ResiliencyPolicyTier+      ( ..,+        ResiliencyPolicyTier_CoreServices,+        ResiliencyPolicyTier_Critical,+        ResiliencyPolicyTier_Important,+        ResiliencyPolicyTier_MissionCritical,+        ResiliencyPolicyTier_NonCritical+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ResiliencyPolicyTier = ResiliencyPolicyTier'+  { fromResiliencyPolicyTier ::+      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 ResiliencyPolicyTier_CoreServices :: ResiliencyPolicyTier+pattern ResiliencyPolicyTier_CoreServices = ResiliencyPolicyTier' "CoreServices"++pattern ResiliencyPolicyTier_Critical :: ResiliencyPolicyTier+pattern ResiliencyPolicyTier_Critical = ResiliencyPolicyTier' "Critical"++pattern ResiliencyPolicyTier_Important :: ResiliencyPolicyTier+pattern ResiliencyPolicyTier_Important = ResiliencyPolicyTier' "Important"++pattern ResiliencyPolicyTier_MissionCritical :: ResiliencyPolicyTier+pattern ResiliencyPolicyTier_MissionCritical = ResiliencyPolicyTier' "MissionCritical"++pattern ResiliencyPolicyTier_NonCritical :: ResiliencyPolicyTier+pattern ResiliencyPolicyTier_NonCritical = ResiliencyPolicyTier' "NonCritical"++{-# COMPLETE+  ResiliencyPolicyTier_CoreServices,+  ResiliencyPolicyTier_Critical,+  ResiliencyPolicyTier_Important,+  ResiliencyPolicyTier_MissionCritical,+  ResiliencyPolicyTier_NonCritical,+  ResiliencyPolicyTier'+  #-}
+ gen/Amazonka/ResilienceHub/Types/ResiliencyScore.hs view
@@ -0,0 +1,91 @@+{-# 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.ResilienceHub.Types.ResiliencyScore+-- 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.ResilienceHub.Types.ResiliencyScore 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.ResilienceHub.Types.DisruptionType++-- | The overall resiliency score, returned as an object that includes the+-- disruption score and outage score.+--+-- /See:/ 'newResiliencyScore' smart constructor.+data ResiliencyScore = ResiliencyScore'+  { -- | The disruption score for a valid key.+    disruptionScore :: Prelude.HashMap DisruptionType Prelude.Double,+    -- | The outage score for a valid key.+    score :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResiliencyScore' 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:+--+-- 'disruptionScore', 'resiliencyScore_disruptionScore' - The disruption score for a valid key.+--+-- 'score', 'resiliencyScore_score' - The outage score for a valid key.+newResiliencyScore ::+  -- | 'score'+  Prelude.Double ->+  ResiliencyScore+newResiliencyScore pScore_ =+  ResiliencyScore'+    { disruptionScore = Prelude.mempty,+      score = pScore_+    }++-- | The disruption score for a valid key.+resiliencyScore_disruptionScore :: Lens.Lens' ResiliencyScore (Prelude.HashMap DisruptionType Prelude.Double)+resiliencyScore_disruptionScore = Lens.lens (\ResiliencyScore' {disruptionScore} -> disruptionScore) (\s@ResiliencyScore' {} a -> s {disruptionScore = a} :: ResiliencyScore) Prelude.. Lens.coerced++-- | The outage score for a valid key.+resiliencyScore_score :: Lens.Lens' ResiliencyScore Prelude.Double+resiliencyScore_score = Lens.lens (\ResiliencyScore' {score} -> score) (\s@ResiliencyScore' {} a -> s {score = a} :: ResiliencyScore)++instance Data.FromJSON ResiliencyScore where+  parseJSON =+    Data.withObject+      "ResiliencyScore"+      ( \x ->+          ResiliencyScore'+            Prelude.<$> ( x+                            Data..:? "disruptionScore"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "score")+      )++instance Prelude.Hashable ResiliencyScore where+  hashWithSalt _salt ResiliencyScore' {..} =+    _salt+      `Prelude.hashWithSalt` disruptionScore+      `Prelude.hashWithSalt` score++instance Prelude.NFData ResiliencyScore where+  rnf ResiliencyScore' {..} =+    Prelude.rnf disruptionScore+      `Prelude.seq` Prelude.rnf score
+ gen/Amazonka/ResilienceHub/Types/ResourceError.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResilienceHub.Types.ResourceError+-- 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.ResilienceHub.Types.ResourceError 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++-- | Defines application resource errors.+--+-- /See:/ 'newResourceError' smart constructor.+data ResourceError = ResourceError'+  { -- | This is the identifier of the resource.+    logicalResourceId :: Prelude.Maybe Prelude.Text,+    -- | This is the identifier of the physical resource.+    physicalResourceId :: Prelude.Maybe Prelude.Text,+    -- | This is the error message.+    reason :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceError' 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:+--+-- 'logicalResourceId', 'resourceError_logicalResourceId' - This is the identifier of the resource.+--+-- 'physicalResourceId', 'resourceError_physicalResourceId' - This is the identifier of the physical resource.+--+-- 'reason', 'resourceError_reason' - This is the error message.+newResourceError ::+  ResourceError+newResourceError =+  ResourceError'+    { logicalResourceId = Prelude.Nothing,+      physicalResourceId = Prelude.Nothing,+      reason = Prelude.Nothing+    }++-- | This is the identifier of the resource.+resourceError_logicalResourceId :: Lens.Lens' ResourceError (Prelude.Maybe Prelude.Text)+resourceError_logicalResourceId = Lens.lens (\ResourceError' {logicalResourceId} -> logicalResourceId) (\s@ResourceError' {} a -> s {logicalResourceId = a} :: ResourceError)++-- | This is the identifier of the physical resource.+resourceError_physicalResourceId :: Lens.Lens' ResourceError (Prelude.Maybe Prelude.Text)+resourceError_physicalResourceId = Lens.lens (\ResourceError' {physicalResourceId} -> physicalResourceId) (\s@ResourceError' {} a -> s {physicalResourceId = a} :: ResourceError)++-- | This is the error message.+resourceError_reason :: Lens.Lens' ResourceError (Prelude.Maybe Prelude.Text)+resourceError_reason = Lens.lens (\ResourceError' {reason} -> reason) (\s@ResourceError' {} a -> s {reason = a} :: ResourceError)++instance Data.FromJSON ResourceError where+  parseJSON =+    Data.withObject+      "ResourceError"+      ( \x ->+          ResourceError'+            Prelude.<$> (x Data..:? "logicalResourceId")+            Prelude.<*> (x Data..:? "physicalResourceId")+            Prelude.<*> (x Data..:? "reason")+      )++instance Prelude.Hashable ResourceError where+  hashWithSalt _salt ResourceError' {..} =+    _salt+      `Prelude.hashWithSalt` logicalResourceId+      `Prelude.hashWithSalt` physicalResourceId+      `Prelude.hashWithSalt` reason++instance Prelude.NFData ResourceError where+  rnf ResourceError' {..} =+    Prelude.rnf logicalResourceId+      `Prelude.seq` Prelude.rnf physicalResourceId+      `Prelude.seq` Prelude.rnf reason
+ gen/Amazonka/ResilienceHub/Types/ResourceErrorsDetails.hs view
@@ -0,0 +1,92 @@+{-# 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.ResilienceHub.Types.ResourceErrorsDetails+-- 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.ResilienceHub.Types.ResourceErrorsDetails 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.ResilienceHub.Types.ResourceError++-- | A list of errors retrieving an application\'s resources.+--+-- /See:/ 'newResourceErrorsDetails' smart constructor.+data ResourceErrorsDetails = ResourceErrorsDetails'+  { -- | This indicates if there are more errors not listed in the resourceErrors+    -- list.+    hasMoreErrors :: Prelude.Maybe Prelude.Bool,+    -- | A list of errors retrieving an application\'s resources.+    resourceErrors :: Prelude.Maybe [ResourceError]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceErrorsDetails' 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:+--+-- 'hasMoreErrors', 'resourceErrorsDetails_hasMoreErrors' - This indicates if there are more errors not listed in the resourceErrors+-- list.+--+-- 'resourceErrors', 'resourceErrorsDetails_resourceErrors' - A list of errors retrieving an application\'s resources.+newResourceErrorsDetails ::+  ResourceErrorsDetails+newResourceErrorsDetails =+  ResourceErrorsDetails'+    { hasMoreErrors =+        Prelude.Nothing,+      resourceErrors = Prelude.Nothing+    }++-- | This indicates if there are more errors not listed in the resourceErrors+-- list.+resourceErrorsDetails_hasMoreErrors :: Lens.Lens' ResourceErrorsDetails (Prelude.Maybe Prelude.Bool)+resourceErrorsDetails_hasMoreErrors = Lens.lens (\ResourceErrorsDetails' {hasMoreErrors} -> hasMoreErrors) (\s@ResourceErrorsDetails' {} a -> s {hasMoreErrors = a} :: ResourceErrorsDetails)++-- | A list of errors retrieving an application\'s resources.+resourceErrorsDetails_resourceErrors :: Lens.Lens' ResourceErrorsDetails (Prelude.Maybe [ResourceError])+resourceErrorsDetails_resourceErrors = Lens.lens (\ResourceErrorsDetails' {resourceErrors} -> resourceErrors) (\s@ResourceErrorsDetails' {} a -> s {resourceErrors = a} :: ResourceErrorsDetails) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ResourceErrorsDetails where+  parseJSON =+    Data.withObject+      "ResourceErrorsDetails"+      ( \x ->+          ResourceErrorsDetails'+            Prelude.<$> (x Data..:? "hasMoreErrors")+            Prelude.<*> ( x+                            Data..:? "resourceErrors"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable ResourceErrorsDetails where+  hashWithSalt _salt ResourceErrorsDetails' {..} =+    _salt+      `Prelude.hashWithSalt` hasMoreErrors+      `Prelude.hashWithSalt` resourceErrors++instance Prelude.NFData ResourceErrorsDetails where+  rnf ResourceErrorsDetails' {..} =+    Prelude.rnf hasMoreErrors+      `Prelude.seq` Prelude.rnf resourceErrors
+ gen/Amazonka/ResilienceHub/Types/ResourceImportStatusType.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.ResilienceHub.Types.ResourceImportStatusType+-- 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.ResilienceHub.Types.ResourceImportStatusType+  ( ResourceImportStatusType+      ( ..,+        ResourceImportStatusType_Failed,+        ResourceImportStatusType_InProgress,+        ResourceImportStatusType_Pending,+        ResourceImportStatusType_Success+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ResourceImportStatusType = ResourceImportStatusType'+  { fromResourceImportStatusType ::+      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 ResourceImportStatusType_Failed :: ResourceImportStatusType+pattern ResourceImportStatusType_Failed = ResourceImportStatusType' "Failed"++pattern ResourceImportStatusType_InProgress :: ResourceImportStatusType+pattern ResourceImportStatusType_InProgress = ResourceImportStatusType' "InProgress"++pattern ResourceImportStatusType_Pending :: ResourceImportStatusType+pattern ResourceImportStatusType_Pending = ResourceImportStatusType' "Pending"++pattern ResourceImportStatusType_Success :: ResourceImportStatusType+pattern ResourceImportStatusType_Success = ResourceImportStatusType' "Success"++{-# COMPLETE+  ResourceImportStatusType_Failed,+  ResourceImportStatusType_InProgress,+  ResourceImportStatusType_Pending,+  ResourceImportStatusType_Success,+  ResourceImportStatusType'+  #-}
+ gen/Amazonka/ResilienceHub/Types/ResourceMapping.hs view
@@ -0,0 +1,221 @@+{-# 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.ResilienceHub.Types.ResourceMapping+-- 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.ResilienceHub.Types.ResourceMapping 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.ResilienceHub.Types.PhysicalResourceId+import Amazonka.ResilienceHub.Types.ResourceMappingType++-- | Defines a resource mapping.+--+-- /See:/ 'newResourceMapping' smart constructor.+data ResourceMapping = ResourceMapping'+  { -- | The name of the application this resource is mapped to.+    appRegistryAppName :: Prelude.Maybe Prelude.Text,+    -- | The name of the CloudFormation stack this resource is mapped to.+    logicalStackName :: Prelude.Maybe Prelude.Text,+    -- | The name of the resource group this resource is mapped to.+    resourceGroupName :: Prelude.Maybe Prelude.Text,+    -- | The name of the resource this resource is mapped to.+    resourceName :: Prelude.Maybe Prelude.Text,+    -- | The short name of the Terraform source.+    terraformSourceName :: Prelude.Maybe Prelude.Text,+    -- | Specifies the type of resource mapping.+    --+    -- [AppRegistryApp]+    --     The resource is mapped to another application. The name of the+    --     application is contained in the @appRegistryAppName@ property.+    --+    -- [CfnStack]+    --     The resource is mapped to a CloudFormation stack. The name of the+    --     CloudFormation stack is contained in the @logicalStackName@+    --     property.+    --+    -- [Resource]+    --     The resource is mapped to another resource. The name of the resource+    --     is contained in the @resourceName@ property.+    --+    -- [ResourceGroup]+    --     The resource is mapped to a resource group. The name of the resource+    --     group is contained in the @resourceGroupName@ property.+    mappingType :: ResourceMappingType,+    -- | The identifier of this resource.+    physicalResourceId :: PhysicalResourceId+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceMapping' 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:+--+-- 'appRegistryAppName', 'resourceMapping_appRegistryAppName' - The name of the application this resource is mapped to.+--+-- 'logicalStackName', 'resourceMapping_logicalStackName' - The name of the CloudFormation stack this resource is mapped to.+--+-- 'resourceGroupName', 'resourceMapping_resourceGroupName' - The name of the resource group this resource is mapped to.+--+-- 'resourceName', 'resourceMapping_resourceName' - The name of the resource this resource is mapped to.+--+-- 'terraformSourceName', 'resourceMapping_terraformSourceName' - The short name of the Terraform source.+--+-- 'mappingType', 'resourceMapping_mappingType' - Specifies the type of resource mapping.+--+-- [AppRegistryApp]+--     The resource is mapped to another application. The name of the+--     application is contained in the @appRegistryAppName@ property.+--+-- [CfnStack]+--     The resource is mapped to a CloudFormation stack. The name of the+--     CloudFormation stack is contained in the @logicalStackName@+--     property.+--+-- [Resource]+--     The resource is mapped to another resource. The name of the resource+--     is contained in the @resourceName@ property.+--+-- [ResourceGroup]+--     The resource is mapped to a resource group. The name of the resource+--     group is contained in the @resourceGroupName@ property.+--+-- 'physicalResourceId', 'resourceMapping_physicalResourceId' - The identifier of this resource.+newResourceMapping ::+  -- | 'mappingType'+  ResourceMappingType ->+  -- | 'physicalResourceId'+  PhysicalResourceId ->+  ResourceMapping+newResourceMapping pMappingType_ pPhysicalResourceId_ =+  ResourceMapping'+    { appRegistryAppName =+        Prelude.Nothing,+      logicalStackName = Prelude.Nothing,+      resourceGroupName = Prelude.Nothing,+      resourceName = Prelude.Nothing,+      terraformSourceName = Prelude.Nothing,+      mappingType = pMappingType_,+      physicalResourceId = pPhysicalResourceId_+    }++-- | The name of the application this resource is mapped to.+resourceMapping_appRegistryAppName :: Lens.Lens' ResourceMapping (Prelude.Maybe Prelude.Text)+resourceMapping_appRegistryAppName = Lens.lens (\ResourceMapping' {appRegistryAppName} -> appRegistryAppName) (\s@ResourceMapping' {} a -> s {appRegistryAppName = a} :: ResourceMapping)++-- | The name of the CloudFormation stack this resource is mapped to.+resourceMapping_logicalStackName :: Lens.Lens' ResourceMapping (Prelude.Maybe Prelude.Text)+resourceMapping_logicalStackName = Lens.lens (\ResourceMapping' {logicalStackName} -> logicalStackName) (\s@ResourceMapping' {} a -> s {logicalStackName = a} :: ResourceMapping)++-- | The name of the resource group this resource is mapped to.+resourceMapping_resourceGroupName :: Lens.Lens' ResourceMapping (Prelude.Maybe Prelude.Text)+resourceMapping_resourceGroupName = Lens.lens (\ResourceMapping' {resourceGroupName} -> resourceGroupName) (\s@ResourceMapping' {} a -> s {resourceGroupName = a} :: ResourceMapping)++-- | The name of the resource this resource is mapped to.+resourceMapping_resourceName :: Lens.Lens' ResourceMapping (Prelude.Maybe Prelude.Text)+resourceMapping_resourceName = Lens.lens (\ResourceMapping' {resourceName} -> resourceName) (\s@ResourceMapping' {} a -> s {resourceName = a} :: ResourceMapping)++-- | The short name of the Terraform source.+resourceMapping_terraformSourceName :: Lens.Lens' ResourceMapping (Prelude.Maybe Prelude.Text)+resourceMapping_terraformSourceName = Lens.lens (\ResourceMapping' {terraformSourceName} -> terraformSourceName) (\s@ResourceMapping' {} a -> s {terraformSourceName = a} :: ResourceMapping)++-- | Specifies the type of resource mapping.+--+-- [AppRegistryApp]+--     The resource is mapped to another application. The name of the+--     application is contained in the @appRegistryAppName@ property.+--+-- [CfnStack]+--     The resource is mapped to a CloudFormation stack. The name of the+--     CloudFormation stack is contained in the @logicalStackName@+--     property.+--+-- [Resource]+--     The resource is mapped to another resource. The name of the resource+--     is contained in the @resourceName@ property.+--+-- [ResourceGroup]+--     The resource is mapped to a resource group. The name of the resource+--     group is contained in the @resourceGroupName@ property.+resourceMapping_mappingType :: Lens.Lens' ResourceMapping ResourceMappingType+resourceMapping_mappingType = Lens.lens (\ResourceMapping' {mappingType} -> mappingType) (\s@ResourceMapping' {} a -> s {mappingType = a} :: ResourceMapping)++-- | The identifier of this resource.+resourceMapping_physicalResourceId :: Lens.Lens' ResourceMapping PhysicalResourceId+resourceMapping_physicalResourceId = Lens.lens (\ResourceMapping' {physicalResourceId} -> physicalResourceId) (\s@ResourceMapping' {} a -> s {physicalResourceId = a} :: ResourceMapping)++instance Data.FromJSON ResourceMapping where+  parseJSON =+    Data.withObject+      "ResourceMapping"+      ( \x ->+          ResourceMapping'+            Prelude.<$> (x Data..:? "appRegistryAppName")+            Prelude.<*> (x Data..:? "logicalStackName")+            Prelude.<*> (x Data..:? "resourceGroupName")+            Prelude.<*> (x Data..:? "resourceName")+            Prelude.<*> (x Data..:? "terraformSourceName")+            Prelude.<*> (x Data..: "mappingType")+            Prelude.<*> (x Data..: "physicalResourceId")+      )++instance Prelude.Hashable ResourceMapping where+  hashWithSalt _salt ResourceMapping' {..} =+    _salt+      `Prelude.hashWithSalt` appRegistryAppName+      `Prelude.hashWithSalt` logicalStackName+      `Prelude.hashWithSalt` resourceGroupName+      `Prelude.hashWithSalt` resourceName+      `Prelude.hashWithSalt` terraformSourceName+      `Prelude.hashWithSalt` mappingType+      `Prelude.hashWithSalt` physicalResourceId++instance Prelude.NFData ResourceMapping where+  rnf ResourceMapping' {..} =+    Prelude.rnf appRegistryAppName+      `Prelude.seq` Prelude.rnf logicalStackName+      `Prelude.seq` Prelude.rnf resourceGroupName+      `Prelude.seq` Prelude.rnf resourceName+      `Prelude.seq` Prelude.rnf terraformSourceName+      `Prelude.seq` Prelude.rnf mappingType+      `Prelude.seq` Prelude.rnf physicalResourceId++instance Data.ToJSON ResourceMapping where+  toJSON ResourceMapping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("appRegistryAppName" Data..=)+              Prelude.<$> appRegistryAppName,+            ("logicalStackName" Data..=)+              Prelude.<$> logicalStackName,+            ("resourceGroupName" Data..=)+              Prelude.<$> resourceGroupName,+            ("resourceName" Data..=) Prelude.<$> resourceName,+            ("terraformSourceName" Data..=)+              Prelude.<$> terraformSourceName,+            Prelude.Just ("mappingType" Data..= mappingType),+            Prelude.Just+              ("physicalResourceId" Data..= physicalResourceId)+          ]+      )
+ gen/Amazonka/ResilienceHub/Types/ResourceMappingType.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.ResilienceHub.Types.ResourceMappingType+-- 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.ResilienceHub.Types.ResourceMappingType+  ( ResourceMappingType+      ( ..,+        ResourceMappingType_AppRegistryApp,+        ResourceMappingType_CfnStack,+        ResourceMappingType_Resource,+        ResourceMappingType_ResourceGroup,+        ResourceMappingType_Terraform+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ResourceMappingType = ResourceMappingType'+  { fromResourceMappingType ::+      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 ResourceMappingType_AppRegistryApp :: ResourceMappingType+pattern ResourceMappingType_AppRegistryApp = ResourceMappingType' "AppRegistryApp"++pattern ResourceMappingType_CfnStack :: ResourceMappingType+pattern ResourceMappingType_CfnStack = ResourceMappingType' "CfnStack"++pattern ResourceMappingType_Resource :: ResourceMappingType+pattern ResourceMappingType_Resource = ResourceMappingType' "Resource"++pattern ResourceMappingType_ResourceGroup :: ResourceMappingType+pattern ResourceMappingType_ResourceGroup = ResourceMappingType' "ResourceGroup"++pattern ResourceMappingType_Terraform :: ResourceMappingType+pattern ResourceMappingType_Terraform = ResourceMappingType' "Terraform"++{-# COMPLETE+  ResourceMappingType_AppRegistryApp,+  ResourceMappingType_CfnStack,+  ResourceMappingType_Resource,+  ResourceMappingType_ResourceGroup,+  ResourceMappingType_Terraform,+  ResourceMappingType'+  #-}
+ gen/Amazonka/ResilienceHub/Types/ResourceResolutionStatusType.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.ResilienceHub.Types.ResourceResolutionStatusType+-- 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.ResilienceHub.Types.ResourceResolutionStatusType+  ( ResourceResolutionStatusType+      ( ..,+        ResourceResolutionStatusType_Failed,+        ResourceResolutionStatusType_InProgress,+        ResourceResolutionStatusType_Pending,+        ResourceResolutionStatusType_Success+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ResourceResolutionStatusType = ResourceResolutionStatusType'+  { fromResourceResolutionStatusType ::+      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 ResourceResolutionStatusType_Failed :: ResourceResolutionStatusType+pattern ResourceResolutionStatusType_Failed = ResourceResolutionStatusType' "Failed"++pattern ResourceResolutionStatusType_InProgress :: ResourceResolutionStatusType+pattern ResourceResolutionStatusType_InProgress = ResourceResolutionStatusType' "InProgress"++pattern ResourceResolutionStatusType_Pending :: ResourceResolutionStatusType+pattern ResourceResolutionStatusType_Pending = ResourceResolutionStatusType' "Pending"++pattern ResourceResolutionStatusType_Success :: ResourceResolutionStatusType+pattern ResourceResolutionStatusType_Success = ResourceResolutionStatusType' "Success"++{-# COMPLETE+  ResourceResolutionStatusType_Failed,+  ResourceResolutionStatusType_InProgress,+  ResourceResolutionStatusType_Pending,+  ResourceResolutionStatusType_Success,+  ResourceResolutionStatusType'+  #-}
+ gen/Amazonka/ResilienceHub/Types/S3Location.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResilienceHub.Types.S3Location+-- 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.ResilienceHub.Types.S3Location where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The location of the Amazon S3 bucket.+--+-- /See:/ 'newS3Location' smart constructor.+data S3Location = S3Location'+  { -- | The name of the Amazon S3 bucket.+    bucket :: Prelude.Maybe Prelude.Text,+    -- | The prefix for the Amazon S3 bucket.+    prefix :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3Location' 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:+--+-- 'bucket', 's3Location_bucket' - The name of the Amazon S3 bucket.+--+-- 'prefix', 's3Location_prefix' - The prefix for the Amazon S3 bucket.+newS3Location ::+  S3Location+newS3Location =+  S3Location'+    { bucket = Prelude.Nothing,+      prefix = Prelude.Nothing+    }++-- | The name of the Amazon S3 bucket.+s3Location_bucket :: Lens.Lens' S3Location (Prelude.Maybe Prelude.Text)+s3Location_bucket = Lens.lens (\S3Location' {bucket} -> bucket) (\s@S3Location' {} a -> s {bucket = a} :: S3Location)++-- | The prefix for the Amazon S3 bucket.+s3Location_prefix :: Lens.Lens' S3Location (Prelude.Maybe Prelude.Text)+s3Location_prefix = Lens.lens (\S3Location' {prefix} -> prefix) (\s@S3Location' {} a -> s {prefix = a} :: S3Location)++instance Data.FromJSON S3Location where+  parseJSON =+    Data.withObject+      "S3Location"+      ( \x ->+          S3Location'+            Prelude.<$> (x Data..:? "bucket")+            Prelude.<*> (x Data..:? "prefix")+      )++instance Prelude.Hashable S3Location where+  hashWithSalt _salt S3Location' {..} =+    _salt+      `Prelude.hashWithSalt` bucket+      `Prelude.hashWithSalt` prefix++instance Prelude.NFData S3Location where+  rnf S3Location' {..} =+    Prelude.rnf bucket `Prelude.seq` Prelude.rnf prefix
+ gen/Amazonka/ResilienceHub/Types/SopRecommendation.hs view
@@ -0,0 +1,168 @@+{-# 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.ResilienceHub.Types.SopRecommendation+-- 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.ResilienceHub.Types.SopRecommendation 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.ResilienceHub.Types.RecommendationItem+import Amazonka.ResilienceHub.Types.SopServiceType++-- | Defines a standard operating procedure (SOP) recommendation.+--+-- /See:/ 'newSopRecommendation' smart constructor.+data SopRecommendation = SopRecommendation'+  { -- | The application component name.+    appComponentName :: Prelude.Maybe Prelude.Text,+    -- | The description of the SOP recommendation.+    description :: Prelude.Maybe Prelude.Text,+    -- | The recommendation items.+    items :: Prelude.Maybe [RecommendationItem],+    -- | The name of the SOP recommendation.+    name :: Prelude.Maybe Prelude.Text,+    -- | The prerequisite for the SOP recommendation.+    prerequisite :: Prelude.Maybe Prelude.Text,+    -- | Identifier for the SOP recommendation.+    recommendationId :: Prelude.Text,+    -- | The reference identifier for the SOP recommendation.+    referenceId :: Prelude.Text,+    -- | The service type.+    serviceType :: SopServiceType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SopRecommendation' 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:+--+-- 'appComponentName', 'sopRecommendation_appComponentName' - The application component name.+--+-- 'description', 'sopRecommendation_description' - The description of the SOP recommendation.+--+-- 'items', 'sopRecommendation_items' - The recommendation items.+--+-- 'name', 'sopRecommendation_name' - The name of the SOP recommendation.+--+-- 'prerequisite', 'sopRecommendation_prerequisite' - The prerequisite for the SOP recommendation.+--+-- 'recommendationId', 'sopRecommendation_recommendationId' - Identifier for the SOP recommendation.+--+-- 'referenceId', 'sopRecommendation_referenceId' - The reference identifier for the SOP recommendation.+--+-- 'serviceType', 'sopRecommendation_serviceType' - The service type.+newSopRecommendation ::+  -- | 'recommendationId'+  Prelude.Text ->+  -- | 'referenceId'+  Prelude.Text ->+  -- | 'serviceType'+  SopServiceType ->+  SopRecommendation+newSopRecommendation+  pRecommendationId_+  pReferenceId_+  pServiceType_ =+    SopRecommendation'+      { appComponentName =+          Prelude.Nothing,+        description = Prelude.Nothing,+        items = Prelude.Nothing,+        name = Prelude.Nothing,+        prerequisite = Prelude.Nothing,+        recommendationId = pRecommendationId_,+        referenceId = pReferenceId_,+        serviceType = pServiceType_+      }++-- | The application component name.+sopRecommendation_appComponentName :: Lens.Lens' SopRecommendation (Prelude.Maybe Prelude.Text)+sopRecommendation_appComponentName = Lens.lens (\SopRecommendation' {appComponentName} -> appComponentName) (\s@SopRecommendation' {} a -> s {appComponentName = a} :: SopRecommendation)++-- | The description of the SOP recommendation.+sopRecommendation_description :: Lens.Lens' SopRecommendation (Prelude.Maybe Prelude.Text)+sopRecommendation_description = Lens.lens (\SopRecommendation' {description} -> description) (\s@SopRecommendation' {} a -> s {description = a} :: SopRecommendation)++-- | The recommendation items.+sopRecommendation_items :: Lens.Lens' SopRecommendation (Prelude.Maybe [RecommendationItem])+sopRecommendation_items = Lens.lens (\SopRecommendation' {items} -> items) (\s@SopRecommendation' {} a -> s {items = a} :: SopRecommendation) Prelude.. Lens.mapping Lens.coerced++-- | The name of the SOP recommendation.+sopRecommendation_name :: Lens.Lens' SopRecommendation (Prelude.Maybe Prelude.Text)+sopRecommendation_name = Lens.lens (\SopRecommendation' {name} -> name) (\s@SopRecommendation' {} a -> s {name = a} :: SopRecommendation)++-- | The prerequisite for the SOP recommendation.+sopRecommendation_prerequisite :: Lens.Lens' SopRecommendation (Prelude.Maybe Prelude.Text)+sopRecommendation_prerequisite = Lens.lens (\SopRecommendation' {prerequisite} -> prerequisite) (\s@SopRecommendation' {} a -> s {prerequisite = a} :: SopRecommendation)++-- | Identifier for the SOP recommendation.+sopRecommendation_recommendationId :: Lens.Lens' SopRecommendation Prelude.Text+sopRecommendation_recommendationId = Lens.lens (\SopRecommendation' {recommendationId} -> recommendationId) (\s@SopRecommendation' {} a -> s {recommendationId = a} :: SopRecommendation)++-- | The reference identifier for the SOP recommendation.+sopRecommendation_referenceId :: Lens.Lens' SopRecommendation Prelude.Text+sopRecommendation_referenceId = Lens.lens (\SopRecommendation' {referenceId} -> referenceId) (\s@SopRecommendation' {} a -> s {referenceId = a} :: SopRecommendation)++-- | The service type.+sopRecommendation_serviceType :: Lens.Lens' SopRecommendation SopServiceType+sopRecommendation_serviceType = Lens.lens (\SopRecommendation' {serviceType} -> serviceType) (\s@SopRecommendation' {} a -> s {serviceType = a} :: SopRecommendation)++instance Data.FromJSON SopRecommendation where+  parseJSON =+    Data.withObject+      "SopRecommendation"+      ( \x ->+          SopRecommendation'+            Prelude.<$> (x Data..:? "appComponentName")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "items" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "prerequisite")+            Prelude.<*> (x Data..: "recommendationId")+            Prelude.<*> (x Data..: "referenceId")+            Prelude.<*> (x Data..: "serviceType")+      )++instance Prelude.Hashable SopRecommendation where+  hashWithSalt _salt SopRecommendation' {..} =+    _salt+      `Prelude.hashWithSalt` appComponentName+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` items+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` prerequisite+      `Prelude.hashWithSalt` recommendationId+      `Prelude.hashWithSalt` referenceId+      `Prelude.hashWithSalt` serviceType++instance Prelude.NFData SopRecommendation where+  rnf SopRecommendation' {..} =+    Prelude.rnf appComponentName+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf items+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf prerequisite+      `Prelude.seq` Prelude.rnf recommendationId+      `Prelude.seq` Prelude.rnf referenceId+      `Prelude.seq` Prelude.rnf serviceType
+ gen/Amazonka/ResilienceHub/Types/SopServiceType.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.ResilienceHub.Types.SopServiceType+-- 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.ResilienceHub.Types.SopServiceType+  ( SopServiceType+      ( ..,+        SopServiceType_SSM+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SopServiceType = SopServiceType'+  { fromSopServiceType ::+      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 SopServiceType_SSM :: SopServiceType+pattern SopServiceType_SSM = SopServiceType' "SSM"++{-# COMPLETE+  SopServiceType_SSM,+  SopServiceType'+  #-}
+ gen/Amazonka/ResilienceHub/Types/TemplateFormat.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.ResilienceHub.Types.TemplateFormat+-- 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.ResilienceHub.Types.TemplateFormat+  ( TemplateFormat+      ( ..,+        TemplateFormat_CfnJson,+        TemplateFormat_CfnYaml+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TemplateFormat = TemplateFormat'+  { fromTemplateFormat ::+      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 TemplateFormat_CfnJson :: TemplateFormat+pattern TemplateFormat_CfnJson = TemplateFormat' "CfnJson"++pattern TemplateFormat_CfnYaml :: TemplateFormat+pattern TemplateFormat_CfnYaml = TemplateFormat' "CfnYaml"++{-# COMPLETE+  TemplateFormat_CfnJson,+  TemplateFormat_CfnYaml,+  TemplateFormat'+  #-}
+ gen/Amazonka/ResilienceHub/Types/TerraformSource.hs view
@@ -0,0 +1,79 @@+{-# 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.ResilienceHub.Types.TerraformSource+-- 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.ResilienceHub.Types.TerraformSource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Terraform s3 state file you need to import.+--+-- /See:/ 'newTerraformSource' smart constructor.+data TerraformSource = TerraformSource'+  { -- | The Terraform s3 state file you need to import.+    s3StateFileUrl :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TerraformSource' 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:+--+-- 's3StateFileUrl', 'terraformSource_s3StateFileUrl' - The Terraform s3 state file you need to import.+newTerraformSource ::+  -- | 's3StateFileUrl'+  Prelude.Text ->+  TerraformSource+newTerraformSource pS3StateFileUrl_ =+  TerraformSource' {s3StateFileUrl = pS3StateFileUrl_}++-- | The Terraform s3 state file you need to import.+terraformSource_s3StateFileUrl :: Lens.Lens' TerraformSource Prelude.Text+terraformSource_s3StateFileUrl = Lens.lens (\TerraformSource' {s3StateFileUrl} -> s3StateFileUrl) (\s@TerraformSource' {} a -> s {s3StateFileUrl = a} :: TerraformSource)++instance Data.FromJSON TerraformSource where+  parseJSON =+    Data.withObject+      "TerraformSource"+      ( \x ->+          TerraformSource'+            Prelude.<$> (x Data..: "s3StateFileUrl")+      )++instance Prelude.Hashable TerraformSource where+  hashWithSalt _salt TerraformSource' {..} =+    _salt `Prelude.hashWithSalt` s3StateFileUrl++instance Prelude.NFData TerraformSource where+  rnf TerraformSource' {..} = Prelude.rnf s3StateFileUrl++instance Data.ToJSON TerraformSource where+  toJSON TerraformSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("s3StateFileUrl" Data..= s3StateFileUrl)+          ]+      )
+ gen/Amazonka/ResilienceHub/Types/TestRecommendation.hs view
@@ -0,0 +1,201 @@+{-# 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.ResilienceHub.Types.TestRecommendation+-- 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.ResilienceHub.Types.TestRecommendation 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.ResilienceHub.Types.RecommendationItem+import Amazonka.ResilienceHub.Types.TestRisk+import Amazonka.ResilienceHub.Types.TestType++-- | Defines a test recommendation.+--+-- /See:/ 'newTestRecommendation' smart constructor.+data TestRecommendation = TestRecommendation'+  { -- | The name of the application component.+    appComponentName :: Prelude.Maybe Prelude.Text,+    -- | A list of recommended alarms that are used in the test and must be+    -- exported before or with the test.+    dependsOnAlarms :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The description for the test recommendation.+    description :: Prelude.Maybe Prelude.Text,+    -- | The intent of the test recommendation.+    intent :: Prelude.Maybe Prelude.Text,+    -- | The test recommendation items.+    items :: Prelude.Maybe [RecommendationItem],+    -- | The name of the test recommendation.+    name :: Prelude.Maybe Prelude.Text,+    -- | The prerequisite of the test recommendation.+    prerequisite :: Prelude.Maybe Prelude.Text,+    -- | Identifier for the test recommendation.+    recommendationId :: Prelude.Maybe Prelude.Text,+    -- | The level of risk for this test recommendation.+    risk :: Prelude.Maybe TestRisk,+    -- | The type of test recommendation.+    type' :: Prelude.Maybe TestType,+    -- | The reference identifier for the test recommendation.+    referenceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TestRecommendation' 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:+--+-- 'appComponentName', 'testRecommendation_appComponentName' - The name of the application component.+--+-- 'dependsOnAlarms', 'testRecommendation_dependsOnAlarms' - A list of recommended alarms that are used in the test and must be+-- exported before or with the test.+--+-- 'description', 'testRecommendation_description' - The description for the test recommendation.+--+-- 'intent', 'testRecommendation_intent' - The intent of the test recommendation.+--+-- 'items', 'testRecommendation_items' - The test recommendation items.+--+-- 'name', 'testRecommendation_name' - The name of the test recommendation.+--+-- 'prerequisite', 'testRecommendation_prerequisite' - The prerequisite of the test recommendation.+--+-- 'recommendationId', 'testRecommendation_recommendationId' - Identifier for the test recommendation.+--+-- 'risk', 'testRecommendation_risk' - The level of risk for this test recommendation.+--+-- 'type'', 'testRecommendation_type' - The type of test recommendation.+--+-- 'referenceId', 'testRecommendation_referenceId' - The reference identifier for the test recommendation.+newTestRecommendation ::+  -- | 'referenceId'+  Prelude.Text ->+  TestRecommendation+newTestRecommendation pReferenceId_ =+  TestRecommendation'+    { appComponentName =+        Prelude.Nothing,+      dependsOnAlarms = Prelude.Nothing,+      description = Prelude.Nothing,+      intent = Prelude.Nothing,+      items = Prelude.Nothing,+      name = Prelude.Nothing,+      prerequisite = Prelude.Nothing,+      recommendationId = Prelude.Nothing,+      risk = Prelude.Nothing,+      type' = Prelude.Nothing,+      referenceId = pReferenceId_+    }++-- | The name of the application component.+testRecommendation_appComponentName :: Lens.Lens' TestRecommendation (Prelude.Maybe Prelude.Text)+testRecommendation_appComponentName = Lens.lens (\TestRecommendation' {appComponentName} -> appComponentName) (\s@TestRecommendation' {} a -> s {appComponentName = a} :: TestRecommendation)++-- | A list of recommended alarms that are used in the test and must be+-- exported before or with the test.+testRecommendation_dependsOnAlarms :: Lens.Lens' TestRecommendation (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+testRecommendation_dependsOnAlarms = Lens.lens (\TestRecommendation' {dependsOnAlarms} -> dependsOnAlarms) (\s@TestRecommendation' {} a -> s {dependsOnAlarms = a} :: TestRecommendation) Prelude.. Lens.mapping Lens.coerced++-- | The description for the test recommendation.+testRecommendation_description :: Lens.Lens' TestRecommendation (Prelude.Maybe Prelude.Text)+testRecommendation_description = Lens.lens (\TestRecommendation' {description} -> description) (\s@TestRecommendation' {} a -> s {description = a} :: TestRecommendation)++-- | The intent of the test recommendation.+testRecommendation_intent :: Lens.Lens' TestRecommendation (Prelude.Maybe Prelude.Text)+testRecommendation_intent = Lens.lens (\TestRecommendation' {intent} -> intent) (\s@TestRecommendation' {} a -> s {intent = a} :: TestRecommendation)++-- | The test recommendation items.+testRecommendation_items :: Lens.Lens' TestRecommendation (Prelude.Maybe [RecommendationItem])+testRecommendation_items = Lens.lens (\TestRecommendation' {items} -> items) (\s@TestRecommendation' {} a -> s {items = a} :: TestRecommendation) Prelude.. Lens.mapping Lens.coerced++-- | The name of the test recommendation.+testRecommendation_name :: Lens.Lens' TestRecommendation (Prelude.Maybe Prelude.Text)+testRecommendation_name = Lens.lens (\TestRecommendation' {name} -> name) (\s@TestRecommendation' {} a -> s {name = a} :: TestRecommendation)++-- | The prerequisite of the test recommendation.+testRecommendation_prerequisite :: Lens.Lens' TestRecommendation (Prelude.Maybe Prelude.Text)+testRecommendation_prerequisite = Lens.lens (\TestRecommendation' {prerequisite} -> prerequisite) (\s@TestRecommendation' {} a -> s {prerequisite = a} :: TestRecommendation)++-- | Identifier for the test recommendation.+testRecommendation_recommendationId :: Lens.Lens' TestRecommendation (Prelude.Maybe Prelude.Text)+testRecommendation_recommendationId = Lens.lens (\TestRecommendation' {recommendationId} -> recommendationId) (\s@TestRecommendation' {} a -> s {recommendationId = a} :: TestRecommendation)++-- | The level of risk for this test recommendation.+testRecommendation_risk :: Lens.Lens' TestRecommendation (Prelude.Maybe TestRisk)+testRecommendation_risk = Lens.lens (\TestRecommendation' {risk} -> risk) (\s@TestRecommendation' {} a -> s {risk = a} :: TestRecommendation)++-- | The type of test recommendation.+testRecommendation_type :: Lens.Lens' TestRecommendation (Prelude.Maybe TestType)+testRecommendation_type = Lens.lens (\TestRecommendation' {type'} -> type') (\s@TestRecommendation' {} a -> s {type' = a} :: TestRecommendation)++-- | The reference identifier for the test recommendation.+testRecommendation_referenceId :: Lens.Lens' TestRecommendation Prelude.Text+testRecommendation_referenceId = Lens.lens (\TestRecommendation' {referenceId} -> referenceId) (\s@TestRecommendation' {} a -> s {referenceId = a} :: TestRecommendation)++instance Data.FromJSON TestRecommendation where+  parseJSON =+    Data.withObject+      "TestRecommendation"+      ( \x ->+          TestRecommendation'+            Prelude.<$> (x Data..:? "appComponentName")+            Prelude.<*> (x Data..:? "dependsOnAlarms")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "intent")+            Prelude.<*> (x Data..:? "items" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "prerequisite")+            Prelude.<*> (x Data..:? "recommendationId")+            Prelude.<*> (x Data..:? "risk")+            Prelude.<*> (x Data..:? "type")+            Prelude.<*> (x Data..: "referenceId")+      )++instance Prelude.Hashable TestRecommendation where+  hashWithSalt _salt TestRecommendation' {..} =+    _salt+      `Prelude.hashWithSalt` appComponentName+      `Prelude.hashWithSalt` dependsOnAlarms+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` intent+      `Prelude.hashWithSalt` items+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` prerequisite+      `Prelude.hashWithSalt` recommendationId+      `Prelude.hashWithSalt` risk+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` referenceId++instance Prelude.NFData TestRecommendation where+  rnf TestRecommendation' {..} =+    Prelude.rnf appComponentName+      `Prelude.seq` Prelude.rnf dependsOnAlarms+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf intent+      `Prelude.seq` Prelude.rnf items+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf prerequisite+      `Prelude.seq` Prelude.rnf recommendationId+      `Prelude.seq` Prelude.rnf risk+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf referenceId
+ gen/Amazonka/ResilienceHub/Types/TestRisk.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.ResilienceHub.Types.TestRisk+-- 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.ResilienceHub.Types.TestRisk+  ( TestRisk+      ( ..,+        TestRisk_High,+        TestRisk_Medium,+        TestRisk_Small+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TestRisk = TestRisk'+  { fromTestRisk ::+      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 TestRisk_High :: TestRisk+pattern TestRisk_High = TestRisk' "High"++pattern TestRisk_Medium :: TestRisk+pattern TestRisk_Medium = TestRisk' "Medium"++pattern TestRisk_Small :: TestRisk+pattern TestRisk_Small = TestRisk' "Small"++{-# COMPLETE+  TestRisk_High,+  TestRisk_Medium,+  TestRisk_Small,+  TestRisk'+  #-}
+ gen/Amazonka/ResilienceHub/Types/TestType.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.ResilienceHub.Types.TestType+-- 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.ResilienceHub.Types.TestType+  ( TestType+      ( ..,+        TestType_AZ,+        TestType_Hardware,+        TestType_Region,+        TestType_Software+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TestType = TestType'+  { fromTestType ::+      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 TestType_AZ :: TestType+pattern TestType_AZ = TestType' "AZ"++pattern TestType_Hardware :: TestType+pattern TestType_Hardware = TestType' "Hardware"++pattern TestType_Region :: TestType+pattern TestType_Region = TestType' "Region"++pattern TestType_Software :: TestType+pattern TestType_Software = TestType' "Software"++{-# COMPLETE+  TestType_AZ,+  TestType_Hardware,+  TestType_Region,+  TestType_Software,+  TestType'+  #-}
+ gen/Amazonka/ResilienceHub/Types/UnsupportedResource.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.ResilienceHub.Types.UnsupportedResource+-- 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.ResilienceHub.Types.UnsupportedResource 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.ResilienceHub.Types.LogicalResourceId+import Amazonka.ResilienceHub.Types.PhysicalResourceId++-- | Defines a resource that is not supported by Resilience Hub.+--+-- /See:/ 'newUnsupportedResource' smart constructor.+data UnsupportedResource = UnsupportedResource'+  { -- | The logical resource identifier for the unsupported resource.+    logicalResourceId :: LogicalResourceId,+    -- | The physical resource identifier for the unsupported resource.+    physicalResourceId :: PhysicalResourceId,+    -- | The type of resource.+    resourceType :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UnsupportedResource' 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:+--+-- 'logicalResourceId', 'unsupportedResource_logicalResourceId' - The logical resource identifier for the unsupported resource.+--+-- 'physicalResourceId', 'unsupportedResource_physicalResourceId' - The physical resource identifier for the unsupported resource.+--+-- 'resourceType', 'unsupportedResource_resourceType' - The type of resource.+newUnsupportedResource ::+  -- | 'logicalResourceId'+  LogicalResourceId ->+  -- | 'physicalResourceId'+  PhysicalResourceId ->+  -- | 'resourceType'+  Prelude.Text ->+  UnsupportedResource+newUnsupportedResource+  pLogicalResourceId_+  pPhysicalResourceId_+  pResourceType_ =+    UnsupportedResource'+      { logicalResourceId =+          pLogicalResourceId_,+        physicalResourceId = pPhysicalResourceId_,+        resourceType = pResourceType_+      }++-- | The logical resource identifier for the unsupported resource.+unsupportedResource_logicalResourceId :: Lens.Lens' UnsupportedResource LogicalResourceId+unsupportedResource_logicalResourceId = Lens.lens (\UnsupportedResource' {logicalResourceId} -> logicalResourceId) (\s@UnsupportedResource' {} a -> s {logicalResourceId = a} :: UnsupportedResource)++-- | The physical resource identifier for the unsupported resource.+unsupportedResource_physicalResourceId :: Lens.Lens' UnsupportedResource PhysicalResourceId+unsupportedResource_physicalResourceId = Lens.lens (\UnsupportedResource' {physicalResourceId} -> physicalResourceId) (\s@UnsupportedResource' {} a -> s {physicalResourceId = a} :: UnsupportedResource)++-- | The type of resource.+unsupportedResource_resourceType :: Lens.Lens' UnsupportedResource Prelude.Text+unsupportedResource_resourceType = Lens.lens (\UnsupportedResource' {resourceType} -> resourceType) (\s@UnsupportedResource' {} a -> s {resourceType = a} :: UnsupportedResource)++instance Data.FromJSON UnsupportedResource where+  parseJSON =+    Data.withObject+      "UnsupportedResource"+      ( \x ->+          UnsupportedResource'+            Prelude.<$> (x Data..: "logicalResourceId")+            Prelude.<*> (x Data..: "physicalResourceId")+            Prelude.<*> (x Data..: "resourceType")+      )++instance Prelude.Hashable UnsupportedResource where+  hashWithSalt _salt UnsupportedResource' {..} =+    _salt+      `Prelude.hashWithSalt` logicalResourceId+      `Prelude.hashWithSalt` physicalResourceId+      `Prelude.hashWithSalt` resourceType++instance Prelude.NFData UnsupportedResource where+  rnf UnsupportedResource' {..} =+    Prelude.rnf logicalResourceId+      `Prelude.seq` Prelude.rnf physicalResourceId+      `Prelude.seq` Prelude.rnf resourceType
+ gen/Amazonka/ResilienceHub/UntagResource.hs view
@@ -0,0 +1,166 @@+{-# 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.ResilienceHub.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)+--+-- Removes one or more tags from a resource.+module Amazonka.ResilienceHub.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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The Amazon Resource Name (ARN) of the resource.+    resourceArn :: Prelude.Text,+    -- | The keys of the tags to remove.+    tagKeys :: Data.Sensitive (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, 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' - The Amazon Resource Name (ARN) of the resource.+--+-- 'tagKeys', 'untagResource_tagKeys' - The keys of the tags to remove.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  -- | 'tagKeys'+  Prelude.NonEmpty Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ pTagKeys_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys =+        Data._Sensitive+          Prelude.. Lens.coerced+          Lens.# pTagKeys_+    }++-- | The Amazon Resource Name (ARN) of the resource.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The keys of the tags to remove.+untagResource_tagKeys :: Lens.Lens' UntagResource (Prelude.NonEmpty Prelude.Text)+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Data._Sensitive 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/ResilienceHub/UpdateApp.hs view
@@ -0,0 +1,255 @@+{-# 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.ResilienceHub.UpdateApp+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an application.+module Amazonka.ResilienceHub.UpdateApp+  ( -- * Creating a Request+    UpdateApp (..),+    newUpdateApp,++    -- * Request Lenses+    updateApp_assessmentSchedule,+    updateApp_clearResiliencyPolicyArn,+    updateApp_description,+    updateApp_policyArn,+    updateApp_appArn,++    -- * Destructuring the Response+    UpdateAppResponse (..),+    newUpdateAppResponse,++    -- * Response Lenses+    updateAppResponse_httpStatus,+    updateAppResponse_app,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateApp' smart constructor.+data UpdateApp = UpdateApp'+  { -- | Assessment execution schedule with \'Daily\' or \'Disabled\' values.+    assessmentSchedule :: Prelude.Maybe AppAssessmentScheduleType,+    -- | Specifies if the resiliency policy ARN should be cleared.+    clearResiliencyPolicyArn :: Prelude.Maybe Prelude.Bool,+    -- | The optional description for an app.+    description :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+    -- this ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    policyArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the application. The format for this+    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    appArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateApp' 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:+--+-- 'assessmentSchedule', 'updateApp_assessmentSchedule' - Assessment execution schedule with \'Daily\' or \'Disabled\' values.+--+-- 'clearResiliencyPolicyArn', 'updateApp_clearResiliencyPolicyArn' - Specifies if the resiliency policy ARN should be cleared.+--+-- 'description', 'updateApp_description' - The optional description for an app.+--+-- 'policyArn', 'updateApp_policyArn' - The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+--+-- 'appArn', 'updateApp_appArn' - The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newUpdateApp ::+  -- | 'appArn'+  Prelude.Text ->+  UpdateApp+newUpdateApp pAppArn_ =+  UpdateApp'+    { assessmentSchedule = Prelude.Nothing,+      clearResiliencyPolicyArn = Prelude.Nothing,+      description = Prelude.Nothing,+      policyArn = Prelude.Nothing,+      appArn = pAppArn_+    }++-- | Assessment execution schedule with \'Daily\' or \'Disabled\' values.+updateApp_assessmentSchedule :: Lens.Lens' UpdateApp (Prelude.Maybe AppAssessmentScheduleType)+updateApp_assessmentSchedule = Lens.lens (\UpdateApp' {assessmentSchedule} -> assessmentSchedule) (\s@UpdateApp' {} a -> s {assessmentSchedule = a} :: UpdateApp)++-- | Specifies if the resiliency policy ARN should be cleared.+updateApp_clearResiliencyPolicyArn :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Bool)+updateApp_clearResiliencyPolicyArn = Lens.lens (\UpdateApp' {clearResiliencyPolicyArn} -> clearResiliencyPolicyArn) (\s@UpdateApp' {} a -> s {clearResiliencyPolicyArn = a} :: UpdateApp)++-- | The optional description for an app.+updateApp_description :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Text)+updateApp_description = Lens.lens (\UpdateApp' {description} -> description) (\s@UpdateApp' {} a -> s {description = a} :: UpdateApp)++-- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+updateApp_policyArn :: Lens.Lens' UpdateApp (Prelude.Maybe Prelude.Text)+updateApp_policyArn = Lens.lens (\UpdateApp' {policyArn} -> policyArn) (\s@UpdateApp' {} a -> s {policyArn = a} :: UpdateApp)++-- | The Amazon Resource Name (ARN) of the application. The format for this+-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+updateApp_appArn :: Lens.Lens' UpdateApp Prelude.Text+updateApp_appArn = Lens.lens (\UpdateApp' {appArn} -> appArn) (\s@UpdateApp' {} a -> s {appArn = a} :: UpdateApp)++instance Core.AWSRequest UpdateApp where+  type AWSResponse UpdateApp = UpdateAppResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateAppResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "app")+      )++instance Prelude.Hashable UpdateApp where+  hashWithSalt _salt UpdateApp' {..} =+    _salt+      `Prelude.hashWithSalt` assessmentSchedule+      `Prelude.hashWithSalt` clearResiliencyPolicyArn+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` policyArn+      `Prelude.hashWithSalt` appArn++instance Prelude.NFData UpdateApp where+  rnf UpdateApp' {..} =+    Prelude.rnf assessmentSchedule+      `Prelude.seq` Prelude.rnf clearResiliencyPolicyArn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf policyArn+      `Prelude.seq` Prelude.rnf appArn++instance Data.ToHeaders UpdateApp where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateApp where+  toJSON UpdateApp' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("assessmentSchedule" Data..=)+              Prelude.<$> assessmentSchedule,+            ("clearResiliencyPolicyArn" Data..=)+              Prelude.<$> clearResiliencyPolicyArn,+            ("description" Data..=) Prelude.<$> description,+            ("policyArn" Data..=) Prelude.<$> policyArn,+            Prelude.Just ("appArn" Data..= appArn)+          ]+      )++instance Data.ToPath UpdateApp where+  toPath = Prelude.const "/update-app"++instance Data.ToQuery UpdateApp where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAppResponse' smart constructor.+data UpdateAppResponse = UpdateAppResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The specified application, returned as an object with details including+    -- compliance status, creation time, description, resiliency score, and+    -- more.+    app :: App+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAppResponse' 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', 'updateAppResponse_httpStatus' - The response's http status code.+--+-- 'app', 'updateAppResponse_app' - The specified application, returned as an object with details including+-- compliance status, creation time, description, resiliency score, and+-- more.+newUpdateAppResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'app'+  App ->+  UpdateAppResponse+newUpdateAppResponse pHttpStatus_ pApp_ =+  UpdateAppResponse'+    { httpStatus = pHttpStatus_,+      app = pApp_+    }++-- | The response's http status code.+updateAppResponse_httpStatus :: Lens.Lens' UpdateAppResponse Prelude.Int+updateAppResponse_httpStatus = Lens.lens (\UpdateAppResponse' {httpStatus} -> httpStatus) (\s@UpdateAppResponse' {} a -> s {httpStatus = a} :: UpdateAppResponse)++-- | The specified application, returned as an object with details including+-- compliance status, creation time, description, resiliency score, and+-- more.+updateAppResponse_app :: Lens.Lens' UpdateAppResponse App+updateAppResponse_app = Lens.lens (\UpdateAppResponse' {app} -> app) (\s@UpdateAppResponse' {} a -> s {app = a} :: UpdateAppResponse)++instance Prelude.NFData UpdateAppResponse where+  rnf UpdateAppResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf app
+ gen/Amazonka/ResilienceHub/UpdateResiliencyPolicy.hs view
@@ -0,0 +1,271 @@+{-# 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.ResilienceHub.UpdateResiliencyPolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a resiliency policy.+module Amazonka.ResilienceHub.UpdateResiliencyPolicy+  ( -- * Creating a Request+    UpdateResiliencyPolicy (..),+    newUpdateResiliencyPolicy,++    -- * Request Lenses+    updateResiliencyPolicy_dataLocationConstraint,+    updateResiliencyPolicy_policy,+    updateResiliencyPolicy_policyDescription,+    updateResiliencyPolicy_policyName,+    updateResiliencyPolicy_tier,+    updateResiliencyPolicy_policyArn,++    -- * Destructuring the Response+    UpdateResiliencyPolicyResponse (..),+    newUpdateResiliencyPolicyResponse,++    -- * Response Lenses+    updateResiliencyPolicyResponse_httpStatus,+    updateResiliencyPolicyResponse_policy,+  )+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 Amazonka.ResilienceHub.Types+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateResiliencyPolicy' smart constructor.+data UpdateResiliencyPolicy = UpdateResiliencyPolicy'+  { -- | Specifies a high-level geographical location constraint for where your+    -- resilience policy data can be stored.+    dataLocationConstraint :: Prelude.Maybe DataLocationConstraint,+    -- | The type of resiliency policy to be created, including the recovery time+    -- objective (RTO) and recovery point objective (RPO) in seconds.+    policy :: Prelude.Maybe (Prelude.HashMap DisruptionType FailurePolicy),+    -- | The description for the policy.+    policyDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the policy+    policyName :: Prelude.Maybe Prelude.Text,+    -- | The tier for this resiliency policy, ranging from the highest severity+    -- (@MissionCritical@) to lowest (@NonCritical@).+    tier :: Prelude.Maybe ResiliencyPolicyTier,+    -- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+    -- this ARN is:+    -- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+    -- For more information about ARNs, see+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+    -- in the /AWS General Reference/.+    policyArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateResiliencyPolicy' 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:+--+-- 'dataLocationConstraint', 'updateResiliencyPolicy_dataLocationConstraint' - Specifies a high-level geographical location constraint for where your+-- resilience policy data can be stored.+--+-- 'policy', 'updateResiliencyPolicy_policy' - The type of resiliency policy to be created, including the recovery time+-- objective (RTO) and recovery point objective (RPO) in seconds.+--+-- 'policyDescription', 'updateResiliencyPolicy_policyDescription' - The description for the policy.+--+-- 'policyName', 'updateResiliencyPolicy_policyName' - The name of the policy+--+-- 'tier', 'updateResiliencyPolicy_tier' - The tier for this resiliency policy, ranging from the highest severity+-- (@MissionCritical@) to lowest (@NonCritical@).+--+-- 'policyArn', 'updateResiliencyPolicy_policyArn' - The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+newUpdateResiliencyPolicy ::+  -- | 'policyArn'+  Prelude.Text ->+  UpdateResiliencyPolicy+newUpdateResiliencyPolicy pPolicyArn_ =+  UpdateResiliencyPolicy'+    { dataLocationConstraint =+        Prelude.Nothing,+      policy = Prelude.Nothing,+      policyDescription = Prelude.Nothing,+      policyName = Prelude.Nothing,+      tier = Prelude.Nothing,+      policyArn = pPolicyArn_+    }++-- | Specifies a high-level geographical location constraint for where your+-- resilience policy data can be stored.+updateResiliencyPolicy_dataLocationConstraint :: Lens.Lens' UpdateResiliencyPolicy (Prelude.Maybe DataLocationConstraint)+updateResiliencyPolicy_dataLocationConstraint = Lens.lens (\UpdateResiliencyPolicy' {dataLocationConstraint} -> dataLocationConstraint) (\s@UpdateResiliencyPolicy' {} a -> s {dataLocationConstraint = a} :: UpdateResiliencyPolicy)++-- | The type of resiliency policy to be created, including the recovery time+-- objective (RTO) and recovery point objective (RPO) in seconds.+updateResiliencyPolicy_policy :: Lens.Lens' UpdateResiliencyPolicy (Prelude.Maybe (Prelude.HashMap DisruptionType FailurePolicy))+updateResiliencyPolicy_policy = Lens.lens (\UpdateResiliencyPolicy' {policy} -> policy) (\s@UpdateResiliencyPolicy' {} a -> s {policy = a} :: UpdateResiliencyPolicy) Prelude.. Lens.mapping Lens.coerced++-- | The description for the policy.+updateResiliencyPolicy_policyDescription :: Lens.Lens' UpdateResiliencyPolicy (Prelude.Maybe Prelude.Text)+updateResiliencyPolicy_policyDescription = Lens.lens (\UpdateResiliencyPolicy' {policyDescription} -> policyDescription) (\s@UpdateResiliencyPolicy' {} a -> s {policyDescription = a} :: UpdateResiliencyPolicy)++-- | The name of the policy+updateResiliencyPolicy_policyName :: Lens.Lens' UpdateResiliencyPolicy (Prelude.Maybe Prelude.Text)+updateResiliencyPolicy_policyName = Lens.lens (\UpdateResiliencyPolicy' {policyName} -> policyName) (\s@UpdateResiliencyPolicy' {} a -> s {policyName = a} :: UpdateResiliencyPolicy)++-- | The tier for this resiliency policy, ranging from the highest severity+-- (@MissionCritical@) to lowest (@NonCritical@).+updateResiliencyPolicy_tier :: Lens.Lens' UpdateResiliencyPolicy (Prelude.Maybe ResiliencyPolicyTier)+updateResiliencyPolicy_tier = Lens.lens (\UpdateResiliencyPolicy' {tier} -> tier) (\s@UpdateResiliencyPolicy' {} a -> s {tier = a} :: UpdateResiliencyPolicy)++-- | The Amazon Resource Name (ARN) of the resiliency policy. The format for+-- this ARN is:+-- arn:@partition@:resiliencehub:@region@:@account@:resiliency-policy\/@policy-id@.+-- For more information about ARNs, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>+-- in the /AWS General Reference/.+updateResiliencyPolicy_policyArn :: Lens.Lens' UpdateResiliencyPolicy Prelude.Text+updateResiliencyPolicy_policyArn = Lens.lens (\UpdateResiliencyPolicy' {policyArn} -> policyArn) (\s@UpdateResiliencyPolicy' {} a -> s {policyArn = a} :: UpdateResiliencyPolicy)++instance Core.AWSRequest UpdateResiliencyPolicy where+  type+    AWSResponse UpdateResiliencyPolicy =+      UpdateResiliencyPolicyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateResiliencyPolicyResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "policy")+      )++instance Prelude.Hashable UpdateResiliencyPolicy where+  hashWithSalt _salt UpdateResiliencyPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` dataLocationConstraint+      `Prelude.hashWithSalt` policy+      `Prelude.hashWithSalt` policyDescription+      `Prelude.hashWithSalt` policyName+      `Prelude.hashWithSalt` tier+      `Prelude.hashWithSalt` policyArn++instance Prelude.NFData UpdateResiliencyPolicy where+  rnf UpdateResiliencyPolicy' {..} =+    Prelude.rnf dataLocationConstraint+      `Prelude.seq` Prelude.rnf policy+      `Prelude.seq` Prelude.rnf policyDescription+      `Prelude.seq` Prelude.rnf policyName+      `Prelude.seq` Prelude.rnf tier+      `Prelude.seq` Prelude.rnf policyArn++instance Data.ToHeaders UpdateResiliencyPolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateResiliencyPolicy where+  toJSON UpdateResiliencyPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("dataLocationConstraint" Data..=)+              Prelude.<$> dataLocationConstraint,+            ("policy" Data..=) Prelude.<$> policy,+            ("policyDescription" Data..=)+              Prelude.<$> policyDescription,+            ("policyName" Data..=) Prelude.<$> policyName,+            ("tier" Data..=) Prelude.<$> tier,+            Prelude.Just ("policyArn" Data..= policyArn)+          ]+      )++instance Data.ToPath UpdateResiliencyPolicy where+  toPath = Prelude.const "/update-resiliency-policy"++instance Data.ToQuery UpdateResiliencyPolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateResiliencyPolicyResponse' smart constructor.+data UpdateResiliencyPolicyResponse = UpdateResiliencyPolicyResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The type of resiliency policy that was updated, including the recovery+    -- time objective (RTO) and recovery point objective (RPO) in seconds.+    policy :: ResiliencyPolicy+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateResiliencyPolicyResponse' 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', 'updateResiliencyPolicyResponse_httpStatus' - The response's http status code.+--+-- 'policy', 'updateResiliencyPolicyResponse_policy' - The type of resiliency policy that was updated, including the recovery+-- time objective (RTO) and recovery point objective (RPO) in seconds.+newUpdateResiliencyPolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'policy'+  ResiliencyPolicy ->+  UpdateResiliencyPolicyResponse+newUpdateResiliencyPolicyResponse+  pHttpStatus_+  pPolicy_ =+    UpdateResiliencyPolicyResponse'+      { httpStatus =+          pHttpStatus_,+        policy = pPolicy_+      }++-- | The response's http status code.+updateResiliencyPolicyResponse_httpStatus :: Lens.Lens' UpdateResiliencyPolicyResponse Prelude.Int+updateResiliencyPolicyResponse_httpStatus = Lens.lens (\UpdateResiliencyPolicyResponse' {httpStatus} -> httpStatus) (\s@UpdateResiliencyPolicyResponse' {} a -> s {httpStatus = a} :: UpdateResiliencyPolicyResponse)++-- | The type of resiliency policy that was updated, including the recovery+-- time objective (RTO) and recovery point objective (RPO) in seconds.+updateResiliencyPolicyResponse_policy :: Lens.Lens' UpdateResiliencyPolicyResponse ResiliencyPolicy+updateResiliencyPolicyResponse_policy = Lens.lens (\UpdateResiliencyPolicyResponse' {policy} -> policy) (\s@UpdateResiliencyPolicyResponse' {} a -> s {policy = a} :: UpdateResiliencyPolicyResponse)++instance+  Prelude.NFData+    UpdateResiliencyPolicyResponse+  where+  rnf UpdateResiliencyPolicyResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf policy
+ gen/Amazonka/ResilienceHub/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.ResilienceHub.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.ResilienceHub.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.ResilienceHub.Lens+import Amazonka.ResilienceHub.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.ResilienceHub+import Test.Amazonka.ResilienceHub.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "ResilienceHub"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/ResilienceHub.hs view
@@ -0,0 +1,818 @@+{-# 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.ResilienceHub+-- 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.ResilienceHub where++import Amazonka.ResilienceHub+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Amazonka.ResilienceHub.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"+--         [ requestAddDraftAppVersionResourceMappings $+--             newAddDraftAppVersionResourceMappings+--+--         , requestCreateApp $+--             newCreateApp+--+--         , requestCreateRecommendationTemplate $+--             newCreateRecommendationTemplate+--+--         , requestCreateResiliencyPolicy $+--             newCreateResiliencyPolicy+--+--         , requestDeleteApp $+--             newDeleteApp+--+--         , requestDeleteAppAssessment $+--             newDeleteAppAssessment+--+--         , requestDeleteRecommendationTemplate $+--             newDeleteRecommendationTemplate+--+--         , requestDeleteResiliencyPolicy $+--             newDeleteResiliencyPolicy+--+--         , requestDescribeApp $+--             newDescribeApp+--+--         , requestDescribeAppAssessment $+--             newDescribeAppAssessment+--+--         , requestDescribeAppVersionResourcesResolutionStatus $+--             newDescribeAppVersionResourcesResolutionStatus+--+--         , requestDescribeAppVersionTemplate $+--             newDescribeAppVersionTemplate+--+--         , requestDescribeDraftAppVersionResourcesImportStatus $+--             newDescribeDraftAppVersionResourcesImportStatus+--+--         , requestDescribeResiliencyPolicy $+--             newDescribeResiliencyPolicy+--+--         , requestImportResourcesToDraftAppVersion $+--             newImportResourcesToDraftAppVersion+--+--         , requestListAlarmRecommendations $+--             newListAlarmRecommendations+--+--         , requestListAppAssessments $+--             newListAppAssessments+--+--         , requestListAppComponentCompliances $+--             newListAppComponentCompliances+--+--         , requestListAppComponentRecommendations $+--             newListAppComponentRecommendations+--+--         , requestListAppVersionResourceMappings $+--             newListAppVersionResourceMappings+--+--         , requestListAppVersionResources $+--             newListAppVersionResources+--+--         , requestListAppVersions $+--             newListAppVersions+--+--         , requestListApps $+--             newListApps+--+--         , requestListRecommendationTemplates $+--             newListRecommendationTemplates+--+--         , requestListResiliencyPolicies $+--             newListResiliencyPolicies+--+--         , requestListSopRecommendations $+--             newListSopRecommendations+--+--         , requestListSuggestedResiliencyPolicies $+--             newListSuggestedResiliencyPolicies+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestListTestRecommendations $+--             newListTestRecommendations+--+--         , requestListUnsupportedAppVersionResources $+--             newListUnsupportedAppVersionResources+--+--         , requestPublishAppVersion $+--             newPublishAppVersion+--+--         , requestPutDraftAppVersionTemplate $+--             newPutDraftAppVersionTemplate+--+--         , requestRemoveDraftAppVersionResourceMappings $+--             newRemoveDraftAppVersionResourceMappings+--+--         , requestResolveAppVersionResources $+--             newResolveAppVersionResources+--+--         , requestStartAppAssessment $+--             newStartAppAssessment+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateApp $+--             newUpdateApp+--+--         , requestUpdateResiliencyPolicy $+--             newUpdateResiliencyPolicy+--+--           ]++--     , testGroup "response"+--         [ responseAddDraftAppVersionResourceMappings $+--             newAddDraftAppVersionResourceMappingsResponse+--+--         , responseCreateApp $+--             newCreateAppResponse+--+--         , responseCreateRecommendationTemplate $+--             newCreateRecommendationTemplateResponse+--+--         , responseCreateResiliencyPolicy $+--             newCreateResiliencyPolicyResponse+--+--         , responseDeleteApp $+--             newDeleteAppResponse+--+--         , responseDeleteAppAssessment $+--             newDeleteAppAssessmentResponse+--+--         , responseDeleteRecommendationTemplate $+--             newDeleteRecommendationTemplateResponse+--+--         , responseDeleteResiliencyPolicy $+--             newDeleteResiliencyPolicyResponse+--+--         , responseDescribeApp $+--             newDescribeAppResponse+--+--         , responseDescribeAppAssessment $+--             newDescribeAppAssessmentResponse+--+--         , responseDescribeAppVersionResourcesResolutionStatus $+--             newDescribeAppVersionResourcesResolutionStatusResponse+--+--         , responseDescribeAppVersionTemplate $+--             newDescribeAppVersionTemplateResponse+--+--         , responseDescribeDraftAppVersionResourcesImportStatus $+--             newDescribeDraftAppVersionResourcesImportStatusResponse+--+--         , responseDescribeResiliencyPolicy $+--             newDescribeResiliencyPolicyResponse+--+--         , responseImportResourcesToDraftAppVersion $+--             newImportResourcesToDraftAppVersionResponse+--+--         , responseListAlarmRecommendations $+--             newListAlarmRecommendationsResponse+--+--         , responseListAppAssessments $+--             newListAppAssessmentsResponse+--+--         , responseListAppComponentCompliances $+--             newListAppComponentCompliancesResponse+--+--         , responseListAppComponentRecommendations $+--             newListAppComponentRecommendationsResponse+--+--         , responseListAppVersionResourceMappings $+--             newListAppVersionResourceMappingsResponse+--+--         , responseListAppVersionResources $+--             newListAppVersionResourcesResponse+--+--         , responseListAppVersions $+--             newListAppVersionsResponse+--+--         , responseListApps $+--             newListAppsResponse+--+--         , responseListRecommendationTemplates $+--             newListRecommendationTemplatesResponse+--+--         , responseListResiliencyPolicies $+--             newListResiliencyPoliciesResponse+--+--         , responseListSopRecommendations $+--             newListSopRecommendationsResponse+--+--         , responseListSuggestedResiliencyPolicies $+--             newListSuggestedResiliencyPoliciesResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseListTestRecommendations $+--             newListTestRecommendationsResponse+--+--         , responseListUnsupportedAppVersionResources $+--             newListUnsupportedAppVersionResourcesResponse+--+--         , responsePublishAppVersion $+--             newPublishAppVersionResponse+--+--         , responsePutDraftAppVersionTemplate $+--             newPutDraftAppVersionTemplateResponse+--+--         , responseRemoveDraftAppVersionResourceMappings $+--             newRemoveDraftAppVersionResourceMappingsResponse+--+--         , responseResolveAppVersionResources $+--             newResolveAppVersionResourcesResponse+--+--         , responseStartAppAssessment $+--             newStartAppAssessmentResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateApp $+--             newUpdateAppResponse+--+--         , responseUpdateResiliencyPolicy $+--             newUpdateResiliencyPolicyResponse+--+--           ]+--     ]++-- Requests++requestAddDraftAppVersionResourceMappings :: AddDraftAppVersionResourceMappings -> TestTree+requestAddDraftAppVersionResourceMappings =+  req+    "AddDraftAppVersionResourceMappings"+    "fixture/AddDraftAppVersionResourceMappings.yaml"++requestCreateApp :: CreateApp -> TestTree+requestCreateApp =+  req+    "CreateApp"+    "fixture/CreateApp.yaml"++requestCreateRecommendationTemplate :: CreateRecommendationTemplate -> TestTree+requestCreateRecommendationTemplate =+  req+    "CreateRecommendationTemplate"+    "fixture/CreateRecommendationTemplate.yaml"++requestCreateResiliencyPolicy :: CreateResiliencyPolicy -> TestTree+requestCreateResiliencyPolicy =+  req+    "CreateResiliencyPolicy"+    "fixture/CreateResiliencyPolicy.yaml"++requestDeleteApp :: DeleteApp -> TestTree+requestDeleteApp =+  req+    "DeleteApp"+    "fixture/DeleteApp.yaml"++requestDeleteAppAssessment :: DeleteAppAssessment -> TestTree+requestDeleteAppAssessment =+  req+    "DeleteAppAssessment"+    "fixture/DeleteAppAssessment.yaml"++requestDeleteRecommendationTemplate :: DeleteRecommendationTemplate -> TestTree+requestDeleteRecommendationTemplate =+  req+    "DeleteRecommendationTemplate"+    "fixture/DeleteRecommendationTemplate.yaml"++requestDeleteResiliencyPolicy :: DeleteResiliencyPolicy -> TestTree+requestDeleteResiliencyPolicy =+  req+    "DeleteResiliencyPolicy"+    "fixture/DeleteResiliencyPolicy.yaml"++requestDescribeApp :: DescribeApp -> TestTree+requestDescribeApp =+  req+    "DescribeApp"+    "fixture/DescribeApp.yaml"++requestDescribeAppAssessment :: DescribeAppAssessment -> TestTree+requestDescribeAppAssessment =+  req+    "DescribeAppAssessment"+    "fixture/DescribeAppAssessment.yaml"++requestDescribeAppVersionResourcesResolutionStatus :: DescribeAppVersionResourcesResolutionStatus -> TestTree+requestDescribeAppVersionResourcesResolutionStatus =+  req+    "DescribeAppVersionResourcesResolutionStatus"+    "fixture/DescribeAppVersionResourcesResolutionStatus.yaml"++requestDescribeAppVersionTemplate :: DescribeAppVersionTemplate -> TestTree+requestDescribeAppVersionTemplate =+  req+    "DescribeAppVersionTemplate"+    "fixture/DescribeAppVersionTemplate.yaml"++requestDescribeDraftAppVersionResourcesImportStatus :: DescribeDraftAppVersionResourcesImportStatus -> TestTree+requestDescribeDraftAppVersionResourcesImportStatus =+  req+    "DescribeDraftAppVersionResourcesImportStatus"+    "fixture/DescribeDraftAppVersionResourcesImportStatus.yaml"++requestDescribeResiliencyPolicy :: DescribeResiliencyPolicy -> TestTree+requestDescribeResiliencyPolicy =+  req+    "DescribeResiliencyPolicy"+    "fixture/DescribeResiliencyPolicy.yaml"++requestImportResourcesToDraftAppVersion :: ImportResourcesToDraftAppVersion -> TestTree+requestImportResourcesToDraftAppVersion =+  req+    "ImportResourcesToDraftAppVersion"+    "fixture/ImportResourcesToDraftAppVersion.yaml"++requestListAlarmRecommendations :: ListAlarmRecommendations -> TestTree+requestListAlarmRecommendations =+  req+    "ListAlarmRecommendations"+    "fixture/ListAlarmRecommendations.yaml"++requestListAppAssessments :: ListAppAssessments -> TestTree+requestListAppAssessments =+  req+    "ListAppAssessments"+    "fixture/ListAppAssessments.yaml"++requestListAppComponentCompliances :: ListAppComponentCompliances -> TestTree+requestListAppComponentCompliances =+  req+    "ListAppComponentCompliances"+    "fixture/ListAppComponentCompliances.yaml"++requestListAppComponentRecommendations :: ListAppComponentRecommendations -> TestTree+requestListAppComponentRecommendations =+  req+    "ListAppComponentRecommendations"+    "fixture/ListAppComponentRecommendations.yaml"++requestListAppVersionResourceMappings :: ListAppVersionResourceMappings -> TestTree+requestListAppVersionResourceMappings =+  req+    "ListAppVersionResourceMappings"+    "fixture/ListAppVersionResourceMappings.yaml"++requestListAppVersionResources :: ListAppVersionResources -> TestTree+requestListAppVersionResources =+  req+    "ListAppVersionResources"+    "fixture/ListAppVersionResources.yaml"++requestListAppVersions :: ListAppVersions -> TestTree+requestListAppVersions =+  req+    "ListAppVersions"+    "fixture/ListAppVersions.yaml"++requestListApps :: ListApps -> TestTree+requestListApps =+  req+    "ListApps"+    "fixture/ListApps.yaml"++requestListRecommendationTemplates :: ListRecommendationTemplates -> TestTree+requestListRecommendationTemplates =+  req+    "ListRecommendationTemplates"+    "fixture/ListRecommendationTemplates.yaml"++requestListResiliencyPolicies :: ListResiliencyPolicies -> TestTree+requestListResiliencyPolicies =+  req+    "ListResiliencyPolicies"+    "fixture/ListResiliencyPolicies.yaml"++requestListSopRecommendations :: ListSopRecommendations -> TestTree+requestListSopRecommendations =+  req+    "ListSopRecommendations"+    "fixture/ListSopRecommendations.yaml"++requestListSuggestedResiliencyPolicies :: ListSuggestedResiliencyPolicies -> TestTree+requestListSuggestedResiliencyPolicies =+  req+    "ListSuggestedResiliencyPolicies"+    "fixture/ListSuggestedResiliencyPolicies.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestListTestRecommendations :: ListTestRecommendations -> TestTree+requestListTestRecommendations =+  req+    "ListTestRecommendations"+    "fixture/ListTestRecommendations.yaml"++requestListUnsupportedAppVersionResources :: ListUnsupportedAppVersionResources -> TestTree+requestListUnsupportedAppVersionResources =+  req+    "ListUnsupportedAppVersionResources"+    "fixture/ListUnsupportedAppVersionResources.yaml"++requestPublishAppVersion :: PublishAppVersion -> TestTree+requestPublishAppVersion =+  req+    "PublishAppVersion"+    "fixture/PublishAppVersion.yaml"++requestPutDraftAppVersionTemplate :: PutDraftAppVersionTemplate -> TestTree+requestPutDraftAppVersionTemplate =+  req+    "PutDraftAppVersionTemplate"+    "fixture/PutDraftAppVersionTemplate.yaml"++requestRemoveDraftAppVersionResourceMappings :: RemoveDraftAppVersionResourceMappings -> TestTree+requestRemoveDraftAppVersionResourceMappings =+  req+    "RemoveDraftAppVersionResourceMappings"+    "fixture/RemoveDraftAppVersionResourceMappings.yaml"++requestResolveAppVersionResources :: ResolveAppVersionResources -> TestTree+requestResolveAppVersionResources =+  req+    "ResolveAppVersionResources"+    "fixture/ResolveAppVersionResources.yaml"++requestStartAppAssessment :: StartAppAssessment -> TestTree+requestStartAppAssessment =+  req+    "StartAppAssessment"+    "fixture/StartAppAssessment.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateApp :: UpdateApp -> TestTree+requestUpdateApp =+  req+    "UpdateApp"+    "fixture/UpdateApp.yaml"++requestUpdateResiliencyPolicy :: UpdateResiliencyPolicy -> TestTree+requestUpdateResiliencyPolicy =+  req+    "UpdateResiliencyPolicy"+    "fixture/UpdateResiliencyPolicy.yaml"++-- Responses++responseAddDraftAppVersionResourceMappings :: AddDraftAppVersionResourceMappingsResponse -> TestTree+responseAddDraftAppVersionResourceMappings =+  res+    "AddDraftAppVersionResourceMappingsResponse"+    "fixture/AddDraftAppVersionResourceMappingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AddDraftAppVersionResourceMappings)++responseCreateApp :: CreateAppResponse -> TestTree+responseCreateApp =+  res+    "CreateAppResponse"+    "fixture/CreateAppResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateApp)++responseCreateRecommendationTemplate :: CreateRecommendationTemplateResponse -> TestTree+responseCreateRecommendationTemplate =+  res+    "CreateRecommendationTemplateResponse"+    "fixture/CreateRecommendationTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateRecommendationTemplate)++responseCreateResiliencyPolicy :: CreateResiliencyPolicyResponse -> TestTree+responseCreateResiliencyPolicy =+  res+    "CreateResiliencyPolicyResponse"+    "fixture/CreateResiliencyPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateResiliencyPolicy)++responseDeleteApp :: DeleteAppResponse -> TestTree+responseDeleteApp =+  res+    "DeleteAppResponse"+    "fixture/DeleteAppResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteApp)++responseDeleteAppAssessment :: DeleteAppAssessmentResponse -> TestTree+responseDeleteAppAssessment =+  res+    "DeleteAppAssessmentResponse"+    "fixture/DeleteAppAssessmentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAppAssessment)++responseDeleteRecommendationTemplate :: DeleteRecommendationTemplateResponse -> TestTree+responseDeleteRecommendationTemplate =+  res+    "DeleteRecommendationTemplateResponse"+    "fixture/DeleteRecommendationTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteRecommendationTemplate)++responseDeleteResiliencyPolicy :: DeleteResiliencyPolicyResponse -> TestTree+responseDeleteResiliencyPolicy =+  res+    "DeleteResiliencyPolicyResponse"+    "fixture/DeleteResiliencyPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteResiliencyPolicy)++responseDescribeApp :: DescribeAppResponse -> TestTree+responseDescribeApp =+  res+    "DescribeAppResponse"+    "fixture/DescribeAppResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeApp)++responseDescribeAppAssessment :: DescribeAppAssessmentResponse -> TestTree+responseDescribeAppAssessment =+  res+    "DescribeAppAssessmentResponse"+    "fixture/DescribeAppAssessmentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeAppAssessment)++responseDescribeAppVersionResourcesResolutionStatus :: DescribeAppVersionResourcesResolutionStatusResponse -> TestTree+responseDescribeAppVersionResourcesResolutionStatus =+  res+    "DescribeAppVersionResourcesResolutionStatusResponse"+    "fixture/DescribeAppVersionResourcesResolutionStatusResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeAppVersionResourcesResolutionStatus)++responseDescribeAppVersionTemplate :: DescribeAppVersionTemplateResponse -> TestTree+responseDescribeAppVersionTemplate =+  res+    "DescribeAppVersionTemplateResponse"+    "fixture/DescribeAppVersionTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeAppVersionTemplate)++responseDescribeDraftAppVersionResourcesImportStatus :: DescribeDraftAppVersionResourcesImportStatusResponse -> TestTree+responseDescribeDraftAppVersionResourcesImportStatus =+  res+    "DescribeDraftAppVersionResourcesImportStatusResponse"+    "fixture/DescribeDraftAppVersionResourcesImportStatusResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDraftAppVersionResourcesImportStatus)++responseDescribeResiliencyPolicy :: DescribeResiliencyPolicyResponse -> TestTree+responseDescribeResiliencyPolicy =+  res+    "DescribeResiliencyPolicyResponse"+    "fixture/DescribeResiliencyPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeResiliencyPolicy)++responseImportResourcesToDraftAppVersion :: ImportResourcesToDraftAppVersionResponse -> TestTree+responseImportResourcesToDraftAppVersion =+  res+    "ImportResourcesToDraftAppVersionResponse"+    "fixture/ImportResourcesToDraftAppVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ImportResourcesToDraftAppVersion)++responseListAlarmRecommendations :: ListAlarmRecommendationsResponse -> TestTree+responseListAlarmRecommendations =+  res+    "ListAlarmRecommendationsResponse"+    "fixture/ListAlarmRecommendationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAlarmRecommendations)++responseListAppAssessments :: ListAppAssessmentsResponse -> TestTree+responseListAppAssessments =+  res+    "ListAppAssessmentsResponse"+    "fixture/ListAppAssessmentsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAppAssessments)++responseListAppComponentCompliances :: ListAppComponentCompliancesResponse -> TestTree+responseListAppComponentCompliances =+  res+    "ListAppComponentCompliancesResponse"+    "fixture/ListAppComponentCompliancesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAppComponentCompliances)++responseListAppComponentRecommendations :: ListAppComponentRecommendationsResponse -> TestTree+responseListAppComponentRecommendations =+  res+    "ListAppComponentRecommendationsResponse"+    "fixture/ListAppComponentRecommendationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAppComponentRecommendations)++responseListAppVersionResourceMappings :: ListAppVersionResourceMappingsResponse -> TestTree+responseListAppVersionResourceMappings =+  res+    "ListAppVersionResourceMappingsResponse"+    "fixture/ListAppVersionResourceMappingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAppVersionResourceMappings)++responseListAppVersionResources :: ListAppVersionResourcesResponse -> TestTree+responseListAppVersionResources =+  res+    "ListAppVersionResourcesResponse"+    "fixture/ListAppVersionResourcesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAppVersionResources)++responseListAppVersions :: ListAppVersionsResponse -> TestTree+responseListAppVersions =+  res+    "ListAppVersionsResponse"+    "fixture/ListAppVersionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAppVersions)++responseListApps :: ListAppsResponse -> TestTree+responseListApps =+  res+    "ListAppsResponse"+    "fixture/ListAppsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListApps)++responseListRecommendationTemplates :: ListRecommendationTemplatesResponse -> TestTree+responseListRecommendationTemplates =+  res+    "ListRecommendationTemplatesResponse"+    "fixture/ListRecommendationTemplatesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListRecommendationTemplates)++responseListResiliencyPolicies :: ListResiliencyPoliciesResponse -> TestTree+responseListResiliencyPolicies =+  res+    "ListResiliencyPoliciesResponse"+    "fixture/ListResiliencyPoliciesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListResiliencyPolicies)++responseListSopRecommendations :: ListSopRecommendationsResponse -> TestTree+responseListSopRecommendations =+  res+    "ListSopRecommendationsResponse"+    "fixture/ListSopRecommendationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSopRecommendations)++responseListSuggestedResiliencyPolicies :: ListSuggestedResiliencyPoliciesResponse -> TestTree+responseListSuggestedResiliencyPolicies =+  res+    "ListSuggestedResiliencyPoliciesResponse"+    "fixture/ListSuggestedResiliencyPoliciesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSuggestedResiliencyPolicies)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListTestRecommendations :: ListTestRecommendationsResponse -> TestTree+responseListTestRecommendations =+  res+    "ListTestRecommendationsResponse"+    "fixture/ListTestRecommendationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTestRecommendations)++responseListUnsupportedAppVersionResources :: ListUnsupportedAppVersionResourcesResponse -> TestTree+responseListUnsupportedAppVersionResources =+  res+    "ListUnsupportedAppVersionResourcesResponse"+    "fixture/ListUnsupportedAppVersionResourcesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListUnsupportedAppVersionResources)++responsePublishAppVersion :: PublishAppVersionResponse -> TestTree+responsePublishAppVersion =+  res+    "PublishAppVersionResponse"+    "fixture/PublishAppVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PublishAppVersion)++responsePutDraftAppVersionTemplate :: PutDraftAppVersionTemplateResponse -> TestTree+responsePutDraftAppVersionTemplate =+  res+    "PutDraftAppVersionTemplateResponse"+    "fixture/PutDraftAppVersionTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutDraftAppVersionTemplate)++responseRemoveDraftAppVersionResourceMappings :: RemoveDraftAppVersionResourceMappingsResponse -> TestTree+responseRemoveDraftAppVersionResourceMappings =+  res+    "RemoveDraftAppVersionResourceMappingsResponse"+    "fixture/RemoveDraftAppVersionResourceMappingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RemoveDraftAppVersionResourceMappings)++responseResolveAppVersionResources :: ResolveAppVersionResourcesResponse -> TestTree+responseResolveAppVersionResources =+  res+    "ResolveAppVersionResourcesResponse"+    "fixture/ResolveAppVersionResourcesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ResolveAppVersionResources)++responseStartAppAssessment :: StartAppAssessmentResponse -> TestTree+responseStartAppAssessment =+  res+    "StartAppAssessmentResponse"+    "fixture/StartAppAssessmentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartAppAssessment)++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)++responseUpdateApp :: UpdateAppResponse -> TestTree+responseUpdateApp =+  res+    "UpdateAppResponse"+    "fixture/UpdateAppResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateApp)++responseUpdateResiliencyPolicy :: UpdateResiliencyPolicyResponse -> TestTree+responseUpdateResiliencyPolicy =+  res+    "UpdateResiliencyPolicyResponse"+    "fixture/UpdateResiliencyPolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateResiliencyPolicy)
+ test/Test/Amazonka/ResilienceHub.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.ResilienceHub+-- 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.ResilienceHub+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/ResilienceHub/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.ResilienceHub.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.ResilienceHub.Internal where