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 +367/−0
- README.md +44/−0
- amazonka-resiliencehub.cabal +176/−0
- fixture/AddDraftAppVersionResourceMappings.yaml +10/−0
- fixture/AddDraftAppVersionResourceMappingsResponse.proto +0/−0
- fixture/CreateApp.yaml +10/−0
- fixture/CreateAppResponse.proto +0/−0
- fixture/CreateRecommendationTemplate.yaml +10/−0
- fixture/CreateRecommendationTemplateResponse.proto +0/−0
- fixture/CreateResiliencyPolicy.yaml +10/−0
- fixture/CreateResiliencyPolicyResponse.proto +0/−0
- fixture/DeleteApp.yaml +10/−0
- fixture/DeleteAppAssessment.yaml +10/−0
- fixture/DeleteAppAssessmentResponse.proto +0/−0
- fixture/DeleteAppResponse.proto +0/−0
- fixture/DeleteRecommendationTemplate.yaml +10/−0
- fixture/DeleteRecommendationTemplateResponse.proto +0/−0
- fixture/DeleteResiliencyPolicy.yaml +10/−0
- fixture/DeleteResiliencyPolicyResponse.proto +0/−0
- fixture/DescribeApp.yaml +10/−0
- fixture/DescribeAppAssessment.yaml +10/−0
- fixture/DescribeAppAssessmentResponse.proto +0/−0
- fixture/DescribeAppResponse.proto +0/−0
- fixture/DescribeAppVersionResourcesResolutionStatus.yaml +10/−0
- fixture/DescribeAppVersionResourcesResolutionStatusResponse.proto +0/−0
- fixture/DescribeAppVersionTemplate.yaml +10/−0
- fixture/DescribeAppVersionTemplateResponse.proto +0/−0
- fixture/DescribeDraftAppVersionResourcesImportStatus.yaml +10/−0
- fixture/DescribeDraftAppVersionResourcesImportStatusResponse.proto +0/−0
- fixture/DescribeResiliencyPolicy.yaml +10/−0
- fixture/DescribeResiliencyPolicyResponse.proto +0/−0
- fixture/ImportResourcesToDraftAppVersion.yaml +10/−0
- fixture/ImportResourcesToDraftAppVersionResponse.proto +0/−0
- fixture/ListAlarmRecommendations.yaml +10/−0
- fixture/ListAlarmRecommendationsResponse.proto +0/−0
- fixture/ListAppAssessments.yaml +10/−0
- fixture/ListAppAssessmentsResponse.proto +0/−0
- fixture/ListAppComponentCompliances.yaml +10/−0
- fixture/ListAppComponentCompliancesResponse.proto +0/−0
- fixture/ListAppComponentRecommendations.yaml +10/−0
- fixture/ListAppComponentRecommendationsResponse.proto +0/−0
- fixture/ListAppVersionResourceMappings.yaml +10/−0
- fixture/ListAppVersionResourceMappingsResponse.proto +0/−0
- fixture/ListAppVersionResources.yaml +10/−0
- fixture/ListAppVersionResourcesResponse.proto +0/−0
- fixture/ListAppVersions.yaml +10/−0
- fixture/ListAppVersionsResponse.proto +0/−0
- fixture/ListApps.yaml +10/−0
- fixture/ListAppsResponse.proto +0/−0
- fixture/ListRecommendationTemplates.yaml +10/−0
- fixture/ListRecommendationTemplatesResponse.proto +0/−0
- fixture/ListResiliencyPolicies.yaml +10/−0
- fixture/ListResiliencyPoliciesResponse.proto +0/−0
- fixture/ListSopRecommendations.yaml +10/−0
- fixture/ListSopRecommendationsResponse.proto +0/−0
- fixture/ListSuggestedResiliencyPolicies.yaml +10/−0
- fixture/ListSuggestedResiliencyPoliciesResponse.proto +0/−0
- fixture/ListTagsForResource.yaml +10/−0
- fixture/ListTagsForResourceResponse.proto +0/−0
- fixture/ListTestRecommendations.yaml +10/−0
- fixture/ListTestRecommendationsResponse.proto +0/−0
- fixture/ListUnsupportedAppVersionResources.yaml +10/−0
- fixture/ListUnsupportedAppVersionResourcesResponse.proto +0/−0
- fixture/PublishAppVersion.yaml +10/−0
- fixture/PublishAppVersionResponse.proto +0/−0
- fixture/PutDraftAppVersionTemplate.yaml +10/−0
- fixture/PutDraftAppVersionTemplateResponse.proto +0/−0
- fixture/RemoveDraftAppVersionResourceMappings.yaml +10/−0
- fixture/RemoveDraftAppVersionResourceMappingsResponse.proto +0/−0
- fixture/ResolveAppVersionResources.yaml +10/−0
- fixture/ResolveAppVersionResourcesResponse.proto +0/−0
- fixture/StartAppAssessment.yaml +10/−0
- fixture/StartAppAssessmentResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UpdateApp.yaml +10/−0
- fixture/UpdateAppResponse.proto +0/−0
- fixture/UpdateResiliencyPolicy.yaml +10/−0
- fixture/UpdateResiliencyPolicyResponse.proto +0/−0
- gen/Amazonka/ResilienceHub.hs +552/−0
- gen/Amazonka/ResilienceHub/AddDraftAppVersionResourceMappings.hs +295/−0
- gen/Amazonka/ResilienceHub/CreateApp.hs +276/−0
- gen/Amazonka/ResilienceHub/CreateRecommendationTemplate.hs +358/−0
- gen/Amazonka/ResilienceHub/CreateResiliencyPolicy.hs +280/−0
- gen/Amazonka/ResilienceHub/DeleteApp.hs +225/−0
- gen/Amazonka/ResilienceHub/DeleteAppAssessment.hs +239/−0
- gen/Amazonka/ResilienceHub/DeleteRecommendationTemplate.hs +222/−0
- gen/Amazonka/ResilienceHub/DeleteResiliencyPolicy.hs +227/−0
- gen/Amazonka/ResilienceHub/DescribeApp.hs +181/−0
- gen/Amazonka/ResilienceHub/DescribeAppAssessment.hs +198/−0
- gen/Amazonka/ResilienceHub/DescribeAppVersionResourcesResolutionStatus.hs +321/−0
- gen/Amazonka/ResilienceHub/DescribeAppVersionTemplate.hs +246/−0
- gen/Amazonka/ResilienceHub/DescribeDraftAppVersionResourcesImportStatus.hs +289/−0
- gen/Amazonka/ResilienceHub/DescribeResiliencyPolicy.hs +199/−0
- gen/Amazonka/ResilienceHub/ImportResourcesToDraftAppVersion.hs +310/−0
- gen/Amazonka/ResilienceHub/Lens.hs +649/−0
- gen/Amazonka/ResilienceHub/ListAlarmRecommendations.hs +248/−0
- gen/Amazonka/ResilienceHub/ListAppAssessments.hs +306/−0
- gen/Amazonka/ResilienceHub/ListAppComponentCompliances.hs +246/−0
- gen/Amazonka/ResilienceHub/ListAppComponentRecommendations.hs +262/−0
- gen/Amazonka/ResilienceHub/ListAppVersionResourceMappings.hs +282/−0
- gen/Amazonka/ResilienceHub/ListAppVersionResources.hs +279/−0
- gen/Amazonka/ResilienceHub/ListAppVersions.hs +228/−0
- gen/Amazonka/ResilienceHub/ListApps.hs +231/−0
- gen/Amazonka/ResilienceHub/ListRecommendationTemplates.hs +293/−0
- gen/Amazonka/ResilienceHub/ListResiliencyPolicies.hs +216/−0
- gen/Amazonka/ResilienceHub/ListSopRecommendations.hs +243/−0
- gen/Amazonka/ResilienceHub/ListSuggestedResiliencyPolicies.hs +221/−0
- gen/Amazonka/ResilienceHub/ListTagsForResource.hs +165/−0
- gen/Amazonka/ResilienceHub/ListTestRecommendations.hs +239/−0
- gen/Amazonka/ResilienceHub/ListUnsupportedAppVersionResources.hs +309/−0
- gen/Amazonka/ResilienceHub/PublishAppVersion.hs +202/−0
- gen/Amazonka/ResilienceHub/PutDraftAppVersionTemplate.hs +228/−0
- gen/Amazonka/ResilienceHub/RemoveDraftAppVersionResourceMappings.hs +313/−0
- gen/Amazonka/ResilienceHub/ResolveAppVersionResources.hs +261/−0
- gen/Amazonka/ResilienceHub/StartAppAssessment.hs +254/−0
- gen/Amazonka/ResilienceHub/TagResource.hs +166/−0
- gen/Amazonka/ResilienceHub/Types.hs +591/−0
- gen/Amazonka/ResilienceHub/Types/AlarmRecommendation.hs +171/−0
- gen/Amazonka/ResilienceHub/Types/AlarmType.hs +86/−0
- gen/Amazonka/ResilienceHub/Types/App.hs +243/−0
- gen/Amazonka/ResilienceHub/Types/AppAssessment.hs +303/−0
- gen/Amazonka/ResilienceHub/Types/AppAssessmentScheduleType.hs +71/−0
- gen/Amazonka/ResilienceHub/Types/AppAssessmentSummary.hs +241/−0
- gen/Amazonka/ResilienceHub/Types/AppComplianceStatusType.hs +81/−0
- gen/Amazonka/ResilienceHub/Types/AppComponent.hs +84/−0
- gen/Amazonka/ResilienceHub/Types/AppComponentCompliance.hs +142/−0
- gen/Amazonka/ResilienceHub/Types/AppStatusType.hs +71/−0
- gen/Amazonka/ResilienceHub/Types/AppSummary.hs +177/−0
- gen/Amazonka/ResilienceHub/Types/AppVersionSummary.hs +70/−0
- gen/Amazonka/ResilienceHub/Types/AssessmentInvoker.hs +71/−0
- gen/Amazonka/ResilienceHub/Types/AssessmentStatus.hs +81/−0
- gen/Amazonka/ResilienceHub/Types/ComplianceStatus.hs +71/−0
- gen/Amazonka/ResilienceHub/Types/ComponentRecommendation.hs +110/−0
- gen/Amazonka/ResilienceHub/Types/ConfigRecommendation.hs +208/−0
- gen/Amazonka/ResilienceHub/Types/ConfigRecommendationOptimizationType.hs +91/−0
- gen/Amazonka/ResilienceHub/Types/Cost.hs +103/−0
- gen/Amazonka/ResilienceHub/Types/CostFrequency.hs +81/−0
- gen/Amazonka/ResilienceHub/Types/DataLocationConstraint.hs +76/−0
- gen/Amazonka/ResilienceHub/Types/DisruptionCompliance.hs +184/−0
- gen/Amazonka/ResilienceHub/Types/DisruptionType.hs +81/−0
- gen/Amazonka/ResilienceHub/Types/EstimatedCostTier.hs +81/−0
- gen/Amazonka/ResilienceHub/Types/FailurePolicy.hs +97/−0
- gen/Amazonka/ResilienceHub/Types/HaArchitecture.hs +86/−0
- gen/Amazonka/ResilienceHub/Types/LogicalResourceId.hs +111/−0
- gen/Amazonka/ResilienceHub/Types/PhysicalIdentifierType.hs +71/−0
- gen/Amazonka/ResilienceHub/Types/PhysicalResource.hs +134/−0
- gen/Amazonka/ResilienceHub/Types/PhysicalResourceId.hs +142/−0
- gen/Amazonka/ResilienceHub/Types/RecommendationComplianceStatus.hs +76/−0
- gen/Amazonka/ResilienceHub/Types/RecommendationDisruptionCompliance.hs +147/−0
- gen/Amazonka/ResilienceHub/Types/RecommendationItem.hs +109/−0
- gen/Amazonka/ResilienceHub/Types/RecommendationTemplate.hs +331/−0
- gen/Amazonka/ResilienceHub/Types/RecommendationTemplateStatus.hs +81/−0
- gen/Amazonka/ResilienceHub/Types/RenderRecommendationType.hs +76/−0
- gen/Amazonka/ResilienceHub/Types/ResiliencyPolicy.hs +197/−0
- gen/Amazonka/ResilienceHub/Types/ResiliencyPolicyTier.hs +86/−0
- gen/Amazonka/ResilienceHub/Types/ResiliencyScore.hs +91/−0
- gen/Amazonka/ResilienceHub/Types/ResourceError.hs +96/−0
- gen/Amazonka/ResilienceHub/Types/ResourceErrorsDetails.hs +92/−0
- gen/Amazonka/ResilienceHub/Types/ResourceImportStatusType.hs +81/−0
- gen/Amazonka/ResilienceHub/Types/ResourceMapping.hs +221/−0
- gen/Amazonka/ResilienceHub/Types/ResourceMappingType.hs +86/−0
- gen/Amazonka/ResilienceHub/Types/ResourceResolutionStatusType.hs +81/−0
- gen/Amazonka/ResilienceHub/Types/S3Location.hs +83/−0
- gen/Amazonka/ResilienceHub/Types/SopRecommendation.hs +168/−0
- gen/Amazonka/ResilienceHub/Types/SopServiceType.hs +66/−0
- gen/Amazonka/ResilienceHub/Types/TemplateFormat.hs +71/−0
- gen/Amazonka/ResilienceHub/Types/TerraformSource.hs +79/−0
- gen/Amazonka/ResilienceHub/Types/TestRecommendation.hs +201/−0
- gen/Amazonka/ResilienceHub/Types/TestRisk.hs +76/−0
- gen/Amazonka/ResilienceHub/Types/TestType.hs +81/−0
- gen/Amazonka/ResilienceHub/Types/UnsupportedResource.hs +108/−0
- gen/Amazonka/ResilienceHub/UntagResource.hs +166/−0
- gen/Amazonka/ResilienceHub/UpdateApp.hs +255/−0
- gen/Amazonka/ResilienceHub/UpdateResiliencyPolicy.hs +271/−0
- gen/Amazonka/ResilienceHub/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/Gen/ResilienceHub.hs +818/−0
- test/Test/Amazonka/ResilienceHub.hs +20/−0
- test/Test/Amazonka/ResilienceHub/Internal.hs +8/−0
+ 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