amazonka-route53-recovery-control-config (empty) → 2.0
raw patch · 95 files changed
+8764/−0 lines, 95 filesdep +amazonka-coredep +amazonka-route53-recovery-control-configdep +amazonka-test
Dependencies added: amazonka-core, amazonka-route53-recovery-control-config, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-route53-recovery-control-config.cabal +120/−0
- fixture/CreateCluster.yaml +10/−0
- fixture/CreateClusterResponse.proto +0/−0
- fixture/CreateControlPanel.yaml +10/−0
- fixture/CreateControlPanelResponse.proto +0/−0
- fixture/CreateRoutingControl.yaml +10/−0
- fixture/CreateRoutingControlResponse.proto +0/−0
- fixture/CreateSafetyRule.yaml +10/−0
- fixture/CreateSafetyRuleResponse.proto +0/−0
- fixture/DeleteCluster.yaml +10/−0
- fixture/DeleteClusterResponse.proto +0/−0
- fixture/DeleteControlPanel.yaml +10/−0
- fixture/DeleteControlPanelResponse.proto +0/−0
- fixture/DeleteRoutingControl.yaml +10/−0
- fixture/DeleteRoutingControlResponse.proto +0/−0
- fixture/DeleteSafetyRule.yaml +10/−0
- fixture/DeleteSafetyRuleResponse.proto +0/−0
- fixture/DescribeCluster.yaml +10/−0
- fixture/DescribeClusterResponse.proto +0/−0
- fixture/DescribeControlPanel.yaml +10/−0
- fixture/DescribeControlPanelResponse.proto +0/−0
- fixture/DescribeRoutingControl.yaml +10/−0
- fixture/DescribeRoutingControlResponse.proto +0/−0
- fixture/DescribeSafetyRule.yaml +10/−0
- fixture/DescribeSafetyRuleResponse.proto +0/−0
- fixture/ListAssociatedRoute53HealthChecks.yaml +10/−0
- fixture/ListAssociatedRoute53HealthChecksResponse.proto +0/−0
- fixture/ListClusters.yaml +10/−0
- fixture/ListClustersResponse.proto +0/−0
- fixture/ListControlPanels.yaml +10/−0
- fixture/ListControlPanelsResponse.proto +0/−0
- fixture/ListRoutingControls.yaml +10/−0
- fixture/ListRoutingControlsResponse.proto +0/−0
- fixture/ListSafetyRules.yaml +10/−0
- fixture/ListSafetyRulesResponse.proto +0/−0
- fixture/ListTagsForResource.yaml +10/−0
- fixture/ListTagsForResourceResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UpdateControlPanel.yaml +10/−0
- fixture/UpdateControlPanelResponse.proto +0/−0
- fixture/UpdateRoutingControl.yaml +10/−0
- fixture/UpdateRoutingControlResponse.proto +0/−0
- fixture/UpdateSafetyRule.yaml +10/−0
- fixture/UpdateSafetyRuleResponse.proto +0/−0
- gen/Amazonka/Route53RecoveryControlConfig.hs +316/−0
- gen/Amazonka/Route53RecoveryControlConfig/CreateCluster.hs +207/−0
- gen/Amazonka/Route53RecoveryControlConfig/CreateControlPanel.hs +224/−0
- gen/Amazonka/Route53RecoveryControlConfig/CreateRoutingControl.hs +237/−0
- gen/Amazonka/Route53RecoveryControlConfig/CreateSafetyRule.hs +245/−0
- gen/Amazonka/Route53RecoveryControlConfig/DeleteCluster.hs +143/−0
- gen/Amazonka/Route53RecoveryControlConfig/DeleteControlPanel.hs +151/−0
- gen/Amazonka/Route53RecoveryControlConfig/DeleteRoutingControl.hs +154/−0
- gen/Amazonka/Route53RecoveryControlConfig/DeleteSafetyRule.hs +149/−0
- gen/Amazonka/Route53RecoveryControlConfig/DescribeCluster.hs +158/−0
- gen/Amazonka/Route53RecoveryControlConfig/DescribeControlPanel.hs +163/−0
- gen/Amazonka/Route53RecoveryControlConfig/DescribeRoutingControl.hs +173/−0
- gen/Amazonka/Route53RecoveryControlConfig/DescribeSafetyRule.hs +175/−0
- gen/Amazonka/Route53RecoveryControlConfig/Lens.hs +274/−0
- gen/Amazonka/Route53RecoveryControlConfig/ListAssociatedRoute53HealthChecks.hs +260/−0
- gen/Amazonka/Route53RecoveryControlConfig/ListClusters.hs +208/−0
- gen/Amazonka/Route53RecoveryControlConfig/ListControlPanels.hs +224/−0
- gen/Amazonka/Route53RecoveryControlConfig/ListRoutingControls.hs +237/−0
- gen/Amazonka/Route53RecoveryControlConfig/ListSafetyRules.hs +231/−0
- gen/Amazonka/Route53RecoveryControlConfig/ListTagsForResource.hs +159/−0
- gen/Amazonka/Route53RecoveryControlConfig/TagResource.hs +165/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types.hs +290/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types/AssertionRule.hs +215/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types/AssertionRuleUpdate.hs +120/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types/Cluster.hs +130/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types/ClusterEndpoint.hs +97/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types/ControlPanel.hs +155/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types/GatingRule.hs +234/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types/GatingRuleUpdate.hs +119/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types/NewAssertionRule.hs +171/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types/NewGatingRule.hs +195/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types/RoutingControl.hs +117/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types/Rule.hs +134/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types/RuleConfig.hs +124/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types/RuleType.hs +87/−0
- gen/Amazonka/Route53RecoveryControlConfig/Types/Status.hs +82/−0
- gen/Amazonka/Route53RecoveryControlConfig/UntagResource.hs +161/−0
- gen/Amazonka/Route53RecoveryControlConfig/UpdateControlPanel.hs +192/−0
- gen/Amazonka/Route53RecoveryControlConfig/UpdateRoutingControl.hs +194/−0
- gen/Amazonka/Route53RecoveryControlConfig/UpdateSafetyRule.hs +201/−0
- gen/Amazonka/Route53RecoveryControlConfig/Waiters.hs +183/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/Gen/Route53RecoveryControlConfig.hs +498/−0
- test/Test/Amazonka/Route53RecoveryControlConfig.hs +20/−0
- test/Test/Amazonka/Route53RecoveryControlConfig/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 Route53 Recovery Control Config SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-11-02@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-route53-recovery-control-config)+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.Route53RecoveryControlConfig](http://hackage.haskell.org/package/amazonka-route53-recovery-control-config/docs/Amazonka-Route53RecoveryControlConfig.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-route53-recovery-control-config` 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-route53-recovery-control-config.cabal view
@@ -0,0 +1,120 @@+cabal-version: 2.2+name: amazonka-route53-recovery-control-config+version: 2.0+synopsis: Amazon Route53 Recovery Control Config 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-11-02@ 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.Route53RecoveryControlConfig.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.Route53RecoveryControlConfig" 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-route53-recovery-control-config++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.Route53RecoveryControlConfig+ Amazonka.Route53RecoveryControlConfig.CreateCluster+ Amazonka.Route53RecoveryControlConfig.CreateControlPanel+ Amazonka.Route53RecoveryControlConfig.CreateRoutingControl+ Amazonka.Route53RecoveryControlConfig.CreateSafetyRule+ Amazonka.Route53RecoveryControlConfig.DeleteCluster+ Amazonka.Route53RecoveryControlConfig.DeleteControlPanel+ Amazonka.Route53RecoveryControlConfig.DeleteRoutingControl+ Amazonka.Route53RecoveryControlConfig.DeleteSafetyRule+ Amazonka.Route53RecoveryControlConfig.DescribeCluster+ Amazonka.Route53RecoveryControlConfig.DescribeControlPanel+ Amazonka.Route53RecoveryControlConfig.DescribeRoutingControl+ Amazonka.Route53RecoveryControlConfig.DescribeSafetyRule+ Amazonka.Route53RecoveryControlConfig.Lens+ Amazonka.Route53RecoveryControlConfig.ListAssociatedRoute53HealthChecks+ Amazonka.Route53RecoveryControlConfig.ListClusters+ Amazonka.Route53RecoveryControlConfig.ListControlPanels+ Amazonka.Route53RecoveryControlConfig.ListRoutingControls+ Amazonka.Route53RecoveryControlConfig.ListSafetyRules+ Amazonka.Route53RecoveryControlConfig.ListTagsForResource+ Amazonka.Route53RecoveryControlConfig.TagResource+ Amazonka.Route53RecoveryControlConfig.Types+ Amazonka.Route53RecoveryControlConfig.Types.AssertionRule+ Amazonka.Route53RecoveryControlConfig.Types.AssertionRuleUpdate+ Amazonka.Route53RecoveryControlConfig.Types.Cluster+ Amazonka.Route53RecoveryControlConfig.Types.ClusterEndpoint+ Amazonka.Route53RecoveryControlConfig.Types.ControlPanel+ Amazonka.Route53RecoveryControlConfig.Types.GatingRule+ Amazonka.Route53RecoveryControlConfig.Types.GatingRuleUpdate+ Amazonka.Route53RecoveryControlConfig.Types.NewAssertionRule+ Amazonka.Route53RecoveryControlConfig.Types.NewGatingRule+ Amazonka.Route53RecoveryControlConfig.Types.RoutingControl+ Amazonka.Route53RecoveryControlConfig.Types.Rule+ Amazonka.Route53RecoveryControlConfig.Types.RuleConfig+ Amazonka.Route53RecoveryControlConfig.Types.RuleType+ Amazonka.Route53RecoveryControlConfig.Types.Status+ Amazonka.Route53RecoveryControlConfig.UntagResource+ Amazonka.Route53RecoveryControlConfig.UpdateControlPanel+ Amazonka.Route53RecoveryControlConfig.UpdateRoutingControl+ Amazonka.Route53RecoveryControlConfig.UpdateSafetyRule+ Amazonka.Route53RecoveryControlConfig.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-route53-recovery-control-config-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.Route53RecoveryControlConfig+ Test.Amazonka.Route53RecoveryControlConfig+ Test.Amazonka.Route53RecoveryControlConfig.Internal++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-route53-recovery-control-config+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/CreateCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/CreateClusterResponse.proto view
+ fixture/CreateControlPanel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/CreateControlPanelResponse.proto view
+ fixture/CreateRoutingControl.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/CreateRoutingControlResponse.proto view
+ fixture/CreateSafetyRule.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/CreateSafetyRuleResponse.proto view
+ fixture/DeleteCluster.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/DeleteClusterResponse.proto view
+ fixture/DeleteControlPanel.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/DeleteControlPanelResponse.proto view
+ fixture/DeleteRoutingControl.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/DeleteRoutingControlResponse.proto view
+ fixture/DeleteSafetyRule.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/DeleteSafetyRuleResponse.proto view
+ fixture/DescribeCluster.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/DescribeClusterResponse.proto view
+ fixture/DescribeControlPanel.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/DescribeControlPanelResponse.proto view
+ fixture/DescribeRoutingControl.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/DescribeRoutingControlResponse.proto view
+ fixture/DescribeSafetyRule.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/DescribeSafetyRuleResponse.proto view
+ fixture/ListAssociatedRoute53HealthChecks.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/ListAssociatedRoute53HealthChecksResponse.proto view
+ fixture/ListClusters.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/ListClustersResponse.proto view
+ fixture/ListControlPanels.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/ListControlPanelsResponse.proto view
+ fixture/ListRoutingControls.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/ListRoutingControlsResponse.proto view
+ fixture/ListSafetyRules.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/ListSafetyRulesResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/UpdateControlPanel.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/UpdateControlPanelResponse.proto view
+ fixture/UpdateRoutingControl.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/UpdateRoutingControlResponse.proto view
+ fixture/UpdateSafetyRule.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/route53-recovery-control-config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: route53-recovery-control-config.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/UpdateSafetyRuleResponse.proto view
+ gen/Amazonka/Route53RecoveryControlConfig.hs view
@@ -0,0 +1,316 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.Route53RecoveryControlConfig+-- 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-11-02@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Recovery Control Configuration API Reference for Amazon Route 53+-- Application Recovery Controller+module Amazonka.Route53RecoveryControlConfig+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** AccessDeniedException+ _AccessDeniedException,++ -- ** ConflictException+ _ConflictException,++ -- ** InternalServerException+ _InternalServerException,++ -- ** ResourceNotFoundException+ _ResourceNotFoundException,++ -- ** ServiceQuotaExceededException+ _ServiceQuotaExceededException,++ -- ** ThrottlingException+ _ThrottlingException,++ -- ** ValidationException+ _ValidationException,++ -- * Waiters+ -- $waiters++ -- ** ClusterCreated+ newClusterCreated,++ -- ** ClusterDeleted+ newClusterDeleted,++ -- ** ControlPanelCreated+ newControlPanelCreated,++ -- ** ControlPanelDeleted+ newControlPanelDeleted,++ -- ** RoutingControlCreated+ newRoutingControlCreated,++ -- ** RoutingControlDeleted+ newRoutingControlDeleted,++ -- * Operations+ -- $operations++ -- ** CreateCluster+ CreateCluster (CreateCluster'),+ newCreateCluster,+ CreateClusterResponse (CreateClusterResponse'),+ newCreateClusterResponse,++ -- ** CreateControlPanel+ CreateControlPanel (CreateControlPanel'),+ newCreateControlPanel,+ CreateControlPanelResponse (CreateControlPanelResponse'),+ newCreateControlPanelResponse,++ -- ** CreateRoutingControl+ CreateRoutingControl (CreateRoutingControl'),+ newCreateRoutingControl,+ CreateRoutingControlResponse (CreateRoutingControlResponse'),+ newCreateRoutingControlResponse,++ -- ** CreateSafetyRule+ CreateSafetyRule (CreateSafetyRule'),+ newCreateSafetyRule,+ CreateSafetyRuleResponse (CreateSafetyRuleResponse'),+ newCreateSafetyRuleResponse,++ -- ** DeleteCluster+ DeleteCluster (DeleteCluster'),+ newDeleteCluster,+ DeleteClusterResponse (DeleteClusterResponse'),+ newDeleteClusterResponse,++ -- ** DeleteControlPanel+ DeleteControlPanel (DeleteControlPanel'),+ newDeleteControlPanel,+ DeleteControlPanelResponse (DeleteControlPanelResponse'),+ newDeleteControlPanelResponse,++ -- ** DeleteRoutingControl+ DeleteRoutingControl (DeleteRoutingControl'),+ newDeleteRoutingControl,+ DeleteRoutingControlResponse (DeleteRoutingControlResponse'),+ newDeleteRoutingControlResponse,++ -- ** DeleteSafetyRule+ DeleteSafetyRule (DeleteSafetyRule'),+ newDeleteSafetyRule,+ DeleteSafetyRuleResponse (DeleteSafetyRuleResponse'),+ newDeleteSafetyRuleResponse,++ -- ** DescribeCluster+ DescribeCluster (DescribeCluster'),+ newDescribeCluster,+ DescribeClusterResponse (DescribeClusterResponse'),+ newDescribeClusterResponse,++ -- ** DescribeControlPanel+ DescribeControlPanel (DescribeControlPanel'),+ newDescribeControlPanel,+ DescribeControlPanelResponse (DescribeControlPanelResponse'),+ newDescribeControlPanelResponse,++ -- ** DescribeRoutingControl+ DescribeRoutingControl (DescribeRoutingControl'),+ newDescribeRoutingControl,+ DescribeRoutingControlResponse (DescribeRoutingControlResponse'),+ newDescribeRoutingControlResponse,++ -- ** DescribeSafetyRule+ DescribeSafetyRule (DescribeSafetyRule'),+ newDescribeSafetyRule,+ DescribeSafetyRuleResponse (DescribeSafetyRuleResponse'),+ newDescribeSafetyRuleResponse,++ -- ** ListAssociatedRoute53HealthChecks (Paginated)+ ListAssociatedRoute53HealthChecks (ListAssociatedRoute53HealthChecks'),+ newListAssociatedRoute53HealthChecks,+ ListAssociatedRoute53HealthChecksResponse (ListAssociatedRoute53HealthChecksResponse'),+ newListAssociatedRoute53HealthChecksResponse,++ -- ** ListClusters (Paginated)+ ListClusters (ListClusters'),+ newListClusters,+ ListClustersResponse (ListClustersResponse'),+ newListClustersResponse,++ -- ** ListControlPanels (Paginated)+ ListControlPanels (ListControlPanels'),+ newListControlPanels,+ ListControlPanelsResponse (ListControlPanelsResponse'),+ newListControlPanelsResponse,++ -- ** ListRoutingControls (Paginated)+ ListRoutingControls (ListRoutingControls'),+ newListRoutingControls,+ ListRoutingControlsResponse (ListRoutingControlsResponse'),+ newListRoutingControlsResponse,++ -- ** ListSafetyRules (Paginated)+ ListSafetyRules (ListSafetyRules'),+ newListSafetyRules,+ ListSafetyRulesResponse (ListSafetyRulesResponse'),+ newListSafetyRulesResponse,++ -- ** ListTagsForResource+ ListTagsForResource (ListTagsForResource'),+ newListTagsForResource,+ ListTagsForResourceResponse (ListTagsForResourceResponse'),+ newListTagsForResourceResponse,++ -- ** TagResource+ TagResource (TagResource'),+ newTagResource,+ TagResourceResponse (TagResourceResponse'),+ newTagResourceResponse,++ -- ** UntagResource+ UntagResource (UntagResource'),+ newUntagResource,+ UntagResourceResponse (UntagResourceResponse'),+ newUntagResourceResponse,++ -- ** UpdateControlPanel+ UpdateControlPanel (UpdateControlPanel'),+ newUpdateControlPanel,+ UpdateControlPanelResponse (UpdateControlPanelResponse'),+ newUpdateControlPanelResponse,++ -- ** UpdateRoutingControl+ UpdateRoutingControl (UpdateRoutingControl'),+ newUpdateRoutingControl,+ UpdateRoutingControlResponse (UpdateRoutingControlResponse'),+ newUpdateRoutingControlResponse,++ -- ** UpdateSafetyRule+ UpdateSafetyRule (UpdateSafetyRule'),+ newUpdateSafetyRule,+ UpdateSafetyRuleResponse (UpdateSafetyRuleResponse'),+ newUpdateSafetyRuleResponse,++ -- * Types++ -- ** RuleType+ RuleType (..),++ -- ** Status+ Status (..),++ -- ** AssertionRule+ AssertionRule (AssertionRule'),+ newAssertionRule,++ -- ** AssertionRuleUpdate+ AssertionRuleUpdate (AssertionRuleUpdate'),+ newAssertionRuleUpdate,++ -- ** Cluster+ Cluster (Cluster'),+ newCluster,++ -- ** ClusterEndpoint+ ClusterEndpoint (ClusterEndpoint'),+ newClusterEndpoint,++ -- ** ControlPanel+ ControlPanel (ControlPanel'),+ newControlPanel,++ -- ** GatingRule+ GatingRule (GatingRule'),+ newGatingRule,++ -- ** GatingRuleUpdate+ GatingRuleUpdate (GatingRuleUpdate'),+ newGatingRuleUpdate,++ -- ** NewAssertionRule+ NewAssertionRule (NewAssertionRule'),+ newNewAssertionRule,++ -- ** NewGatingRule+ NewGatingRule (NewGatingRule'),+ newNewGatingRule,++ -- ** RoutingControl+ RoutingControl (RoutingControl'),+ newRoutingControl,++ -- ** Rule+ Rule (Rule'),+ newRule,++ -- ** RuleConfig+ RuleConfig (RuleConfig'),+ newRuleConfig,+ )+where++import Amazonka.Route53RecoveryControlConfig.CreateCluster+import Amazonka.Route53RecoveryControlConfig.CreateControlPanel+import Amazonka.Route53RecoveryControlConfig.CreateRoutingControl+import Amazonka.Route53RecoveryControlConfig.CreateSafetyRule+import Amazonka.Route53RecoveryControlConfig.DeleteCluster+import Amazonka.Route53RecoveryControlConfig.DeleteControlPanel+import Amazonka.Route53RecoveryControlConfig.DeleteRoutingControl+import Amazonka.Route53RecoveryControlConfig.DeleteSafetyRule+import Amazonka.Route53RecoveryControlConfig.DescribeCluster+import Amazonka.Route53RecoveryControlConfig.DescribeControlPanel+import Amazonka.Route53RecoveryControlConfig.DescribeRoutingControl+import Amazonka.Route53RecoveryControlConfig.DescribeSafetyRule+import Amazonka.Route53RecoveryControlConfig.Lens+import Amazonka.Route53RecoveryControlConfig.ListAssociatedRoute53HealthChecks+import Amazonka.Route53RecoveryControlConfig.ListClusters+import Amazonka.Route53RecoveryControlConfig.ListControlPanels+import Amazonka.Route53RecoveryControlConfig.ListRoutingControls+import Amazonka.Route53RecoveryControlConfig.ListSafetyRules+import Amazonka.Route53RecoveryControlConfig.ListTagsForResource+import Amazonka.Route53RecoveryControlConfig.TagResource+import Amazonka.Route53RecoveryControlConfig.Types+import Amazonka.Route53RecoveryControlConfig.UntagResource+import Amazonka.Route53RecoveryControlConfig.UpdateControlPanel+import Amazonka.Route53RecoveryControlConfig.UpdateRoutingControl+import Amazonka.Route53RecoveryControlConfig.UpdateSafetyRule+import Amazonka.Route53RecoveryControlConfig.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 'Route53RecoveryControlConfig'.++-- $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/Route53RecoveryControlConfig/CreateCluster.hs view
@@ -0,0 +1,207 @@+{-# 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.Route53RecoveryControlConfig.CreateCluster+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create a new cluster. A cluster is a set of redundant Regional endpoints+-- against which you can run API calls to update or get the state of one or+-- more routing controls. Each cluster has a name, status, Amazon Resource+-- Name (ARN), and an array of the five cluster endpoints (one for each+-- supported Amazon Web Services Region) that you can use with API calls to+-- the cluster data plane.+module Amazonka.Route53RecoveryControlConfig.CreateCluster+ ( -- * Creating a Request+ CreateCluster (..),+ newCreateCluster,++ -- * Request Lenses+ createCluster_clientToken,+ createCluster_tags,+ createCluster_clusterName,++ -- * Destructuring the Response+ CreateClusterResponse (..),+ newCreateClusterResponse,++ -- * Response Lenses+ createClusterResponse_cluster,+ createClusterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | Creates a cluster.+--+-- /See:/ 'newCreateCluster' smart constructor.+data CreateCluster = CreateCluster'+ { -- | A unique, case-sensitive string of up to 64 ASCII characters. To make an+ -- idempotent API request with an action, specify a client token in the+ -- request.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The tags associated with the cluster.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The name of the cluster.+ clusterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createCluster_clientToken' - A unique, case-sensitive string of up to 64 ASCII characters. To make an+-- idempotent API request with an action, specify a client token in the+-- request.+--+-- 'tags', 'createCluster_tags' - The tags associated with the cluster.+--+-- 'clusterName', 'createCluster_clusterName' - The name of the cluster.+newCreateCluster ::+ -- | 'clusterName'+ Prelude.Text ->+ CreateCluster+newCreateCluster pClusterName_ =+ CreateCluster'+ { clientToken = Prelude.Nothing,+ tags = Prelude.Nothing,+ clusterName = pClusterName_+ }++-- | A unique, case-sensitive string of up to 64 ASCII characters. To make an+-- idempotent API request with an action, specify a client token in the+-- request.+createCluster_clientToken :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Text)+createCluster_clientToken = Lens.lens (\CreateCluster' {clientToken} -> clientToken) (\s@CreateCluster' {} a -> s {clientToken = a} :: CreateCluster)++-- | The tags associated with the cluster.+createCluster_tags :: Lens.Lens' CreateCluster (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createCluster_tags = Lens.lens (\CreateCluster' {tags} -> tags) (\s@CreateCluster' {} a -> s {tags = a} :: CreateCluster) Prelude.. Lens.mapping Lens.coerced++-- | The name of the cluster.+createCluster_clusterName :: Lens.Lens' CreateCluster Prelude.Text+createCluster_clusterName = Lens.lens (\CreateCluster' {clusterName} -> clusterName) (\s@CreateCluster' {} a -> s {clusterName = a} :: CreateCluster)++instance Core.AWSRequest CreateCluster where+ type+ AWSResponse CreateCluster =+ CreateClusterResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateClusterResponse'+ Prelude.<$> (x Data..?> "Cluster")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateCluster where+ hashWithSalt _salt CreateCluster' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` clusterName++instance Prelude.NFData CreateCluster where+ rnf CreateCluster' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf clusterName++instance Data.ToHeaders CreateCluster where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateCluster where+ toJSON CreateCluster' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClientToken" Data..=) Prelude.<$> clientToken,+ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("ClusterName" Data..= clusterName)+ ]+ )++instance Data.ToPath CreateCluster where+ toPath = Prelude.const "/cluster"++instance Data.ToQuery CreateCluster where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateClusterResponse' smart constructor.+data CreateClusterResponse = CreateClusterResponse'+ { -- | The cluster that was created.+ cluster :: Prelude.Maybe Cluster,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cluster', 'createClusterResponse_cluster' - The cluster that was created.+--+-- 'httpStatus', 'createClusterResponse_httpStatus' - The response's http status code.+newCreateClusterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateClusterResponse+newCreateClusterResponse pHttpStatus_ =+ CreateClusterResponse'+ { cluster = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The cluster that was created.+createClusterResponse_cluster :: Lens.Lens' CreateClusterResponse (Prelude.Maybe Cluster)+createClusterResponse_cluster = Lens.lens (\CreateClusterResponse' {cluster} -> cluster) (\s@CreateClusterResponse' {} a -> s {cluster = a} :: CreateClusterResponse)++-- | The response's http status code.+createClusterResponse_httpStatus :: Lens.Lens' CreateClusterResponse Prelude.Int+createClusterResponse_httpStatus = Lens.lens (\CreateClusterResponse' {httpStatus} -> httpStatus) (\s@CreateClusterResponse' {} a -> s {httpStatus = a} :: CreateClusterResponse)++instance Prelude.NFData CreateClusterResponse where+ rnf CreateClusterResponse' {..} =+ Prelude.rnf cluster+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/CreateControlPanel.hs view
@@ -0,0 +1,224 @@+{-# 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.Route53RecoveryControlConfig.CreateControlPanel+-- 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 control panel. A control panel represents a group of+-- routing controls that can be changed together in a single transaction.+-- You can use a control panel to centrally view the operational status of+-- applications across your organization, and trigger multi-app failovers+-- in a single transaction, for example, to fail over an Availability Zone+-- or Amazon Web Services Region.+module Amazonka.Route53RecoveryControlConfig.CreateControlPanel+ ( -- * Creating a Request+ CreateControlPanel (..),+ newCreateControlPanel,++ -- * Request Lenses+ createControlPanel_clientToken,+ createControlPanel_tags,+ createControlPanel_clusterArn,+ createControlPanel_controlPanelName,++ -- * Destructuring the Response+ CreateControlPanelResponse (..),+ newCreateControlPanelResponse,++ -- * Response Lenses+ createControlPanelResponse_controlPanel,+ createControlPanelResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | The details of the control panel that you\'re creating.+--+-- /See:/ 'newCreateControlPanel' smart constructor.+data CreateControlPanel = CreateControlPanel'+ { -- | A unique, case-sensitive string of up to 64 ASCII characters. To make an+ -- idempotent API request with an action, specify a client token in the+ -- request.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The tags associated with the control panel.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The Amazon Resource Name (ARN) of the cluster for the control panel.+ clusterArn :: Prelude.Text,+ -- | The name of the control panel.+ controlPanelName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateControlPanel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createControlPanel_clientToken' - A unique, case-sensitive string of up to 64 ASCII characters. To make an+-- idempotent API request with an action, specify a client token in the+-- request.+--+-- 'tags', 'createControlPanel_tags' - The tags associated with the control panel.+--+-- 'clusterArn', 'createControlPanel_clusterArn' - The Amazon Resource Name (ARN) of the cluster for the control panel.+--+-- 'controlPanelName', 'createControlPanel_controlPanelName' - The name of the control panel.+newCreateControlPanel ::+ -- | 'clusterArn'+ Prelude.Text ->+ -- | 'controlPanelName'+ Prelude.Text ->+ CreateControlPanel+newCreateControlPanel pClusterArn_ pControlPanelName_ =+ CreateControlPanel'+ { clientToken = Prelude.Nothing,+ tags = Prelude.Nothing,+ clusterArn = pClusterArn_,+ controlPanelName = pControlPanelName_+ }++-- | A unique, case-sensitive string of up to 64 ASCII characters. To make an+-- idempotent API request with an action, specify a client token in the+-- request.+createControlPanel_clientToken :: Lens.Lens' CreateControlPanel (Prelude.Maybe Prelude.Text)+createControlPanel_clientToken = Lens.lens (\CreateControlPanel' {clientToken} -> clientToken) (\s@CreateControlPanel' {} a -> s {clientToken = a} :: CreateControlPanel)++-- | The tags associated with the control panel.+createControlPanel_tags :: Lens.Lens' CreateControlPanel (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createControlPanel_tags = Lens.lens (\CreateControlPanel' {tags} -> tags) (\s@CreateControlPanel' {} a -> s {tags = a} :: CreateControlPanel) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the cluster for the control panel.+createControlPanel_clusterArn :: Lens.Lens' CreateControlPanel Prelude.Text+createControlPanel_clusterArn = Lens.lens (\CreateControlPanel' {clusterArn} -> clusterArn) (\s@CreateControlPanel' {} a -> s {clusterArn = a} :: CreateControlPanel)++-- | The name of the control panel.+createControlPanel_controlPanelName :: Lens.Lens' CreateControlPanel Prelude.Text+createControlPanel_controlPanelName = Lens.lens (\CreateControlPanel' {controlPanelName} -> controlPanelName) (\s@CreateControlPanel' {} a -> s {controlPanelName = a} :: CreateControlPanel)++instance Core.AWSRequest CreateControlPanel where+ type+ AWSResponse CreateControlPanel =+ CreateControlPanelResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateControlPanelResponse'+ Prelude.<$> (x Data..?> "ControlPanel")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateControlPanel where+ hashWithSalt _salt CreateControlPanel' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` clusterArn+ `Prelude.hashWithSalt` controlPanelName++instance Prelude.NFData CreateControlPanel where+ rnf CreateControlPanel' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf clusterArn+ `Prelude.seq` Prelude.rnf controlPanelName++instance Data.ToHeaders CreateControlPanel where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateControlPanel where+ toJSON CreateControlPanel' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClientToken" Data..=) Prelude.<$> clientToken,+ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("ClusterArn" Data..= clusterArn),+ Prelude.Just+ ("ControlPanelName" Data..= controlPanelName)+ ]+ )++instance Data.ToPath CreateControlPanel where+ toPath = Prelude.const "/controlpanel"++instance Data.ToQuery CreateControlPanel where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateControlPanelResponse' smart constructor.+data CreateControlPanelResponse = CreateControlPanelResponse'+ { -- | Information about a control panel.+ controlPanel :: Prelude.Maybe ControlPanel,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateControlPanelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'controlPanel', 'createControlPanelResponse_controlPanel' - Information about a control panel.+--+-- 'httpStatus', 'createControlPanelResponse_httpStatus' - The response's http status code.+newCreateControlPanelResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateControlPanelResponse+newCreateControlPanelResponse pHttpStatus_ =+ CreateControlPanelResponse'+ { controlPanel =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about a control panel.+createControlPanelResponse_controlPanel :: Lens.Lens' CreateControlPanelResponse (Prelude.Maybe ControlPanel)+createControlPanelResponse_controlPanel = Lens.lens (\CreateControlPanelResponse' {controlPanel} -> controlPanel) (\s@CreateControlPanelResponse' {} a -> s {controlPanel = a} :: CreateControlPanelResponse)++-- | The response's http status code.+createControlPanelResponse_httpStatus :: Lens.Lens' CreateControlPanelResponse Prelude.Int+createControlPanelResponse_httpStatus = Lens.lens (\CreateControlPanelResponse' {httpStatus} -> httpStatus) (\s@CreateControlPanelResponse' {} a -> s {httpStatus = a} :: CreateControlPanelResponse)++instance Prelude.NFData CreateControlPanelResponse where+ rnf CreateControlPanelResponse' {..} =+ Prelude.rnf controlPanel+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/CreateRoutingControl.hs view
@@ -0,0 +1,237 @@+{-# 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.Route53RecoveryControlConfig.CreateRoutingControl+-- 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 routing control.+--+-- A routing control has one of two states: ON and OFF. You can map the+-- routing control state to the state of an Amazon Route 53 health check,+-- which can be used to control traffic routing.+--+-- To get or update the routing control state, see the Recovery Cluster+-- (data plane) API actions for Amazon Route 53 Application Recovery+-- Controller.+module Amazonka.Route53RecoveryControlConfig.CreateRoutingControl+ ( -- * Creating a Request+ CreateRoutingControl (..),+ newCreateRoutingControl,++ -- * Request Lenses+ createRoutingControl_clientToken,+ createRoutingControl_controlPanelArn,+ createRoutingControl_clusterArn,+ createRoutingControl_routingControlName,++ -- * Destructuring the Response+ CreateRoutingControlResponse (..),+ newCreateRoutingControlResponse,++ -- * Response Lenses+ createRoutingControlResponse_routingControl,+ createRoutingControlResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | The details of the routing control that you\'re creating.+--+-- /See:/ 'newCreateRoutingControl' smart constructor.+data CreateRoutingControl = CreateRoutingControl'+ { -- | A unique, case-sensitive string of up to 64 ASCII characters. To make an+ -- idempotent API request with an action, specify a client token in the+ -- request.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the control panel that includes the+ -- routing control.+ controlPanelArn :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the cluster that includes the routing+ -- control.+ clusterArn :: Prelude.Text,+ -- | The name of the routing control.+ routingControlName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRoutingControl' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createRoutingControl_clientToken' - A unique, case-sensitive string of up to 64 ASCII characters. To make an+-- idempotent API request with an action, specify a client token in the+-- request.+--+-- 'controlPanelArn', 'createRoutingControl_controlPanelArn' - The Amazon Resource Name (ARN) of the control panel that includes the+-- routing control.+--+-- 'clusterArn', 'createRoutingControl_clusterArn' - The Amazon Resource Name (ARN) of the cluster that includes the routing+-- control.+--+-- 'routingControlName', 'createRoutingControl_routingControlName' - The name of the routing control.+newCreateRoutingControl ::+ -- | 'clusterArn'+ Prelude.Text ->+ -- | 'routingControlName'+ Prelude.Text ->+ CreateRoutingControl+newCreateRoutingControl+ pClusterArn_+ pRoutingControlName_ =+ CreateRoutingControl'+ { clientToken =+ Prelude.Nothing,+ controlPanelArn = Prelude.Nothing,+ clusterArn = pClusterArn_,+ routingControlName = pRoutingControlName_+ }++-- | A unique, case-sensitive string of up to 64 ASCII characters. To make an+-- idempotent API request with an action, specify a client token in the+-- request.+createRoutingControl_clientToken :: Lens.Lens' CreateRoutingControl (Prelude.Maybe Prelude.Text)+createRoutingControl_clientToken = Lens.lens (\CreateRoutingControl' {clientToken} -> clientToken) (\s@CreateRoutingControl' {} a -> s {clientToken = a} :: CreateRoutingControl)++-- | The Amazon Resource Name (ARN) of the control panel that includes the+-- routing control.+createRoutingControl_controlPanelArn :: Lens.Lens' CreateRoutingControl (Prelude.Maybe Prelude.Text)+createRoutingControl_controlPanelArn = Lens.lens (\CreateRoutingControl' {controlPanelArn} -> controlPanelArn) (\s@CreateRoutingControl' {} a -> s {controlPanelArn = a} :: CreateRoutingControl)++-- | The Amazon Resource Name (ARN) of the cluster that includes the routing+-- control.+createRoutingControl_clusterArn :: Lens.Lens' CreateRoutingControl Prelude.Text+createRoutingControl_clusterArn = Lens.lens (\CreateRoutingControl' {clusterArn} -> clusterArn) (\s@CreateRoutingControl' {} a -> s {clusterArn = a} :: CreateRoutingControl)++-- | The name of the routing control.+createRoutingControl_routingControlName :: Lens.Lens' CreateRoutingControl Prelude.Text+createRoutingControl_routingControlName = Lens.lens (\CreateRoutingControl' {routingControlName} -> routingControlName) (\s@CreateRoutingControl' {} a -> s {routingControlName = a} :: CreateRoutingControl)++instance Core.AWSRequest CreateRoutingControl where+ type+ AWSResponse CreateRoutingControl =+ CreateRoutingControlResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateRoutingControlResponse'+ Prelude.<$> (x Data..?> "RoutingControl")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateRoutingControl where+ hashWithSalt _salt CreateRoutingControl' {..} =+ _salt+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` controlPanelArn+ `Prelude.hashWithSalt` clusterArn+ `Prelude.hashWithSalt` routingControlName++instance Prelude.NFData CreateRoutingControl where+ rnf CreateRoutingControl' {..} =+ Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf controlPanelArn+ `Prelude.seq` Prelude.rnf clusterArn+ `Prelude.seq` Prelude.rnf routingControlName++instance Data.ToHeaders CreateRoutingControl where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateRoutingControl where+ toJSON CreateRoutingControl' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClientToken" Data..=) Prelude.<$> clientToken,+ ("ControlPanelArn" Data..=)+ Prelude.<$> controlPanelArn,+ Prelude.Just ("ClusterArn" Data..= clusterArn),+ Prelude.Just+ ("RoutingControlName" Data..= routingControlName)+ ]+ )++instance Data.ToPath CreateRoutingControl where+ toPath = Prelude.const "/routingcontrol"++instance Data.ToQuery CreateRoutingControl where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateRoutingControlResponse' smart constructor.+data CreateRoutingControlResponse = CreateRoutingControlResponse'+ { -- | The routing control that is created.+ routingControl :: Prelude.Maybe RoutingControl,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRoutingControlResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'routingControl', 'createRoutingControlResponse_routingControl' - The routing control that is created.+--+-- 'httpStatus', 'createRoutingControlResponse_httpStatus' - The response's http status code.+newCreateRoutingControlResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateRoutingControlResponse+newCreateRoutingControlResponse pHttpStatus_ =+ CreateRoutingControlResponse'+ { routingControl =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The routing control that is created.+createRoutingControlResponse_routingControl :: Lens.Lens' CreateRoutingControlResponse (Prelude.Maybe RoutingControl)+createRoutingControlResponse_routingControl = Lens.lens (\CreateRoutingControlResponse' {routingControl} -> routingControl) (\s@CreateRoutingControlResponse' {} a -> s {routingControl = a} :: CreateRoutingControlResponse)++-- | The response's http status code.+createRoutingControlResponse_httpStatus :: Lens.Lens' CreateRoutingControlResponse Prelude.Int+createRoutingControlResponse_httpStatus = Lens.lens (\CreateRoutingControlResponse' {httpStatus} -> httpStatus) (\s@CreateRoutingControlResponse' {} a -> s {httpStatus = a} :: CreateRoutingControlResponse)++instance Prelude.NFData CreateRoutingControlResponse where+ rnf CreateRoutingControlResponse' {..} =+ Prelude.rnf routingControl+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/CreateSafetyRule.hs view
@@ -0,0 +1,245 @@+{-# 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.Route53RecoveryControlConfig.CreateSafetyRule+-- 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 safety rule in a control panel. Safety rules let you add+-- safeguards around changing routing control states, and for enabling and+-- disabling routing controls, to help prevent unexpected outcomes.+--+-- There are two types of safety rules: assertion rules and gating rules.+--+-- Assertion rule: An assertion rule enforces that, when you change a+-- routing control state, that a certain criteria is met. For example, the+-- criteria might be that at least one routing control state is On after+-- the transaction so that traffic continues to flow to at least one cell+-- for the application. This ensures that you avoid a fail-open scenario.+--+-- Gating rule: A gating rule lets you configure a gating routing control+-- as an overall \"on\/off\" switch for a group of routing controls. Or,+-- you can configure more complex gating scenarios, for example by+-- configuring multiple gating routing controls.+--+-- For more information, see+-- <https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.safety-rules.html Safety rules>+-- in the Amazon Route 53 Application Recovery Controller Developer Guide.+module Amazonka.Route53RecoveryControlConfig.CreateSafetyRule+ ( -- * Creating a Request+ CreateSafetyRule (..),+ newCreateSafetyRule,++ -- * Request Lenses+ createSafetyRule_assertionRule,+ createSafetyRule_clientToken,+ createSafetyRule_gatingRule,+ createSafetyRule_tags,++ -- * Destructuring the Response+ CreateSafetyRuleResponse (..),+ newCreateSafetyRuleResponse,++ -- * Response Lenses+ createSafetyRuleResponse_assertionRule,+ createSafetyRuleResponse_gatingRule,+ createSafetyRuleResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | The request body that you include when you create a safety rule.+--+-- /See:/ 'newCreateSafetyRule' smart constructor.+data CreateSafetyRule = CreateSafetyRule'+ { -- | The assertion rule requested.+ assertionRule :: Prelude.Maybe NewAssertionRule,+ -- | A unique, case-sensitive string of up to 64 ASCII characters. To make an+ -- idempotent API request with an action, specify a client token in the+ -- request.+ clientToken :: Prelude.Maybe Prelude.Text,+ -- | The gating rule requested.+ gatingRule :: Prelude.Maybe NewGatingRule,+ -- | The tags associated with the safety rule.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSafetyRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assertionRule', 'createSafetyRule_assertionRule' - The assertion rule requested.+--+-- 'clientToken', 'createSafetyRule_clientToken' - A unique, case-sensitive string of up to 64 ASCII characters. To make an+-- idempotent API request with an action, specify a client token in the+-- request.+--+-- 'gatingRule', 'createSafetyRule_gatingRule' - The gating rule requested.+--+-- 'tags', 'createSafetyRule_tags' - The tags associated with the safety rule.+newCreateSafetyRule ::+ CreateSafetyRule+newCreateSafetyRule =+ CreateSafetyRule'+ { assertionRule = Prelude.Nothing,+ clientToken = Prelude.Nothing,+ gatingRule = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | The assertion rule requested.+createSafetyRule_assertionRule :: Lens.Lens' CreateSafetyRule (Prelude.Maybe NewAssertionRule)+createSafetyRule_assertionRule = Lens.lens (\CreateSafetyRule' {assertionRule} -> assertionRule) (\s@CreateSafetyRule' {} a -> s {assertionRule = a} :: CreateSafetyRule)++-- | A unique, case-sensitive string of up to 64 ASCII characters. To make an+-- idempotent API request with an action, specify a client token in the+-- request.+createSafetyRule_clientToken :: Lens.Lens' CreateSafetyRule (Prelude.Maybe Prelude.Text)+createSafetyRule_clientToken = Lens.lens (\CreateSafetyRule' {clientToken} -> clientToken) (\s@CreateSafetyRule' {} a -> s {clientToken = a} :: CreateSafetyRule)++-- | The gating rule requested.+createSafetyRule_gatingRule :: Lens.Lens' CreateSafetyRule (Prelude.Maybe NewGatingRule)+createSafetyRule_gatingRule = Lens.lens (\CreateSafetyRule' {gatingRule} -> gatingRule) (\s@CreateSafetyRule' {} a -> s {gatingRule = a} :: CreateSafetyRule)++-- | The tags associated with the safety rule.+createSafetyRule_tags :: Lens.Lens' CreateSafetyRule (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createSafetyRule_tags = Lens.lens (\CreateSafetyRule' {tags} -> tags) (\s@CreateSafetyRule' {} a -> s {tags = a} :: CreateSafetyRule) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSRequest CreateSafetyRule where+ type+ AWSResponse CreateSafetyRule =+ CreateSafetyRuleResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateSafetyRuleResponse'+ Prelude.<$> (x Data..?> "AssertionRule")+ Prelude.<*> (x Data..?> "GatingRule")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateSafetyRule where+ hashWithSalt _salt CreateSafetyRule' {..} =+ _salt+ `Prelude.hashWithSalt` assertionRule+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` gatingRule+ `Prelude.hashWithSalt` tags++instance Prelude.NFData CreateSafetyRule where+ rnf CreateSafetyRule' {..} =+ Prelude.rnf assertionRule+ `Prelude.seq` Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf gatingRule+ `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders CreateSafetyRule where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateSafetyRule where+ toJSON CreateSafetyRule' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AssertionRule" Data..=) Prelude.<$> assertionRule,+ ("ClientToken" Data..=) Prelude.<$> clientToken,+ ("GatingRule" Data..=) Prelude.<$> gatingRule,+ ("Tags" Data..=) Prelude.<$> tags+ ]+ )++instance Data.ToPath CreateSafetyRule where+ toPath = Prelude.const "/safetyrule"++instance Data.ToQuery CreateSafetyRule where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSafetyRuleResponse' smart constructor.+data CreateSafetyRuleResponse = CreateSafetyRuleResponse'+ { -- | The assertion rule created.+ assertionRule :: Prelude.Maybe AssertionRule,+ -- | The gating rule created.+ gatingRule :: Prelude.Maybe GatingRule,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSafetyRuleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assertionRule', 'createSafetyRuleResponse_assertionRule' - The assertion rule created.+--+-- 'gatingRule', 'createSafetyRuleResponse_gatingRule' - The gating rule created.+--+-- 'httpStatus', 'createSafetyRuleResponse_httpStatus' - The response's http status code.+newCreateSafetyRuleResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateSafetyRuleResponse+newCreateSafetyRuleResponse pHttpStatus_ =+ CreateSafetyRuleResponse'+ { assertionRule =+ Prelude.Nothing,+ gatingRule = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The assertion rule created.+createSafetyRuleResponse_assertionRule :: Lens.Lens' CreateSafetyRuleResponse (Prelude.Maybe AssertionRule)+createSafetyRuleResponse_assertionRule = Lens.lens (\CreateSafetyRuleResponse' {assertionRule} -> assertionRule) (\s@CreateSafetyRuleResponse' {} a -> s {assertionRule = a} :: CreateSafetyRuleResponse)++-- | The gating rule created.+createSafetyRuleResponse_gatingRule :: Lens.Lens' CreateSafetyRuleResponse (Prelude.Maybe GatingRule)+createSafetyRuleResponse_gatingRule = Lens.lens (\CreateSafetyRuleResponse' {gatingRule} -> gatingRule) (\s@CreateSafetyRuleResponse' {} a -> s {gatingRule = a} :: CreateSafetyRuleResponse)++-- | The response's http status code.+createSafetyRuleResponse_httpStatus :: Lens.Lens' CreateSafetyRuleResponse Prelude.Int+createSafetyRuleResponse_httpStatus = Lens.lens (\CreateSafetyRuleResponse' {httpStatus} -> httpStatus) (\s@CreateSafetyRuleResponse' {} a -> s {httpStatus = a} :: CreateSafetyRuleResponse)++instance Prelude.NFData CreateSafetyRuleResponse where+ rnf CreateSafetyRuleResponse' {..} =+ Prelude.rnf assertionRule+ `Prelude.seq` Prelude.rnf gatingRule+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/DeleteCluster.hs view
@@ -0,0 +1,143 @@+{-# 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.Route53RecoveryControlConfig.DeleteCluster+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Delete a cluster.+module Amazonka.Route53RecoveryControlConfig.DeleteCluster+ ( -- * Creating a Request+ DeleteCluster (..),+ newDeleteCluster,++ -- * Request Lenses+ deleteCluster_clusterArn,++ -- * Destructuring the Response+ DeleteClusterResponse (..),+ newDeleteClusterResponse,++ -- * Response Lenses+ deleteClusterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newDeleteCluster' smart constructor.+data DeleteCluster = DeleteCluster'+ { -- | The Amazon Resource Name (ARN) of the cluster that you\'re deleting.+ clusterArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterArn', 'deleteCluster_clusterArn' - The Amazon Resource Name (ARN) of the cluster that you\'re deleting.+newDeleteCluster ::+ -- | 'clusterArn'+ Prelude.Text ->+ DeleteCluster+newDeleteCluster pClusterArn_ =+ DeleteCluster' {clusterArn = pClusterArn_}++-- | The Amazon Resource Name (ARN) of the cluster that you\'re deleting.+deleteCluster_clusterArn :: Lens.Lens' DeleteCluster Prelude.Text+deleteCluster_clusterArn = Lens.lens (\DeleteCluster' {clusterArn} -> clusterArn) (\s@DeleteCluster' {} a -> s {clusterArn = a} :: DeleteCluster)++instance Core.AWSRequest DeleteCluster where+ type+ AWSResponse DeleteCluster =+ DeleteClusterResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteClusterResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteCluster where+ hashWithSalt _salt DeleteCluster' {..} =+ _salt `Prelude.hashWithSalt` clusterArn++instance Prelude.NFData DeleteCluster where+ rnf DeleteCluster' {..} = Prelude.rnf clusterArn++instance Data.ToHeaders DeleteCluster where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteCluster where+ toPath DeleteCluster' {..} =+ Prelude.mconcat ["/cluster/", Data.toBS clusterArn]++instance Data.ToQuery DeleteCluster where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteClusterResponse' smart constructor.+data DeleteClusterResponse = DeleteClusterResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteClusterResponse_httpStatus' - The response's http status code.+newDeleteClusterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteClusterResponse+newDeleteClusterResponse pHttpStatus_ =+ DeleteClusterResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteClusterResponse_httpStatus :: Lens.Lens' DeleteClusterResponse Prelude.Int+deleteClusterResponse_httpStatus = Lens.lens (\DeleteClusterResponse' {httpStatus} -> httpStatus) (\s@DeleteClusterResponse' {} a -> s {httpStatus = a} :: DeleteClusterResponse)++instance Prelude.NFData DeleteClusterResponse where+ rnf DeleteClusterResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/DeleteControlPanel.hs view
@@ -0,0 +1,151 @@+{-# 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.Route53RecoveryControlConfig.DeleteControlPanel+-- 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 control panel.+module Amazonka.Route53RecoveryControlConfig.DeleteControlPanel+ ( -- * Creating a Request+ DeleteControlPanel (..),+ newDeleteControlPanel,++ -- * Request Lenses+ deleteControlPanel_controlPanelArn,++ -- * Destructuring the Response+ DeleteControlPanelResponse (..),+ newDeleteControlPanelResponse,++ -- * Response Lenses+ deleteControlPanelResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newDeleteControlPanel' smart constructor.+data DeleteControlPanel = DeleteControlPanel'+ { -- | The Amazon Resource Name (ARN) of the control panel.+ controlPanelArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteControlPanel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'controlPanelArn', 'deleteControlPanel_controlPanelArn' - The Amazon Resource Name (ARN) of the control panel.+newDeleteControlPanel ::+ -- | 'controlPanelArn'+ Prelude.Text ->+ DeleteControlPanel+newDeleteControlPanel pControlPanelArn_ =+ DeleteControlPanel'+ { controlPanelArn =+ pControlPanelArn_+ }++-- | The Amazon Resource Name (ARN) of the control panel.+deleteControlPanel_controlPanelArn :: Lens.Lens' DeleteControlPanel Prelude.Text+deleteControlPanel_controlPanelArn = Lens.lens (\DeleteControlPanel' {controlPanelArn} -> controlPanelArn) (\s@DeleteControlPanel' {} a -> s {controlPanelArn = a} :: DeleteControlPanel)++instance Core.AWSRequest DeleteControlPanel where+ type+ AWSResponse DeleteControlPanel =+ DeleteControlPanelResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteControlPanelResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteControlPanel where+ hashWithSalt _salt DeleteControlPanel' {..} =+ _salt `Prelude.hashWithSalt` controlPanelArn++instance Prelude.NFData DeleteControlPanel where+ rnf DeleteControlPanel' {..} =+ Prelude.rnf controlPanelArn++instance Data.ToHeaders DeleteControlPanel where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteControlPanel where+ toPath DeleteControlPanel' {..} =+ Prelude.mconcat+ ["/controlpanel/", Data.toBS controlPanelArn]++instance Data.ToQuery DeleteControlPanel where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteControlPanelResponse' smart constructor.+data DeleteControlPanelResponse = DeleteControlPanelResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteControlPanelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteControlPanelResponse_httpStatus' - The response's http status code.+newDeleteControlPanelResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteControlPanelResponse+newDeleteControlPanelResponse pHttpStatus_ =+ DeleteControlPanelResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteControlPanelResponse_httpStatus :: Lens.Lens' DeleteControlPanelResponse Prelude.Int+deleteControlPanelResponse_httpStatus = Lens.lens (\DeleteControlPanelResponse' {httpStatus} -> httpStatus) (\s@DeleteControlPanelResponse' {} a -> s {httpStatus = a} :: DeleteControlPanelResponse)++instance Prelude.NFData DeleteControlPanelResponse where+ rnf DeleteControlPanelResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/DeleteRoutingControl.hs view
@@ -0,0 +1,154 @@+{-# 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.Route53RecoveryControlConfig.DeleteRoutingControl+-- 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 routing control.+module Amazonka.Route53RecoveryControlConfig.DeleteRoutingControl+ ( -- * Creating a Request+ DeleteRoutingControl (..),+ newDeleteRoutingControl,++ -- * Request Lenses+ deleteRoutingControl_routingControlArn,++ -- * Destructuring the Response+ DeleteRoutingControlResponse (..),+ newDeleteRoutingControlResponse,++ -- * Response Lenses+ deleteRoutingControlResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newDeleteRoutingControl' smart constructor.+data DeleteRoutingControl = DeleteRoutingControl'+ { -- | The Amazon Resource Name (ARN) of the routing control that you\'re+ -- deleting.+ routingControlArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRoutingControl' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'routingControlArn', 'deleteRoutingControl_routingControlArn' - The Amazon Resource Name (ARN) of the routing control that you\'re+-- deleting.+newDeleteRoutingControl ::+ -- | 'routingControlArn'+ Prelude.Text ->+ DeleteRoutingControl+newDeleteRoutingControl pRoutingControlArn_ =+ DeleteRoutingControl'+ { routingControlArn =+ pRoutingControlArn_+ }++-- | The Amazon Resource Name (ARN) of the routing control that you\'re+-- deleting.+deleteRoutingControl_routingControlArn :: Lens.Lens' DeleteRoutingControl Prelude.Text+deleteRoutingControl_routingControlArn = Lens.lens (\DeleteRoutingControl' {routingControlArn} -> routingControlArn) (\s@DeleteRoutingControl' {} a -> s {routingControlArn = a} :: DeleteRoutingControl)++instance Core.AWSRequest DeleteRoutingControl where+ type+ AWSResponse DeleteRoutingControl =+ DeleteRoutingControlResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteRoutingControlResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteRoutingControl where+ hashWithSalt _salt DeleteRoutingControl' {..} =+ _salt `Prelude.hashWithSalt` routingControlArn++instance Prelude.NFData DeleteRoutingControl where+ rnf DeleteRoutingControl' {..} =+ Prelude.rnf routingControlArn++instance Data.ToHeaders DeleteRoutingControl where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteRoutingControl where+ toPath DeleteRoutingControl' {..} =+ Prelude.mconcat+ ["/routingcontrol/", Data.toBS routingControlArn]++instance Data.ToQuery DeleteRoutingControl where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRoutingControlResponse' smart constructor.+data DeleteRoutingControlResponse = DeleteRoutingControlResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRoutingControlResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteRoutingControlResponse_httpStatus' - The response's http status code.+newDeleteRoutingControlResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteRoutingControlResponse+newDeleteRoutingControlResponse pHttpStatus_ =+ DeleteRoutingControlResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteRoutingControlResponse_httpStatus :: Lens.Lens' DeleteRoutingControlResponse Prelude.Int+deleteRoutingControlResponse_httpStatus = Lens.lens (\DeleteRoutingControlResponse' {httpStatus} -> httpStatus) (\s@DeleteRoutingControlResponse' {} a -> s {httpStatus = a} :: DeleteRoutingControlResponse)++instance Prelude.NFData DeleteRoutingControlResponse where+ rnf DeleteRoutingControlResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/DeleteSafetyRule.hs view
@@ -0,0 +1,149 @@+{-# 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.Route53RecoveryControlConfig.DeleteSafetyRule+-- 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 safety rule.+--+-- \/>+module Amazonka.Route53RecoveryControlConfig.DeleteSafetyRule+ ( -- * Creating a Request+ DeleteSafetyRule (..),+ newDeleteSafetyRule,++ -- * Request Lenses+ deleteSafetyRule_safetyRuleArn,++ -- * Destructuring the Response+ DeleteSafetyRuleResponse (..),+ newDeleteSafetyRuleResponse,++ -- * Response Lenses+ deleteSafetyRuleResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newDeleteSafetyRule' smart constructor.+data DeleteSafetyRule = DeleteSafetyRule'+ { -- | The ARN of the safety rule.+ safetyRuleArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSafetyRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'safetyRuleArn', 'deleteSafetyRule_safetyRuleArn' - The ARN of the safety rule.+newDeleteSafetyRule ::+ -- | 'safetyRuleArn'+ Prelude.Text ->+ DeleteSafetyRule+newDeleteSafetyRule pSafetyRuleArn_ =+ DeleteSafetyRule' {safetyRuleArn = pSafetyRuleArn_}++-- | The ARN of the safety rule.+deleteSafetyRule_safetyRuleArn :: Lens.Lens' DeleteSafetyRule Prelude.Text+deleteSafetyRule_safetyRuleArn = Lens.lens (\DeleteSafetyRule' {safetyRuleArn} -> safetyRuleArn) (\s@DeleteSafetyRule' {} a -> s {safetyRuleArn = a} :: DeleteSafetyRule)++instance Core.AWSRequest DeleteSafetyRule where+ type+ AWSResponse DeleteSafetyRule =+ DeleteSafetyRuleResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteSafetyRuleResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteSafetyRule where+ hashWithSalt _salt DeleteSafetyRule' {..} =+ _salt `Prelude.hashWithSalt` safetyRuleArn++instance Prelude.NFData DeleteSafetyRule where+ rnf DeleteSafetyRule' {..} = Prelude.rnf safetyRuleArn++instance Data.ToHeaders DeleteSafetyRule where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteSafetyRule where+ toPath DeleteSafetyRule' {..} =+ Prelude.mconcat+ ["/safetyrule/", Data.toBS safetyRuleArn]++instance Data.ToQuery DeleteSafetyRule where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSafetyRuleResponse' smart constructor.+data DeleteSafetyRuleResponse = DeleteSafetyRuleResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSafetyRuleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteSafetyRuleResponse_httpStatus' - The response's http status code.+newDeleteSafetyRuleResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteSafetyRuleResponse+newDeleteSafetyRuleResponse pHttpStatus_ =+ DeleteSafetyRuleResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteSafetyRuleResponse_httpStatus :: Lens.Lens' DeleteSafetyRuleResponse Prelude.Int+deleteSafetyRuleResponse_httpStatus = Lens.lens (\DeleteSafetyRuleResponse' {httpStatus} -> httpStatus) (\s@DeleteSafetyRuleResponse' {} a -> s {httpStatus = a} :: DeleteSafetyRuleResponse)++instance Prelude.NFData DeleteSafetyRuleResponse where+ rnf DeleteSafetyRuleResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/DescribeCluster.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Route53RecoveryControlConfig.DescribeCluster+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Display the details about a cluster. The response includes the cluster+-- name, endpoints, status, and Amazon Resource Name (ARN).+module Amazonka.Route53RecoveryControlConfig.DescribeCluster+ ( -- * Creating a Request+ DescribeCluster (..),+ newDescribeCluster,++ -- * Request Lenses+ describeCluster_clusterArn,++ -- * Destructuring the Response+ DescribeClusterResponse (..),+ newDescribeClusterResponse,++ -- * Response Lenses+ describeClusterResponse_cluster,+ describeClusterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newDescribeCluster' smart constructor.+data DescribeCluster = DescribeCluster'+ { -- | The Amazon Resource Name (ARN) of the cluster.+ clusterArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterArn', 'describeCluster_clusterArn' - The Amazon Resource Name (ARN) of the cluster.+newDescribeCluster ::+ -- | 'clusterArn'+ Prelude.Text ->+ DescribeCluster+newDescribeCluster pClusterArn_ =+ DescribeCluster' {clusterArn = pClusterArn_}++-- | The Amazon Resource Name (ARN) of the cluster.+describeCluster_clusterArn :: Lens.Lens' DescribeCluster Prelude.Text+describeCluster_clusterArn = Lens.lens (\DescribeCluster' {clusterArn} -> clusterArn) (\s@DescribeCluster' {} a -> s {clusterArn = a} :: DescribeCluster)++instance Core.AWSRequest DescribeCluster where+ type+ AWSResponse DescribeCluster =+ DescribeClusterResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeClusterResponse'+ Prelude.<$> (x Data..?> "Cluster")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeCluster where+ hashWithSalt _salt DescribeCluster' {..} =+ _salt `Prelude.hashWithSalt` clusterArn++instance Prelude.NFData DescribeCluster where+ rnf DescribeCluster' {..} = Prelude.rnf clusterArn++instance Data.ToHeaders DescribeCluster where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeCluster where+ toPath DescribeCluster' {..} =+ Prelude.mconcat ["/cluster/", Data.toBS clusterArn]++instance Data.ToQuery DescribeCluster where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeClusterResponse' smart constructor.+data DescribeClusterResponse = DescribeClusterResponse'+ { -- | The cluster for the DescribeCluster request.+ cluster :: Prelude.Maybe Cluster,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cluster', 'describeClusterResponse_cluster' - The cluster for the DescribeCluster request.+--+-- 'httpStatus', 'describeClusterResponse_httpStatus' - The response's http status code.+newDescribeClusterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeClusterResponse+newDescribeClusterResponse pHttpStatus_ =+ DescribeClusterResponse'+ { cluster = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The cluster for the DescribeCluster request.+describeClusterResponse_cluster :: Lens.Lens' DescribeClusterResponse (Prelude.Maybe Cluster)+describeClusterResponse_cluster = Lens.lens (\DescribeClusterResponse' {cluster} -> cluster) (\s@DescribeClusterResponse' {} a -> s {cluster = a} :: DescribeClusterResponse)++-- | The response's http status code.+describeClusterResponse_httpStatus :: Lens.Lens' DescribeClusterResponse Prelude.Int+describeClusterResponse_httpStatus = Lens.lens (\DescribeClusterResponse' {httpStatus} -> httpStatus) (\s@DescribeClusterResponse' {} a -> s {httpStatus = a} :: DescribeClusterResponse)++instance Prelude.NFData DescribeClusterResponse where+ rnf DescribeClusterResponse' {..} =+ Prelude.rnf cluster+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/DescribeControlPanel.hs view
@@ -0,0 +1,163 @@+{-# 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.Route53RecoveryControlConfig.DescribeControlPanel+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays details about a control panel.+module Amazonka.Route53RecoveryControlConfig.DescribeControlPanel+ ( -- * Creating a Request+ DescribeControlPanel (..),+ newDescribeControlPanel,++ -- * Request Lenses+ describeControlPanel_controlPanelArn,++ -- * Destructuring the Response+ DescribeControlPanelResponse (..),+ newDescribeControlPanelResponse,++ -- * Response Lenses+ describeControlPanelResponse_controlPanel,+ describeControlPanelResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newDescribeControlPanel' smart constructor.+data DescribeControlPanel = DescribeControlPanel'+ { -- | The Amazon Resource Name (ARN) of the control panel.+ controlPanelArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeControlPanel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'controlPanelArn', 'describeControlPanel_controlPanelArn' - The Amazon Resource Name (ARN) of the control panel.+newDescribeControlPanel ::+ -- | 'controlPanelArn'+ Prelude.Text ->+ DescribeControlPanel+newDescribeControlPanel pControlPanelArn_ =+ DescribeControlPanel'+ { controlPanelArn =+ pControlPanelArn_+ }++-- | The Amazon Resource Name (ARN) of the control panel.+describeControlPanel_controlPanelArn :: Lens.Lens' DescribeControlPanel Prelude.Text+describeControlPanel_controlPanelArn = Lens.lens (\DescribeControlPanel' {controlPanelArn} -> controlPanelArn) (\s@DescribeControlPanel' {} a -> s {controlPanelArn = a} :: DescribeControlPanel)++instance Core.AWSRequest DescribeControlPanel where+ type+ AWSResponse DescribeControlPanel =+ DescribeControlPanelResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeControlPanelResponse'+ Prelude.<$> (x Data..?> "ControlPanel")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeControlPanel where+ hashWithSalt _salt DescribeControlPanel' {..} =+ _salt `Prelude.hashWithSalt` controlPanelArn++instance Prelude.NFData DescribeControlPanel where+ rnf DescribeControlPanel' {..} =+ Prelude.rnf controlPanelArn++instance Data.ToHeaders DescribeControlPanel where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeControlPanel where+ toPath DescribeControlPanel' {..} =+ Prelude.mconcat+ ["/controlpanel/", Data.toBS controlPanelArn]++instance Data.ToQuery DescribeControlPanel where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeControlPanelResponse' smart constructor.+data DescribeControlPanelResponse = DescribeControlPanelResponse'+ { -- | Information about the control panel.+ controlPanel :: Prelude.Maybe ControlPanel,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeControlPanelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'controlPanel', 'describeControlPanelResponse_controlPanel' - Information about the control panel.+--+-- 'httpStatus', 'describeControlPanelResponse_httpStatus' - The response's http status code.+newDescribeControlPanelResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeControlPanelResponse+newDescribeControlPanelResponse pHttpStatus_ =+ DescribeControlPanelResponse'+ { controlPanel =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the control panel.+describeControlPanelResponse_controlPanel :: Lens.Lens' DescribeControlPanelResponse (Prelude.Maybe ControlPanel)+describeControlPanelResponse_controlPanel = Lens.lens (\DescribeControlPanelResponse' {controlPanel} -> controlPanel) (\s@DescribeControlPanelResponse' {} a -> s {controlPanel = a} :: DescribeControlPanelResponse)++-- | The response's http status code.+describeControlPanelResponse_httpStatus :: Lens.Lens' DescribeControlPanelResponse Prelude.Int+describeControlPanelResponse_httpStatus = Lens.lens (\DescribeControlPanelResponse' {httpStatus} -> httpStatus) (\s@DescribeControlPanelResponse' {} a -> s {httpStatus = a} :: DescribeControlPanelResponse)++instance Prelude.NFData DescribeControlPanelResponse where+ rnf DescribeControlPanelResponse' {..} =+ Prelude.rnf controlPanel+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/DescribeRoutingControl.hs view
@@ -0,0 +1,173 @@+{-# 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.Route53RecoveryControlConfig.DescribeRoutingControl+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays details about a routing control. A routing control has one of+-- two states: ON and OFF. You can map the routing control state to the+-- state of an Amazon Route 53 health check, which can be used to control+-- routing.+--+-- To get or update the routing control state, see the Recovery Cluster+-- (data plane) API actions for Amazon Route 53 Application Recovery+-- Controller.+module Amazonka.Route53RecoveryControlConfig.DescribeRoutingControl+ ( -- * Creating a Request+ DescribeRoutingControl (..),+ newDescribeRoutingControl,++ -- * Request Lenses+ describeRoutingControl_routingControlArn,++ -- * Destructuring the Response+ DescribeRoutingControlResponse (..),+ newDescribeRoutingControlResponse,++ -- * Response Lenses+ describeRoutingControlResponse_routingControl,+ describeRoutingControlResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newDescribeRoutingControl' smart constructor.+data DescribeRoutingControl = DescribeRoutingControl'+ { -- | The Amazon Resource Name (ARN) of the routing control.+ routingControlArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRoutingControl' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'routingControlArn', 'describeRoutingControl_routingControlArn' - The Amazon Resource Name (ARN) of the routing control.+newDescribeRoutingControl ::+ -- | 'routingControlArn'+ Prelude.Text ->+ DescribeRoutingControl+newDescribeRoutingControl pRoutingControlArn_ =+ DescribeRoutingControl'+ { routingControlArn =+ pRoutingControlArn_+ }++-- | The Amazon Resource Name (ARN) of the routing control.+describeRoutingControl_routingControlArn :: Lens.Lens' DescribeRoutingControl Prelude.Text+describeRoutingControl_routingControlArn = Lens.lens (\DescribeRoutingControl' {routingControlArn} -> routingControlArn) (\s@DescribeRoutingControl' {} a -> s {routingControlArn = a} :: DescribeRoutingControl)++instance Core.AWSRequest DescribeRoutingControl where+ type+ AWSResponse DescribeRoutingControl =+ DescribeRoutingControlResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeRoutingControlResponse'+ Prelude.<$> (x Data..?> "RoutingControl")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeRoutingControl where+ hashWithSalt _salt DescribeRoutingControl' {..} =+ _salt `Prelude.hashWithSalt` routingControlArn++instance Prelude.NFData DescribeRoutingControl where+ rnf DescribeRoutingControl' {..} =+ Prelude.rnf routingControlArn++instance Data.ToHeaders DescribeRoutingControl where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeRoutingControl where+ toPath DescribeRoutingControl' {..} =+ Prelude.mconcat+ ["/routingcontrol/", Data.toBS routingControlArn]++instance Data.ToQuery DescribeRoutingControl where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeRoutingControlResponse' smart constructor.+data DescribeRoutingControlResponse = DescribeRoutingControlResponse'+ { -- | Information about the routing control.+ routingControl :: Prelude.Maybe RoutingControl,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRoutingControlResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'routingControl', 'describeRoutingControlResponse_routingControl' - Information about the routing control.+--+-- 'httpStatus', 'describeRoutingControlResponse_httpStatus' - The response's http status code.+newDescribeRoutingControlResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeRoutingControlResponse+newDescribeRoutingControlResponse pHttpStatus_ =+ DescribeRoutingControlResponse'+ { routingControl =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the routing control.+describeRoutingControlResponse_routingControl :: Lens.Lens' DescribeRoutingControlResponse (Prelude.Maybe RoutingControl)+describeRoutingControlResponse_routingControl = Lens.lens (\DescribeRoutingControlResponse' {routingControl} -> routingControl) (\s@DescribeRoutingControlResponse' {} a -> s {routingControl = a} :: DescribeRoutingControlResponse)++-- | The response's http status code.+describeRoutingControlResponse_httpStatus :: Lens.Lens' DescribeRoutingControlResponse Prelude.Int+describeRoutingControlResponse_httpStatus = Lens.lens (\DescribeRoutingControlResponse' {httpStatus} -> httpStatus) (\s@DescribeRoutingControlResponse' {} a -> s {httpStatus = a} :: DescribeRoutingControlResponse)++instance+ Prelude.NFData+ DescribeRoutingControlResponse+ where+ rnf DescribeRoutingControlResponse' {..} =+ Prelude.rnf routingControl+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/DescribeSafetyRule.hs view
@@ -0,0 +1,175 @@+{-# 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.Route53RecoveryControlConfig.DescribeSafetyRule+-- 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 information about a safety rule.+module Amazonka.Route53RecoveryControlConfig.DescribeSafetyRule+ ( -- * Creating a Request+ DescribeSafetyRule (..),+ newDescribeSafetyRule,++ -- * Request Lenses+ describeSafetyRule_safetyRuleArn,++ -- * Destructuring the Response+ DescribeSafetyRuleResponse (..),+ newDescribeSafetyRuleResponse,++ -- * Response Lenses+ describeSafetyRuleResponse_assertionRule,+ describeSafetyRuleResponse_gatingRule,+ describeSafetyRuleResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newDescribeSafetyRule' smart constructor.+data DescribeSafetyRule = DescribeSafetyRule'+ { -- | The ARN of the safety rule.+ safetyRuleArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSafetyRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'safetyRuleArn', 'describeSafetyRule_safetyRuleArn' - The ARN of the safety rule.+newDescribeSafetyRule ::+ -- | 'safetyRuleArn'+ Prelude.Text ->+ DescribeSafetyRule+newDescribeSafetyRule pSafetyRuleArn_ =+ DescribeSafetyRule'+ { safetyRuleArn =+ pSafetyRuleArn_+ }++-- | The ARN of the safety rule.+describeSafetyRule_safetyRuleArn :: Lens.Lens' DescribeSafetyRule Prelude.Text+describeSafetyRule_safetyRuleArn = Lens.lens (\DescribeSafetyRule' {safetyRuleArn} -> safetyRuleArn) (\s@DescribeSafetyRule' {} a -> s {safetyRuleArn = a} :: DescribeSafetyRule)++instance Core.AWSRequest DescribeSafetyRule where+ type+ AWSResponse DescribeSafetyRule =+ DescribeSafetyRuleResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeSafetyRuleResponse'+ Prelude.<$> (x Data..?> "AssertionRule")+ Prelude.<*> (x Data..?> "GatingRule")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeSafetyRule where+ hashWithSalt _salt DescribeSafetyRule' {..} =+ _salt `Prelude.hashWithSalt` safetyRuleArn++instance Prelude.NFData DescribeSafetyRule where+ rnf DescribeSafetyRule' {..} =+ Prelude.rnf safetyRuleArn++instance Data.ToHeaders DescribeSafetyRule where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DescribeSafetyRule where+ toPath DescribeSafetyRule' {..} =+ Prelude.mconcat+ ["/safetyrule/", Data.toBS safetyRuleArn]++instance Data.ToQuery DescribeSafetyRule where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeSafetyRuleResponse' smart constructor.+data DescribeSafetyRuleResponse = DescribeSafetyRuleResponse'+ { -- | The assertion rule in the response.+ assertionRule :: Prelude.Maybe AssertionRule,+ -- | The gating rule in the response.+ gatingRule :: Prelude.Maybe GatingRule,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSafetyRuleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assertionRule', 'describeSafetyRuleResponse_assertionRule' - The assertion rule in the response.+--+-- 'gatingRule', 'describeSafetyRuleResponse_gatingRule' - The gating rule in the response.+--+-- 'httpStatus', 'describeSafetyRuleResponse_httpStatus' - The response's http status code.+newDescribeSafetyRuleResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeSafetyRuleResponse+newDescribeSafetyRuleResponse pHttpStatus_ =+ DescribeSafetyRuleResponse'+ { assertionRule =+ Prelude.Nothing,+ gatingRule = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The assertion rule in the response.+describeSafetyRuleResponse_assertionRule :: Lens.Lens' DescribeSafetyRuleResponse (Prelude.Maybe AssertionRule)+describeSafetyRuleResponse_assertionRule = Lens.lens (\DescribeSafetyRuleResponse' {assertionRule} -> assertionRule) (\s@DescribeSafetyRuleResponse' {} a -> s {assertionRule = a} :: DescribeSafetyRuleResponse)++-- | The gating rule in the response.+describeSafetyRuleResponse_gatingRule :: Lens.Lens' DescribeSafetyRuleResponse (Prelude.Maybe GatingRule)+describeSafetyRuleResponse_gatingRule = Lens.lens (\DescribeSafetyRuleResponse' {gatingRule} -> gatingRule) (\s@DescribeSafetyRuleResponse' {} a -> s {gatingRule = a} :: DescribeSafetyRuleResponse)++-- | The response's http status code.+describeSafetyRuleResponse_httpStatus :: Lens.Lens' DescribeSafetyRuleResponse Prelude.Int+describeSafetyRuleResponse_httpStatus = Lens.lens (\DescribeSafetyRuleResponse' {httpStatus} -> httpStatus) (\s@DescribeSafetyRuleResponse' {} a -> s {httpStatus = a} :: DescribeSafetyRuleResponse)++instance Prelude.NFData DescribeSafetyRuleResponse where+ rnf DescribeSafetyRuleResponse' {..} =+ Prelude.rnf assertionRule+ `Prelude.seq` Prelude.rnf gatingRule+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/Lens.hs view
@@ -0,0 +1,274 @@+{-# 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.Route53RecoveryControlConfig.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.Route53RecoveryControlConfig.Lens+ ( -- * Operations++ -- ** CreateCluster+ createCluster_clientToken,+ createCluster_tags,+ createCluster_clusterName,+ createClusterResponse_cluster,+ createClusterResponse_httpStatus,++ -- ** CreateControlPanel+ createControlPanel_clientToken,+ createControlPanel_tags,+ createControlPanel_clusterArn,+ createControlPanel_controlPanelName,+ createControlPanelResponse_controlPanel,+ createControlPanelResponse_httpStatus,++ -- ** CreateRoutingControl+ createRoutingControl_clientToken,+ createRoutingControl_controlPanelArn,+ createRoutingControl_clusterArn,+ createRoutingControl_routingControlName,+ createRoutingControlResponse_routingControl,+ createRoutingControlResponse_httpStatus,++ -- ** CreateSafetyRule+ createSafetyRule_assertionRule,+ createSafetyRule_clientToken,+ createSafetyRule_gatingRule,+ createSafetyRule_tags,+ createSafetyRuleResponse_assertionRule,+ createSafetyRuleResponse_gatingRule,+ createSafetyRuleResponse_httpStatus,++ -- ** DeleteCluster+ deleteCluster_clusterArn,+ deleteClusterResponse_httpStatus,++ -- ** DeleteControlPanel+ deleteControlPanel_controlPanelArn,+ deleteControlPanelResponse_httpStatus,++ -- ** DeleteRoutingControl+ deleteRoutingControl_routingControlArn,+ deleteRoutingControlResponse_httpStatus,++ -- ** DeleteSafetyRule+ deleteSafetyRule_safetyRuleArn,+ deleteSafetyRuleResponse_httpStatus,++ -- ** DescribeCluster+ describeCluster_clusterArn,+ describeClusterResponse_cluster,+ describeClusterResponse_httpStatus,++ -- ** DescribeControlPanel+ describeControlPanel_controlPanelArn,+ describeControlPanelResponse_controlPanel,+ describeControlPanelResponse_httpStatus,++ -- ** DescribeRoutingControl+ describeRoutingControl_routingControlArn,+ describeRoutingControlResponse_routingControl,+ describeRoutingControlResponse_httpStatus,++ -- ** DescribeSafetyRule+ describeSafetyRule_safetyRuleArn,+ describeSafetyRuleResponse_assertionRule,+ describeSafetyRuleResponse_gatingRule,+ describeSafetyRuleResponse_httpStatus,++ -- ** ListAssociatedRoute53HealthChecks+ listAssociatedRoute53HealthChecks_maxResults,+ listAssociatedRoute53HealthChecks_nextToken,+ listAssociatedRoute53HealthChecks_routingControlArn,+ listAssociatedRoute53HealthChecksResponse_healthCheckIds,+ listAssociatedRoute53HealthChecksResponse_nextToken,+ listAssociatedRoute53HealthChecksResponse_httpStatus,++ -- ** ListClusters+ listClusters_maxResults,+ listClusters_nextToken,+ listClustersResponse_clusters,+ listClustersResponse_nextToken,+ listClustersResponse_httpStatus,++ -- ** ListControlPanels+ listControlPanels_clusterArn,+ listControlPanels_maxResults,+ listControlPanels_nextToken,+ listControlPanelsResponse_controlPanels,+ listControlPanelsResponse_nextToken,+ listControlPanelsResponse_httpStatus,++ -- ** ListRoutingControls+ listRoutingControls_maxResults,+ listRoutingControls_nextToken,+ listRoutingControls_controlPanelArn,+ listRoutingControlsResponse_nextToken,+ listRoutingControlsResponse_routingControls,+ listRoutingControlsResponse_httpStatus,++ -- ** ListSafetyRules+ listSafetyRules_maxResults,+ listSafetyRules_nextToken,+ listSafetyRules_controlPanelArn,+ listSafetyRulesResponse_nextToken,+ listSafetyRulesResponse_safetyRules,+ listSafetyRulesResponse_httpStatus,++ -- ** ListTagsForResource+ listTagsForResource_resourceArn,+ listTagsForResourceResponse_tags,+ listTagsForResourceResponse_httpStatus,++ -- ** TagResource+ tagResource_resourceArn,+ tagResource_tags,+ tagResourceResponse_httpStatus,++ -- ** UntagResource+ untagResource_resourceArn,+ untagResource_tagKeys,+ untagResourceResponse_httpStatus,++ -- ** UpdateControlPanel+ updateControlPanel_controlPanelArn,+ updateControlPanel_controlPanelName,+ updateControlPanelResponse_controlPanel,+ updateControlPanelResponse_httpStatus,++ -- ** UpdateRoutingControl+ updateRoutingControl_routingControlName,+ updateRoutingControl_routingControlArn,+ updateRoutingControlResponse_routingControl,+ updateRoutingControlResponse_httpStatus,++ -- ** UpdateSafetyRule+ updateSafetyRule_assertionRuleUpdate,+ updateSafetyRule_gatingRuleUpdate,+ updateSafetyRuleResponse_assertionRule,+ updateSafetyRuleResponse_gatingRule,+ updateSafetyRuleResponse_httpStatus,++ -- * Types++ -- ** AssertionRule+ assertionRule_status,+ assertionRule_controlPanelArn,+ assertionRule_safetyRuleArn,+ assertionRule_assertedControls,+ assertionRule_ruleConfig,+ assertionRule_waitPeriodMs,+ assertionRule_name,++ -- ** AssertionRuleUpdate+ assertionRuleUpdate_safetyRuleArn,+ assertionRuleUpdate_waitPeriodMs,+ assertionRuleUpdate_name,++ -- ** Cluster+ cluster_clusterArn,+ cluster_clusterEndpoints,+ cluster_name,+ cluster_status,++ -- ** ClusterEndpoint+ clusterEndpoint_endpoint,+ clusterEndpoint_region,++ -- ** ControlPanel+ controlPanel_clusterArn,+ controlPanel_controlPanelArn,+ controlPanel_defaultControlPanel,+ controlPanel_name,+ controlPanel_routingControlCount,+ controlPanel_status,++ -- ** GatingRule+ gatingRule_status,+ gatingRule_targetControls,+ gatingRule_controlPanelArn,+ gatingRule_safetyRuleArn,+ gatingRule_gatingControls,+ gatingRule_ruleConfig,+ gatingRule_waitPeriodMs,+ gatingRule_name,++ -- ** GatingRuleUpdate+ gatingRuleUpdate_safetyRuleArn,+ gatingRuleUpdate_waitPeriodMs,+ gatingRuleUpdate_name,++ -- ** NewAssertionRule+ newAssertionRule_controlPanelArn,+ newAssertionRule_assertedControls,+ newAssertionRule_ruleConfig,+ newAssertionRule_waitPeriodMs,+ newAssertionRule_name,++ -- ** NewGatingRule+ newGatingRule_targetControls,+ newGatingRule_controlPanelArn,+ newGatingRule_gatingControls,+ newGatingRule_ruleConfig,+ newGatingRule_waitPeriodMs,+ newGatingRule_name,++ -- ** RoutingControl+ routingControl_controlPanelArn,+ routingControl_name,+ routingControl_routingControlArn,+ routingControl_status,++ -- ** Rule+ rule_assertion,+ rule_gating,++ -- ** RuleConfig+ ruleConfig_type,+ ruleConfig_inverted,+ ruleConfig_threshold,+ )+where++import Amazonka.Route53RecoveryControlConfig.CreateCluster+import Amazonka.Route53RecoveryControlConfig.CreateControlPanel+import Amazonka.Route53RecoveryControlConfig.CreateRoutingControl+import Amazonka.Route53RecoveryControlConfig.CreateSafetyRule+import Amazonka.Route53RecoveryControlConfig.DeleteCluster+import Amazonka.Route53RecoveryControlConfig.DeleteControlPanel+import Amazonka.Route53RecoveryControlConfig.DeleteRoutingControl+import Amazonka.Route53RecoveryControlConfig.DeleteSafetyRule+import Amazonka.Route53RecoveryControlConfig.DescribeCluster+import Amazonka.Route53RecoveryControlConfig.DescribeControlPanel+import Amazonka.Route53RecoveryControlConfig.DescribeRoutingControl+import Amazonka.Route53RecoveryControlConfig.DescribeSafetyRule+import Amazonka.Route53RecoveryControlConfig.ListAssociatedRoute53HealthChecks+import Amazonka.Route53RecoveryControlConfig.ListClusters+import Amazonka.Route53RecoveryControlConfig.ListControlPanels+import Amazonka.Route53RecoveryControlConfig.ListRoutingControls+import Amazonka.Route53RecoveryControlConfig.ListSafetyRules+import Amazonka.Route53RecoveryControlConfig.ListTagsForResource+import Amazonka.Route53RecoveryControlConfig.TagResource+import Amazonka.Route53RecoveryControlConfig.Types.AssertionRule+import Amazonka.Route53RecoveryControlConfig.Types.AssertionRuleUpdate+import Amazonka.Route53RecoveryControlConfig.Types.Cluster+import Amazonka.Route53RecoveryControlConfig.Types.ClusterEndpoint+import Amazonka.Route53RecoveryControlConfig.Types.ControlPanel+import Amazonka.Route53RecoveryControlConfig.Types.GatingRule+import Amazonka.Route53RecoveryControlConfig.Types.GatingRuleUpdate+import Amazonka.Route53RecoveryControlConfig.Types.NewAssertionRule+import Amazonka.Route53RecoveryControlConfig.Types.NewGatingRule+import Amazonka.Route53RecoveryControlConfig.Types.RoutingControl+import Amazonka.Route53RecoveryControlConfig.Types.Rule+import Amazonka.Route53RecoveryControlConfig.Types.RuleConfig+import Amazonka.Route53RecoveryControlConfig.UntagResource+import Amazonka.Route53RecoveryControlConfig.UpdateControlPanel+import Amazonka.Route53RecoveryControlConfig.UpdateRoutingControl+import Amazonka.Route53RecoveryControlConfig.UpdateSafetyRule
+ gen/Amazonka/Route53RecoveryControlConfig/ListAssociatedRoute53HealthChecks.hs view
@@ -0,0 +1,260 @@+{-# 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.Route53RecoveryControlConfig.ListAssociatedRoute53HealthChecks+-- 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 an array of all Amazon Route 53 health checks associated with a+-- specific routing control.+--+-- This operation returns paginated results.+module Amazonka.Route53RecoveryControlConfig.ListAssociatedRoute53HealthChecks+ ( -- * Creating a Request+ ListAssociatedRoute53HealthChecks (..),+ newListAssociatedRoute53HealthChecks,++ -- * Request Lenses+ listAssociatedRoute53HealthChecks_maxResults,+ listAssociatedRoute53HealthChecks_nextToken,+ listAssociatedRoute53HealthChecks_routingControlArn,++ -- * Destructuring the Response+ ListAssociatedRoute53HealthChecksResponse (..),+ newListAssociatedRoute53HealthChecksResponse,++ -- * Response Lenses+ listAssociatedRoute53HealthChecksResponse_healthCheckIds,+ listAssociatedRoute53HealthChecksResponse_nextToken,+ listAssociatedRoute53HealthChecksResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newListAssociatedRoute53HealthChecks' smart constructor.+data ListAssociatedRoute53HealthChecks = ListAssociatedRoute53HealthChecks'+ { -- | The number of objects that you want to return with this call.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token that identifies which batch of results you want to see.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the routing control.+ routingControlArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAssociatedRoute53HealthChecks' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAssociatedRoute53HealthChecks_maxResults' - The number of objects that you want to return with this call.+--+-- 'nextToken', 'listAssociatedRoute53HealthChecks_nextToken' - The token that identifies which batch of results you want to see.+--+-- 'routingControlArn', 'listAssociatedRoute53HealthChecks_routingControlArn' - The Amazon Resource Name (ARN) of the routing control.+newListAssociatedRoute53HealthChecks ::+ -- | 'routingControlArn'+ Prelude.Text ->+ ListAssociatedRoute53HealthChecks+newListAssociatedRoute53HealthChecks+ pRoutingControlArn_ =+ ListAssociatedRoute53HealthChecks'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ routingControlArn = pRoutingControlArn_+ }++-- | The number of objects that you want to return with this call.+listAssociatedRoute53HealthChecks_maxResults :: Lens.Lens' ListAssociatedRoute53HealthChecks (Prelude.Maybe Prelude.Natural)+listAssociatedRoute53HealthChecks_maxResults = Lens.lens (\ListAssociatedRoute53HealthChecks' {maxResults} -> maxResults) (\s@ListAssociatedRoute53HealthChecks' {} a -> s {maxResults = a} :: ListAssociatedRoute53HealthChecks)++-- | The token that identifies which batch of results you want to see.+listAssociatedRoute53HealthChecks_nextToken :: Lens.Lens' ListAssociatedRoute53HealthChecks (Prelude.Maybe Prelude.Text)+listAssociatedRoute53HealthChecks_nextToken = Lens.lens (\ListAssociatedRoute53HealthChecks' {nextToken} -> nextToken) (\s@ListAssociatedRoute53HealthChecks' {} a -> s {nextToken = a} :: ListAssociatedRoute53HealthChecks)++-- | The Amazon Resource Name (ARN) of the routing control.+listAssociatedRoute53HealthChecks_routingControlArn :: Lens.Lens' ListAssociatedRoute53HealthChecks Prelude.Text+listAssociatedRoute53HealthChecks_routingControlArn = Lens.lens (\ListAssociatedRoute53HealthChecks' {routingControlArn} -> routingControlArn) (\s@ListAssociatedRoute53HealthChecks' {} a -> s {routingControlArn = a} :: ListAssociatedRoute53HealthChecks)++instance+ Core.AWSPager+ ListAssociatedRoute53HealthChecks+ where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listAssociatedRoute53HealthChecksResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listAssociatedRoute53HealthChecksResponse_healthCheckIds+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listAssociatedRoute53HealthChecks_nextToken+ Lens..~ rs+ Lens.^? listAssociatedRoute53HealthChecksResponse_nextToken+ Prelude.. Lens._Just++instance+ Core.AWSRequest+ ListAssociatedRoute53HealthChecks+ where+ type+ AWSResponse ListAssociatedRoute53HealthChecks =+ ListAssociatedRoute53HealthChecksResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListAssociatedRoute53HealthChecksResponse'+ Prelude.<$> (x Data..?> "HealthCheckIds" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ ListAssociatedRoute53HealthChecks+ where+ hashWithSalt+ _salt+ ListAssociatedRoute53HealthChecks' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` routingControlArn++instance+ Prelude.NFData+ ListAssociatedRoute53HealthChecks+ where+ rnf ListAssociatedRoute53HealthChecks' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf routingControlArn++instance+ Data.ToHeaders+ ListAssociatedRoute53HealthChecks+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToPath+ ListAssociatedRoute53HealthChecks+ where+ toPath ListAssociatedRoute53HealthChecks' {..} =+ Prelude.mconcat+ [ "/routingcontrol/",+ Data.toBS routingControlArn,+ "/associatedRoute53HealthChecks"+ ]++instance+ Data.ToQuery+ ListAssociatedRoute53HealthChecks+ where+ toQuery ListAssociatedRoute53HealthChecks' {..} =+ Prelude.mconcat+ [ "MaxResults" Data.=: maxResults,+ "NextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListAssociatedRoute53HealthChecksResponse' smart constructor.+data ListAssociatedRoute53HealthChecksResponse = ListAssociatedRoute53HealthChecksResponse'+ { -- | Identifiers for the health checks.+ healthCheckIds :: Prelude.Maybe [Prelude.Text],+ -- | Next token for listing health checks.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAssociatedRoute53HealthChecksResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'healthCheckIds', 'listAssociatedRoute53HealthChecksResponse_healthCheckIds' - Identifiers for the health checks.+--+-- 'nextToken', 'listAssociatedRoute53HealthChecksResponse_nextToken' - Next token for listing health checks.+--+-- 'httpStatus', 'listAssociatedRoute53HealthChecksResponse_httpStatus' - The response's http status code.+newListAssociatedRoute53HealthChecksResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListAssociatedRoute53HealthChecksResponse+newListAssociatedRoute53HealthChecksResponse+ pHttpStatus_ =+ ListAssociatedRoute53HealthChecksResponse'+ { healthCheckIds =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Identifiers for the health checks.+listAssociatedRoute53HealthChecksResponse_healthCheckIds :: Lens.Lens' ListAssociatedRoute53HealthChecksResponse (Prelude.Maybe [Prelude.Text])+listAssociatedRoute53HealthChecksResponse_healthCheckIds = Lens.lens (\ListAssociatedRoute53HealthChecksResponse' {healthCheckIds} -> healthCheckIds) (\s@ListAssociatedRoute53HealthChecksResponse' {} a -> s {healthCheckIds = a} :: ListAssociatedRoute53HealthChecksResponse) Prelude.. Lens.mapping Lens.coerced++-- | Next token for listing health checks.+listAssociatedRoute53HealthChecksResponse_nextToken :: Lens.Lens' ListAssociatedRoute53HealthChecksResponse (Prelude.Maybe Prelude.Text)+listAssociatedRoute53HealthChecksResponse_nextToken = Lens.lens (\ListAssociatedRoute53HealthChecksResponse' {nextToken} -> nextToken) (\s@ListAssociatedRoute53HealthChecksResponse' {} a -> s {nextToken = a} :: ListAssociatedRoute53HealthChecksResponse)++-- | The response's http status code.+listAssociatedRoute53HealthChecksResponse_httpStatus :: Lens.Lens' ListAssociatedRoute53HealthChecksResponse Prelude.Int+listAssociatedRoute53HealthChecksResponse_httpStatus = Lens.lens (\ListAssociatedRoute53HealthChecksResponse' {httpStatus} -> httpStatus) (\s@ListAssociatedRoute53HealthChecksResponse' {} a -> s {httpStatus = a} :: ListAssociatedRoute53HealthChecksResponse)++instance+ Prelude.NFData+ ListAssociatedRoute53HealthChecksResponse+ where+ rnf ListAssociatedRoute53HealthChecksResponse' {..} =+ Prelude.rnf healthCheckIds+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/ListClusters.hs view
@@ -0,0 +1,208 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Route53RecoveryControlConfig.ListClusters+-- 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 an array of all the clusters in an account.+--+-- This operation returns paginated results.+module Amazonka.Route53RecoveryControlConfig.ListClusters+ ( -- * Creating a Request+ ListClusters (..),+ newListClusters,++ -- * Request Lenses+ listClusters_maxResults,+ listClusters_nextToken,++ -- * Destructuring the Response+ ListClustersResponse (..),+ newListClustersResponse,++ -- * Response Lenses+ listClustersResponse_clusters,+ listClustersResponse_nextToken,+ listClustersResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newListClusters' smart constructor.+data ListClusters = ListClusters'+ { -- | The number of objects that you want to return with this call.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token that identifies which batch of results you want to see.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListClusters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listClusters_maxResults' - The number of objects that you want to return with this call.+--+-- 'nextToken', 'listClusters_nextToken' - The token that identifies which batch of results you want to see.+newListClusters ::+ ListClusters+newListClusters =+ ListClusters'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | The number of objects that you want to return with this call.+listClusters_maxResults :: Lens.Lens' ListClusters (Prelude.Maybe Prelude.Natural)+listClusters_maxResults = Lens.lens (\ListClusters' {maxResults} -> maxResults) (\s@ListClusters' {} a -> s {maxResults = a} :: ListClusters)++-- | The token that identifies which batch of results you want to see.+listClusters_nextToken :: Lens.Lens' ListClusters (Prelude.Maybe Prelude.Text)+listClusters_nextToken = Lens.lens (\ListClusters' {nextToken} -> nextToken) (\s@ListClusters' {} a -> s {nextToken = a} :: ListClusters)++instance Core.AWSPager ListClusters where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listClustersResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listClustersResponse_clusters+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listClusters_nextToken+ Lens..~ rs+ Lens.^? listClustersResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListClusters where+ type AWSResponse ListClusters = ListClustersResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListClustersResponse'+ Prelude.<$> (x Data..?> "Clusters" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListClusters where+ hashWithSalt _salt ListClusters' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListClusters where+ rnf ListClusters' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListClusters where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListClusters where+ toPath = Prelude.const "/cluster"++instance Data.ToQuery ListClusters where+ toQuery ListClusters' {..} =+ Prelude.mconcat+ [ "MaxResults" Data.=: maxResults,+ "NextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListClustersResponse' smart constructor.+data ListClustersResponse = ListClustersResponse'+ { -- | An array of the clusters in an account.+ clusters :: Prelude.Maybe [Cluster],+ -- | The token that identifies which batch of results you want to see.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListClustersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusters', 'listClustersResponse_clusters' - An array of the clusters in an account.+--+-- 'nextToken', 'listClustersResponse_nextToken' - The token that identifies which batch of results you want to see.+--+-- 'httpStatus', 'listClustersResponse_httpStatus' - The response's http status code.+newListClustersResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListClustersResponse+newListClustersResponse pHttpStatus_ =+ ListClustersResponse'+ { clusters = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An array of the clusters in an account.+listClustersResponse_clusters :: Lens.Lens' ListClustersResponse (Prelude.Maybe [Cluster])+listClustersResponse_clusters = Lens.lens (\ListClustersResponse' {clusters} -> clusters) (\s@ListClustersResponse' {} a -> s {clusters = a} :: ListClustersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token that identifies which batch of results you want to see.+listClustersResponse_nextToken :: Lens.Lens' ListClustersResponse (Prelude.Maybe Prelude.Text)+listClustersResponse_nextToken = Lens.lens (\ListClustersResponse' {nextToken} -> nextToken) (\s@ListClustersResponse' {} a -> s {nextToken = a} :: ListClustersResponse)++-- | The response's http status code.+listClustersResponse_httpStatus :: Lens.Lens' ListClustersResponse Prelude.Int+listClustersResponse_httpStatus = Lens.lens (\ListClustersResponse' {httpStatus} -> httpStatus) (\s@ListClustersResponse' {} a -> s {httpStatus = a} :: ListClustersResponse)++instance Prelude.NFData ListClustersResponse where+ rnf ListClustersResponse' {..} =+ Prelude.rnf clusters+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/ListControlPanels.hs view
@@ -0,0 +1,224 @@+{-# 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.Route53RecoveryControlConfig.ListControlPanels+-- 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 an array of control panels in an account or in a cluster.+--+-- This operation returns paginated results.+module Amazonka.Route53RecoveryControlConfig.ListControlPanels+ ( -- * Creating a Request+ ListControlPanels (..),+ newListControlPanels,++ -- * Request Lenses+ listControlPanels_clusterArn,+ listControlPanels_maxResults,+ listControlPanels_nextToken,++ -- * Destructuring the Response+ ListControlPanelsResponse (..),+ newListControlPanelsResponse,++ -- * Response Lenses+ listControlPanelsResponse_controlPanels,+ listControlPanelsResponse_nextToken,+ listControlPanelsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newListControlPanels' smart constructor.+data ListControlPanels = ListControlPanels'+ { -- | The Amazon Resource Name (ARN) of a cluster.+ clusterArn :: Prelude.Maybe Prelude.Text,+ -- | The number of objects that you want to return with this call.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token that identifies which batch of results you want to see.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListControlPanels' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterArn', 'listControlPanels_clusterArn' - The Amazon Resource Name (ARN) of a cluster.+--+-- 'maxResults', 'listControlPanels_maxResults' - The number of objects that you want to return with this call.+--+-- 'nextToken', 'listControlPanels_nextToken' - The token that identifies which batch of results you want to see.+newListControlPanels ::+ ListControlPanels+newListControlPanels =+ ListControlPanels'+ { clusterArn = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of a cluster.+listControlPanels_clusterArn :: Lens.Lens' ListControlPanels (Prelude.Maybe Prelude.Text)+listControlPanels_clusterArn = Lens.lens (\ListControlPanels' {clusterArn} -> clusterArn) (\s@ListControlPanels' {} a -> s {clusterArn = a} :: ListControlPanels)++-- | The number of objects that you want to return with this call.+listControlPanels_maxResults :: Lens.Lens' ListControlPanels (Prelude.Maybe Prelude.Natural)+listControlPanels_maxResults = Lens.lens (\ListControlPanels' {maxResults} -> maxResults) (\s@ListControlPanels' {} a -> s {maxResults = a} :: ListControlPanels)++-- | The token that identifies which batch of results you want to see.+listControlPanels_nextToken :: Lens.Lens' ListControlPanels (Prelude.Maybe Prelude.Text)+listControlPanels_nextToken = Lens.lens (\ListControlPanels' {nextToken} -> nextToken) (\s@ListControlPanels' {} a -> s {nextToken = a} :: ListControlPanels)++instance Core.AWSPager ListControlPanels where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listControlPanelsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listControlPanelsResponse_controlPanels+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listControlPanels_nextToken+ Lens..~ rs+ Lens.^? listControlPanelsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListControlPanels where+ type+ AWSResponse ListControlPanels =+ ListControlPanelsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListControlPanelsResponse'+ Prelude.<$> (x Data..?> "ControlPanels" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListControlPanels where+ hashWithSalt _salt ListControlPanels' {..} =+ _salt+ `Prelude.hashWithSalt` clusterArn+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListControlPanels where+ rnf ListControlPanels' {..} =+ Prelude.rnf clusterArn+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListControlPanels where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListControlPanels where+ toPath = Prelude.const "/controlpanels"++instance Data.ToQuery ListControlPanels where+ toQuery ListControlPanels' {..} =+ Prelude.mconcat+ [ "ClusterArn" Data.=: clusterArn,+ "MaxResults" Data.=: maxResults,+ "NextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListControlPanelsResponse' smart constructor.+data ListControlPanelsResponse = ListControlPanelsResponse'+ { -- | The result of a successful ListControlPanel request.+ controlPanels :: Prelude.Maybe [ControlPanel],+ -- | The token that identifies which batch of results you want to see.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListControlPanelsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'controlPanels', 'listControlPanelsResponse_controlPanels' - The result of a successful ListControlPanel request.+--+-- 'nextToken', 'listControlPanelsResponse_nextToken' - The token that identifies which batch of results you want to see.+--+-- 'httpStatus', 'listControlPanelsResponse_httpStatus' - The response's http status code.+newListControlPanelsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListControlPanelsResponse+newListControlPanelsResponse pHttpStatus_ =+ ListControlPanelsResponse'+ { controlPanels =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The result of a successful ListControlPanel request.+listControlPanelsResponse_controlPanels :: Lens.Lens' ListControlPanelsResponse (Prelude.Maybe [ControlPanel])+listControlPanelsResponse_controlPanels = Lens.lens (\ListControlPanelsResponse' {controlPanels} -> controlPanels) (\s@ListControlPanelsResponse' {} a -> s {controlPanels = a} :: ListControlPanelsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token that identifies which batch of results you want to see.+listControlPanelsResponse_nextToken :: Lens.Lens' ListControlPanelsResponse (Prelude.Maybe Prelude.Text)+listControlPanelsResponse_nextToken = Lens.lens (\ListControlPanelsResponse' {nextToken} -> nextToken) (\s@ListControlPanelsResponse' {} a -> s {nextToken = a} :: ListControlPanelsResponse)++-- | The response's http status code.+listControlPanelsResponse_httpStatus :: Lens.Lens' ListControlPanelsResponse Prelude.Int+listControlPanelsResponse_httpStatus = Lens.lens (\ListControlPanelsResponse' {httpStatus} -> httpStatus) (\s@ListControlPanelsResponse' {} a -> s {httpStatus = a} :: ListControlPanelsResponse)++instance Prelude.NFData ListControlPanelsResponse where+ rnf ListControlPanelsResponse' {..} =+ Prelude.rnf controlPanels+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/ListRoutingControls.hs view
@@ -0,0 +1,237 @@+{-# 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.Route53RecoveryControlConfig.ListRoutingControls+-- 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 an array of routing controls for a control panel. A routing+-- control is an Amazon Route 53 Application Recovery Controller construct+-- that has one of two states: ON and OFF. You can map the routing control+-- state to the state of an Amazon Route 53 health check, which can be used+-- to control routing.+--+-- This operation returns paginated results.+module Amazonka.Route53RecoveryControlConfig.ListRoutingControls+ ( -- * Creating a Request+ ListRoutingControls (..),+ newListRoutingControls,++ -- * Request Lenses+ listRoutingControls_maxResults,+ listRoutingControls_nextToken,+ listRoutingControls_controlPanelArn,++ -- * Destructuring the Response+ ListRoutingControlsResponse (..),+ newListRoutingControlsResponse,++ -- * Response Lenses+ listRoutingControlsResponse_nextToken,+ listRoutingControlsResponse_routingControls,+ listRoutingControlsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newListRoutingControls' smart constructor.+data ListRoutingControls = ListRoutingControls'+ { -- | The number of objects that you want to return with this call.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token that identifies which batch of results you want to see.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the control panel.+ controlPanelArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRoutingControls' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRoutingControls_maxResults' - The number of objects that you want to return with this call.+--+-- 'nextToken', 'listRoutingControls_nextToken' - The token that identifies which batch of results you want to see.+--+-- 'controlPanelArn', 'listRoutingControls_controlPanelArn' - The Amazon Resource Name (ARN) of the control panel.+newListRoutingControls ::+ -- | 'controlPanelArn'+ Prelude.Text ->+ ListRoutingControls+newListRoutingControls pControlPanelArn_ =+ ListRoutingControls'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ controlPanelArn = pControlPanelArn_+ }++-- | The number of objects that you want to return with this call.+listRoutingControls_maxResults :: Lens.Lens' ListRoutingControls (Prelude.Maybe Prelude.Natural)+listRoutingControls_maxResults = Lens.lens (\ListRoutingControls' {maxResults} -> maxResults) (\s@ListRoutingControls' {} a -> s {maxResults = a} :: ListRoutingControls)++-- | The token that identifies which batch of results you want to see.+listRoutingControls_nextToken :: Lens.Lens' ListRoutingControls (Prelude.Maybe Prelude.Text)+listRoutingControls_nextToken = Lens.lens (\ListRoutingControls' {nextToken} -> nextToken) (\s@ListRoutingControls' {} a -> s {nextToken = a} :: ListRoutingControls)++-- | The Amazon Resource Name (ARN) of the control panel.+listRoutingControls_controlPanelArn :: Lens.Lens' ListRoutingControls Prelude.Text+listRoutingControls_controlPanelArn = Lens.lens (\ListRoutingControls' {controlPanelArn} -> controlPanelArn) (\s@ListRoutingControls' {} a -> s {controlPanelArn = a} :: ListRoutingControls)++instance Core.AWSPager ListRoutingControls where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listRoutingControlsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listRoutingControlsResponse_routingControls+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listRoutingControls_nextToken+ Lens..~ rs+ Lens.^? listRoutingControlsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListRoutingControls where+ type+ AWSResponse ListRoutingControls =+ ListRoutingControlsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListRoutingControlsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "RoutingControls"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListRoutingControls where+ hashWithSalt _salt ListRoutingControls' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` controlPanelArn++instance Prelude.NFData ListRoutingControls where+ rnf ListRoutingControls' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf controlPanelArn++instance Data.ToHeaders ListRoutingControls where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListRoutingControls where+ toPath ListRoutingControls' {..} =+ Prelude.mconcat+ [ "/controlpanel/",+ Data.toBS controlPanelArn,+ "/routingcontrols"+ ]++instance Data.ToQuery ListRoutingControls where+ toQuery ListRoutingControls' {..} =+ Prelude.mconcat+ [ "MaxResults" Data.=: maxResults,+ "NextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListRoutingControlsResponse' smart constructor.+data ListRoutingControlsResponse = ListRoutingControlsResponse'+ { -- | The token that identifies which batch of results you want to see.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | An array of routing controls.+ routingControls :: Prelude.Maybe [RoutingControl],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRoutingControlsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRoutingControlsResponse_nextToken' - The token that identifies which batch of results you want to see.+--+-- 'routingControls', 'listRoutingControlsResponse_routingControls' - An array of routing controls.+--+-- 'httpStatus', 'listRoutingControlsResponse_httpStatus' - The response's http status code.+newListRoutingControlsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListRoutingControlsResponse+newListRoutingControlsResponse pHttpStatus_ =+ ListRoutingControlsResponse'+ { nextToken =+ Prelude.Nothing,+ routingControls = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The token that identifies which batch of results you want to see.+listRoutingControlsResponse_nextToken :: Lens.Lens' ListRoutingControlsResponse (Prelude.Maybe Prelude.Text)+listRoutingControlsResponse_nextToken = Lens.lens (\ListRoutingControlsResponse' {nextToken} -> nextToken) (\s@ListRoutingControlsResponse' {} a -> s {nextToken = a} :: ListRoutingControlsResponse)++-- | An array of routing controls.+listRoutingControlsResponse_routingControls :: Lens.Lens' ListRoutingControlsResponse (Prelude.Maybe [RoutingControl])+listRoutingControlsResponse_routingControls = Lens.lens (\ListRoutingControlsResponse' {routingControls} -> routingControls) (\s@ListRoutingControlsResponse' {} a -> s {routingControls = a} :: ListRoutingControlsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listRoutingControlsResponse_httpStatus :: Lens.Lens' ListRoutingControlsResponse Prelude.Int+listRoutingControlsResponse_httpStatus = Lens.lens (\ListRoutingControlsResponse' {httpStatus} -> httpStatus) (\s@ListRoutingControlsResponse' {} a -> s {httpStatus = a} :: ListRoutingControlsResponse)++instance Prelude.NFData ListRoutingControlsResponse where+ rnf ListRoutingControlsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf routingControls+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/ListSafetyRules.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.Route53RecoveryControlConfig.ListSafetyRules+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List the safety rules (the assertion rules and gating rules) that+-- you\'ve defined for the routing controls in a control panel.+--+-- This operation returns paginated results.+module Amazonka.Route53RecoveryControlConfig.ListSafetyRules+ ( -- * Creating a Request+ ListSafetyRules (..),+ newListSafetyRules,++ -- * Request Lenses+ listSafetyRules_maxResults,+ listSafetyRules_nextToken,+ listSafetyRules_controlPanelArn,++ -- * Destructuring the Response+ ListSafetyRulesResponse (..),+ newListSafetyRulesResponse,++ -- * Response Lenses+ listSafetyRulesResponse_nextToken,+ listSafetyRulesResponse_safetyRules,+ listSafetyRulesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newListSafetyRules' smart constructor.+data ListSafetyRules = ListSafetyRules'+ { -- | The number of objects that you want to return with this call.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token that identifies which batch of results you want to see.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the control panel.+ controlPanelArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSafetyRules' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSafetyRules_maxResults' - The number of objects that you want to return with this call.+--+-- 'nextToken', 'listSafetyRules_nextToken' - The token that identifies which batch of results you want to see.+--+-- 'controlPanelArn', 'listSafetyRules_controlPanelArn' - The Amazon Resource Name (ARN) of the control panel.+newListSafetyRules ::+ -- | 'controlPanelArn'+ Prelude.Text ->+ ListSafetyRules+newListSafetyRules pControlPanelArn_ =+ ListSafetyRules'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ controlPanelArn = pControlPanelArn_+ }++-- | The number of objects that you want to return with this call.+listSafetyRules_maxResults :: Lens.Lens' ListSafetyRules (Prelude.Maybe Prelude.Natural)+listSafetyRules_maxResults = Lens.lens (\ListSafetyRules' {maxResults} -> maxResults) (\s@ListSafetyRules' {} a -> s {maxResults = a} :: ListSafetyRules)++-- | The token that identifies which batch of results you want to see.+listSafetyRules_nextToken :: Lens.Lens' ListSafetyRules (Prelude.Maybe Prelude.Text)+listSafetyRules_nextToken = Lens.lens (\ListSafetyRules' {nextToken} -> nextToken) (\s@ListSafetyRules' {} a -> s {nextToken = a} :: ListSafetyRules)++-- | The Amazon Resource Name (ARN) of the control panel.+listSafetyRules_controlPanelArn :: Lens.Lens' ListSafetyRules Prelude.Text+listSafetyRules_controlPanelArn = Lens.lens (\ListSafetyRules' {controlPanelArn} -> controlPanelArn) (\s@ListSafetyRules' {} a -> s {controlPanelArn = a} :: ListSafetyRules)++instance Core.AWSPager ListSafetyRules where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listSafetyRulesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? listSafetyRulesResponse_safetyRules+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listSafetyRules_nextToken+ Lens..~ rs+ Lens.^? listSafetyRulesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListSafetyRules where+ type+ AWSResponse ListSafetyRules =+ ListSafetyRulesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListSafetyRulesResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "SafetyRules" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListSafetyRules where+ hashWithSalt _salt ListSafetyRules' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` controlPanelArn++instance Prelude.NFData ListSafetyRules where+ rnf ListSafetyRules' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf controlPanelArn++instance Data.ToHeaders ListSafetyRules where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListSafetyRules where+ toPath ListSafetyRules' {..} =+ Prelude.mconcat+ [ "/controlpanel/",+ Data.toBS controlPanelArn,+ "/safetyrules"+ ]++instance Data.ToQuery ListSafetyRules where+ toQuery ListSafetyRules' {..} =+ Prelude.mconcat+ [ "MaxResults" Data.=: maxResults,+ "NextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListSafetyRulesResponse' smart constructor.+data ListSafetyRulesResponse = ListSafetyRulesResponse'+ { -- | The token that identifies which batch of results you want to see.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The list of safety rules in a control panel.+ safetyRules :: Prelude.Maybe [Rule],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSafetyRulesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSafetyRulesResponse_nextToken' - The token that identifies which batch of results you want to see.+--+-- 'safetyRules', 'listSafetyRulesResponse_safetyRules' - The list of safety rules in a control panel.+--+-- 'httpStatus', 'listSafetyRulesResponse_httpStatus' - The response's http status code.+newListSafetyRulesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListSafetyRulesResponse+newListSafetyRulesResponse pHttpStatus_ =+ ListSafetyRulesResponse'+ { nextToken =+ Prelude.Nothing,+ safetyRules = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The token that identifies which batch of results you want to see.+listSafetyRulesResponse_nextToken :: Lens.Lens' ListSafetyRulesResponse (Prelude.Maybe Prelude.Text)+listSafetyRulesResponse_nextToken = Lens.lens (\ListSafetyRulesResponse' {nextToken} -> nextToken) (\s@ListSafetyRulesResponse' {} a -> s {nextToken = a} :: ListSafetyRulesResponse)++-- | The list of safety rules in a control panel.+listSafetyRulesResponse_safetyRules :: Lens.Lens' ListSafetyRulesResponse (Prelude.Maybe [Rule])+listSafetyRulesResponse_safetyRules = Lens.lens (\ListSafetyRulesResponse' {safetyRules} -> safetyRules) (\s@ListSafetyRulesResponse' {} a -> s {safetyRules = a} :: ListSafetyRulesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSafetyRulesResponse_httpStatus :: Lens.Lens' ListSafetyRulesResponse Prelude.Int+listSafetyRulesResponse_httpStatus = Lens.lens (\ListSafetyRulesResponse' {httpStatus} -> httpStatus) (\s@ListSafetyRulesResponse' {} a -> s {httpStatus = a} :: ListSafetyRulesResponse)++instance Prelude.NFData ListSafetyRulesResponse where+ rnf ListSafetyRulesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf safetyRules+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/ListTagsForResource.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Route53RecoveryControlConfig.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 a resource.+module Amazonka.Route53RecoveryControlConfig.ListTagsForResource+ ( -- * Creating a Request+ ListTagsForResource (..),+ newListTagsForResource,++ -- * Request Lenses+ listTagsForResource_resourceArn,++ -- * Destructuring the Response+ ListTagsForResourceResponse (..),+ newListTagsForResourceResponse,++ -- * Response Lenses+ listTagsForResourceResponse_tags,+ listTagsForResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+ { -- | The Amazon Resource Name (ARN) for the resource that\'s tagged.+ 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 the resource that\'s tagged.+newListTagsForResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ ListTagsForResource+newListTagsForResource pResourceArn_ =+ ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) for the resource that\'s tagged.+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 associated with the resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The tags associated with the resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+ ListTagsForResourceResponse'+ { tags =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The tags associated with the resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+ rnf ListTagsForResourceResponse' {..} =+ Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/TagResource.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.Route53RecoveryControlConfig.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)+--+-- Adds a tag to a resource.+module Amazonka.Route53RecoveryControlConfig.TagResource+ ( -- * Creating a Request+ TagResource (..),+ newTagResource,++ -- * Request Lenses+ tagResource_resourceArn,+ tagResource_tags,++ -- * Destructuring the Response+ TagResourceResponse (..),+ newTagResourceResponse,++ -- * Response Lenses+ tagResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | Request of adding tag to the resource+--+-- /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+ { -- | The Amazon Resource Name (ARN) for the resource that\'s tagged.+ resourceArn :: Prelude.Text,+ -- | The tags associated with the resource.+ tags :: Prelude.HashMap Prelude.Text Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) for the resource that\'s tagged.+--+-- 'tags', 'tagResource_tags' - The tags associated with the resource.+newTagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ TagResource+newTagResource pResourceArn_ =+ TagResource'+ { resourceArn = pResourceArn_,+ tags = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) for the resource that\'s tagged.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The tags associated with the resource.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+ type AWSResponse TagResource = TagResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ TagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable TagResource where+ hashWithSalt _salt TagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+ rnf TagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON TagResource where+ toJSON TagResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Tags" Data..= tags)]+ )++instance Data.ToPath TagResource where+ toPath TagResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ TagResourceResponse+newTagResourceResponse pHttpStatus_ =+ TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+ rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/Types.hs view
@@ -0,0 +1,290 @@+{-# 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.Route53RecoveryControlConfig.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.Route53RecoveryControlConfig.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _AccessDeniedException,+ _ConflictException,+ _InternalServerException,+ _ResourceNotFoundException,+ _ServiceQuotaExceededException,+ _ThrottlingException,+ _ValidationException,++ -- * RuleType+ RuleType (..),++ -- * Status+ Status (..),++ -- * AssertionRule+ AssertionRule (..),+ newAssertionRule,+ assertionRule_status,+ assertionRule_controlPanelArn,+ assertionRule_safetyRuleArn,+ assertionRule_assertedControls,+ assertionRule_ruleConfig,+ assertionRule_waitPeriodMs,+ assertionRule_name,++ -- * AssertionRuleUpdate+ AssertionRuleUpdate (..),+ newAssertionRuleUpdate,+ assertionRuleUpdate_safetyRuleArn,+ assertionRuleUpdate_waitPeriodMs,+ assertionRuleUpdate_name,++ -- * Cluster+ Cluster (..),+ newCluster,+ cluster_clusterArn,+ cluster_clusterEndpoints,+ cluster_name,+ cluster_status,++ -- * ClusterEndpoint+ ClusterEndpoint (..),+ newClusterEndpoint,+ clusterEndpoint_endpoint,+ clusterEndpoint_region,++ -- * ControlPanel+ ControlPanel (..),+ newControlPanel,+ controlPanel_clusterArn,+ controlPanel_controlPanelArn,+ controlPanel_defaultControlPanel,+ controlPanel_name,+ controlPanel_routingControlCount,+ controlPanel_status,++ -- * GatingRule+ GatingRule (..),+ newGatingRule,+ gatingRule_status,+ gatingRule_targetControls,+ gatingRule_controlPanelArn,+ gatingRule_safetyRuleArn,+ gatingRule_gatingControls,+ gatingRule_ruleConfig,+ gatingRule_waitPeriodMs,+ gatingRule_name,++ -- * GatingRuleUpdate+ GatingRuleUpdate (..),+ newGatingRuleUpdate,+ gatingRuleUpdate_safetyRuleArn,+ gatingRuleUpdate_waitPeriodMs,+ gatingRuleUpdate_name,++ -- * NewAssertionRule+ NewAssertionRule (..),+ newNewAssertionRule,+ newAssertionRule_controlPanelArn,+ newAssertionRule_assertedControls,+ newAssertionRule_ruleConfig,+ newAssertionRule_waitPeriodMs,+ newAssertionRule_name,++ -- * NewGatingRule+ NewGatingRule (..),+ newNewGatingRule,+ newGatingRule_targetControls,+ newGatingRule_controlPanelArn,+ newGatingRule_gatingControls,+ newGatingRule_ruleConfig,+ newGatingRule_waitPeriodMs,+ newGatingRule_name,++ -- * RoutingControl+ RoutingControl (..),+ newRoutingControl,+ routingControl_controlPanelArn,+ routingControl_name,+ routingControl_routingControlArn,+ routingControl_status,++ -- * Rule+ Rule (..),+ newRule,+ rule_assertion,+ rule_gating,++ -- * RuleConfig+ RuleConfig (..),+ newRuleConfig,+ ruleConfig_type,+ ruleConfig_inverted,+ ruleConfig_threshold,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Prelude as Prelude+import Amazonka.Route53RecoveryControlConfig.Types.AssertionRule+import Amazonka.Route53RecoveryControlConfig.Types.AssertionRuleUpdate+import Amazonka.Route53RecoveryControlConfig.Types.Cluster+import Amazonka.Route53RecoveryControlConfig.Types.ClusterEndpoint+import Amazonka.Route53RecoveryControlConfig.Types.ControlPanel+import Amazonka.Route53RecoveryControlConfig.Types.GatingRule+import Amazonka.Route53RecoveryControlConfig.Types.GatingRuleUpdate+import Amazonka.Route53RecoveryControlConfig.Types.NewAssertionRule+import Amazonka.Route53RecoveryControlConfig.Types.NewGatingRule+import Amazonka.Route53RecoveryControlConfig.Types.RoutingControl+import Amazonka.Route53RecoveryControlConfig.Types.Rule+import Amazonka.Route53RecoveryControlConfig.Types.RuleConfig+import Amazonka.Route53RecoveryControlConfig.Types.RuleType+import Amazonka.Route53RecoveryControlConfig.Types.Status+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-11-02@ of the Amazon Route53 Recovery Control Config SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev =+ "Route53RecoveryControlConfig",+ Core.signer = Sign.v4,+ Core.endpointPrefix =+ "route53-recovery-control-config",+ Core.signingName = "route53-recovery-control-config",+ Core.version = "2020-11-02",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error =+ Core.parseJSONError "Route53RecoveryControlConfig",+ 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++-- | 403 response - You do not have sufficient access to perform this action.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+ Core._MatchServiceError+ defaultService+ "AccessDeniedException"+ Prelude.. Core.hasStatus 403++-- | 409 response - ConflictException. You might be using a predefined+-- variable.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+ Core._MatchServiceError+ defaultService+ "ConflictException"+ Prelude.. Core.hasStatus 409++-- | 500 response - InternalServiceError. Temporary service error. Retry the+-- request.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+ Core._MatchServiceError+ defaultService+ "InternalServerException"+ Prelude.. Core.hasStatus 500++-- | 404 response - MalformedQueryString. The query string contains a syntax+-- error or resource not found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+ Core._MatchServiceError+ defaultService+ "ResourceNotFoundException"+ Prelude.. Core.hasStatus 404++-- | 402 response - You attempted to create more resources than the service+-- allows based on service quotas.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+ Core._MatchServiceError+ defaultService+ "ServiceQuotaExceededException"+ Prelude.. Core.hasStatus 402++-- | 429 response - LimitExceededException or TooManyRequestsException.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+ Core._MatchServiceError+ defaultService+ "ThrottlingException"+ Prelude.. Core.hasStatus 429++-- | 400 response - Multiple causes. For example, you might have a malformed+-- query string and input parameter might be out of range, or you might+-- have used parameters together incorrectly.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+ Core._MatchServiceError+ defaultService+ "ValidationException"+ Prelude.. Core.hasStatus 400
+ gen/Amazonka/Route53RecoveryControlConfig/Types/AssertionRule.hs view
@@ -0,0 +1,215 @@+{-# 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.Route53RecoveryControlConfig.Types.AssertionRule+-- 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.Route53RecoveryControlConfig.Types.AssertionRule 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.Route53RecoveryControlConfig.Types.RuleConfig+import Amazonka.Route53RecoveryControlConfig.Types.Status++-- | An assertion rule enforces that, when you change a routing control+-- state, that the criteria that you set in the rule configuration is met.+-- Otherwise, the change to the routing control is not accepted. For+-- example, the criteria might be that at least one routing control state+-- is On after the transaction so that traffic continues to flow to at+-- least one cell for the application. This ensures that you avoid a+-- fail-open scenario.+--+-- /See:/ 'newAssertionRule' smart constructor.+data AssertionRule = AssertionRule'+ { -- | The deployment status of an assertion rule. Status can be one of the+ -- following: PENDING, DEPLOYED, PENDING_DELETION.+ status :: Status,+ -- | The Amazon Resource Name (ARN) of the control panel.+ controlPanelArn :: Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the assertion rule.+ safetyRuleArn :: Prelude.Text,+ -- | The routing controls that are part of transactions that are evaluated to+ -- determine if a request to change a routing control state is allowed. For+ -- example, you might include three routing controls, one for each of three+ -- Amazon Web Services Regions.+ assertedControls :: [Prelude.Text],+ -- | The criteria that you set for specific assertion routing controls+ -- (AssertedControls) that designate how many routing control states must+ -- be ON as the result of a transaction. For example, if you have three+ -- assertion routing controls, you might specify ATLEAST 2 for your rule+ -- configuration. This means that at least two assertion routing control+ -- states must be ON, so that at least two Amazon Web Services Regions have+ -- traffic flowing to them.+ ruleConfig :: RuleConfig,+ -- | An evaluation period, in milliseconds (ms), during which any request+ -- against the target routing controls will fail. This helps prevent+ -- \"flapping\" of state. The wait period is 5000 ms by default, but you+ -- can choose a custom value.+ waitPeriodMs :: Prelude.Int,+ -- | Name of the assertion rule. You can use any non-white space character in+ -- the name.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssertionRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'assertionRule_status' - The deployment status of an assertion rule. Status can be one of the+-- following: PENDING, DEPLOYED, PENDING_DELETION.+--+-- 'controlPanelArn', 'assertionRule_controlPanelArn' - The Amazon Resource Name (ARN) of the control panel.+--+-- 'safetyRuleArn', 'assertionRule_safetyRuleArn' - The Amazon Resource Name (ARN) of the assertion rule.+--+-- 'assertedControls', 'assertionRule_assertedControls' - The routing controls that are part of transactions that are evaluated to+-- determine if a request to change a routing control state is allowed. For+-- example, you might include three routing controls, one for each of three+-- Amazon Web Services Regions.+--+-- 'ruleConfig', 'assertionRule_ruleConfig' - The criteria that you set for specific assertion routing controls+-- (AssertedControls) that designate how many routing control states must+-- be ON as the result of a transaction. For example, if you have three+-- assertion routing controls, you might specify ATLEAST 2 for your rule+-- configuration. This means that at least two assertion routing control+-- states must be ON, so that at least two Amazon Web Services Regions have+-- traffic flowing to them.+--+-- 'waitPeriodMs', 'assertionRule_waitPeriodMs' - An evaluation period, in milliseconds (ms), during which any request+-- against the target routing controls will fail. This helps prevent+-- \"flapping\" of state. The wait period is 5000 ms by default, but you+-- can choose a custom value.+--+-- 'name', 'assertionRule_name' - Name of the assertion rule. You can use any non-white space character in+-- the name.+newAssertionRule ::+ -- | 'status'+ Status ->+ -- | 'controlPanelArn'+ Prelude.Text ->+ -- | 'safetyRuleArn'+ Prelude.Text ->+ -- | 'ruleConfig'+ RuleConfig ->+ -- | 'waitPeriodMs'+ Prelude.Int ->+ -- | 'name'+ Prelude.Text ->+ AssertionRule+newAssertionRule+ pStatus_+ pControlPanelArn_+ pSafetyRuleArn_+ pRuleConfig_+ pWaitPeriodMs_+ pName_ =+ AssertionRule'+ { status = pStatus_,+ controlPanelArn = pControlPanelArn_,+ safetyRuleArn = pSafetyRuleArn_,+ assertedControls = Prelude.mempty,+ ruleConfig = pRuleConfig_,+ waitPeriodMs = pWaitPeriodMs_,+ name = pName_+ }++-- | The deployment status of an assertion rule. Status can be one of the+-- following: PENDING, DEPLOYED, PENDING_DELETION.+assertionRule_status :: Lens.Lens' AssertionRule Status+assertionRule_status = Lens.lens (\AssertionRule' {status} -> status) (\s@AssertionRule' {} a -> s {status = a} :: AssertionRule)++-- | The Amazon Resource Name (ARN) of the control panel.+assertionRule_controlPanelArn :: Lens.Lens' AssertionRule Prelude.Text+assertionRule_controlPanelArn = Lens.lens (\AssertionRule' {controlPanelArn} -> controlPanelArn) (\s@AssertionRule' {} a -> s {controlPanelArn = a} :: AssertionRule)++-- | The Amazon Resource Name (ARN) of the assertion rule.+assertionRule_safetyRuleArn :: Lens.Lens' AssertionRule Prelude.Text+assertionRule_safetyRuleArn = Lens.lens (\AssertionRule' {safetyRuleArn} -> safetyRuleArn) (\s@AssertionRule' {} a -> s {safetyRuleArn = a} :: AssertionRule)++-- | The routing controls that are part of transactions that are evaluated to+-- determine if a request to change a routing control state is allowed. For+-- example, you might include three routing controls, one for each of three+-- Amazon Web Services Regions.+assertionRule_assertedControls :: Lens.Lens' AssertionRule [Prelude.Text]+assertionRule_assertedControls = Lens.lens (\AssertionRule' {assertedControls} -> assertedControls) (\s@AssertionRule' {} a -> s {assertedControls = a} :: AssertionRule) Prelude.. Lens.coerced++-- | The criteria that you set for specific assertion routing controls+-- (AssertedControls) that designate how many routing control states must+-- be ON as the result of a transaction. For example, if you have three+-- assertion routing controls, you might specify ATLEAST 2 for your rule+-- configuration. This means that at least two assertion routing control+-- states must be ON, so that at least two Amazon Web Services Regions have+-- traffic flowing to them.+assertionRule_ruleConfig :: Lens.Lens' AssertionRule RuleConfig+assertionRule_ruleConfig = Lens.lens (\AssertionRule' {ruleConfig} -> ruleConfig) (\s@AssertionRule' {} a -> s {ruleConfig = a} :: AssertionRule)++-- | An evaluation period, in milliseconds (ms), during which any request+-- against the target routing controls will fail. This helps prevent+-- \"flapping\" of state. The wait period is 5000 ms by default, but you+-- can choose a custom value.+assertionRule_waitPeriodMs :: Lens.Lens' AssertionRule Prelude.Int+assertionRule_waitPeriodMs = Lens.lens (\AssertionRule' {waitPeriodMs} -> waitPeriodMs) (\s@AssertionRule' {} a -> s {waitPeriodMs = a} :: AssertionRule)++-- | Name of the assertion rule. You can use any non-white space character in+-- the name.+assertionRule_name :: Lens.Lens' AssertionRule Prelude.Text+assertionRule_name = Lens.lens (\AssertionRule' {name} -> name) (\s@AssertionRule' {} a -> s {name = a} :: AssertionRule)++instance Data.FromJSON AssertionRule where+ parseJSON =+ Data.withObject+ "AssertionRule"+ ( \x ->+ AssertionRule'+ Prelude.<$> (x Data..: "Status")+ Prelude.<*> (x Data..: "ControlPanelArn")+ Prelude.<*> (x Data..: "SafetyRuleArn")+ Prelude.<*> ( x+ Data..:? "AssertedControls"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..: "RuleConfig")+ Prelude.<*> (x Data..: "WaitPeriodMs")+ Prelude.<*> (x Data..: "Name")+ )++instance Prelude.Hashable AssertionRule where+ hashWithSalt _salt AssertionRule' {..} =+ _salt+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` controlPanelArn+ `Prelude.hashWithSalt` safetyRuleArn+ `Prelude.hashWithSalt` assertedControls+ `Prelude.hashWithSalt` ruleConfig+ `Prelude.hashWithSalt` waitPeriodMs+ `Prelude.hashWithSalt` name++instance Prelude.NFData AssertionRule where+ rnf AssertionRule' {..} =+ Prelude.rnf status+ `Prelude.seq` Prelude.rnf controlPanelArn+ `Prelude.seq` Prelude.rnf safetyRuleArn+ `Prelude.seq` Prelude.rnf assertedControls+ `Prelude.seq` Prelude.rnf ruleConfig+ `Prelude.seq` Prelude.rnf waitPeriodMs+ `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/Route53RecoveryControlConfig/Types/AssertionRuleUpdate.hs view
@@ -0,0 +1,120 @@+{-# 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.Route53RecoveryControlConfig.Types.AssertionRuleUpdate+-- 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.Route53RecoveryControlConfig.Types.AssertionRuleUpdate where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An update to an assertion rule. You can update the name or the+-- evaluation period (wait period). If you don\'t specify one of the items+-- to update, the item is unchanged.+--+-- /See:/ 'newAssertionRuleUpdate' smart constructor.+data AssertionRuleUpdate = AssertionRuleUpdate'+ { -- | The Amazon Resource Name (ARN) of the assertion rule.+ safetyRuleArn :: Prelude.Text,+ -- | An evaluation period, in milliseconds (ms), during which any request+ -- against the target routing controls will fail. This helps prevent+ -- \"flapping\" of state. The wait period is 5000 ms by default, but you+ -- can choose a custom value.+ waitPeriodMs :: Prelude.Int,+ -- | The name of the assertion rule. You can use any non-white space+ -- character in the name.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssertionRuleUpdate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'safetyRuleArn', 'assertionRuleUpdate_safetyRuleArn' - The Amazon Resource Name (ARN) of the assertion rule.+--+-- 'waitPeriodMs', 'assertionRuleUpdate_waitPeriodMs' - An evaluation period, in milliseconds (ms), during which any request+-- against the target routing controls will fail. This helps prevent+-- \"flapping\" of state. The wait period is 5000 ms by default, but you+-- can choose a custom value.+--+-- 'name', 'assertionRuleUpdate_name' - The name of the assertion rule. You can use any non-white space+-- character in the name.+newAssertionRuleUpdate ::+ -- | 'safetyRuleArn'+ Prelude.Text ->+ -- | 'waitPeriodMs'+ Prelude.Int ->+ -- | 'name'+ Prelude.Text ->+ AssertionRuleUpdate+newAssertionRuleUpdate+ pSafetyRuleArn_+ pWaitPeriodMs_+ pName_ =+ AssertionRuleUpdate'+ { safetyRuleArn =+ pSafetyRuleArn_,+ waitPeriodMs = pWaitPeriodMs_,+ name = pName_+ }++-- | The Amazon Resource Name (ARN) of the assertion rule.+assertionRuleUpdate_safetyRuleArn :: Lens.Lens' AssertionRuleUpdate Prelude.Text+assertionRuleUpdate_safetyRuleArn = Lens.lens (\AssertionRuleUpdate' {safetyRuleArn} -> safetyRuleArn) (\s@AssertionRuleUpdate' {} a -> s {safetyRuleArn = a} :: AssertionRuleUpdate)++-- | An evaluation period, in milliseconds (ms), during which any request+-- against the target routing controls will fail. This helps prevent+-- \"flapping\" of state. The wait period is 5000 ms by default, but you+-- can choose a custom value.+assertionRuleUpdate_waitPeriodMs :: Lens.Lens' AssertionRuleUpdate Prelude.Int+assertionRuleUpdate_waitPeriodMs = Lens.lens (\AssertionRuleUpdate' {waitPeriodMs} -> waitPeriodMs) (\s@AssertionRuleUpdate' {} a -> s {waitPeriodMs = a} :: AssertionRuleUpdate)++-- | The name of the assertion rule. You can use any non-white space+-- character in the name.+assertionRuleUpdate_name :: Lens.Lens' AssertionRuleUpdate Prelude.Text+assertionRuleUpdate_name = Lens.lens (\AssertionRuleUpdate' {name} -> name) (\s@AssertionRuleUpdate' {} a -> s {name = a} :: AssertionRuleUpdate)++instance Prelude.Hashable AssertionRuleUpdate where+ hashWithSalt _salt AssertionRuleUpdate' {..} =+ _salt+ `Prelude.hashWithSalt` safetyRuleArn+ `Prelude.hashWithSalt` waitPeriodMs+ `Prelude.hashWithSalt` name++instance Prelude.NFData AssertionRuleUpdate where+ rnf AssertionRuleUpdate' {..} =+ Prelude.rnf safetyRuleArn+ `Prelude.seq` Prelude.rnf waitPeriodMs+ `Prelude.seq` Prelude.rnf name++instance Data.ToJSON AssertionRuleUpdate where+ toJSON AssertionRuleUpdate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("SafetyRuleArn" Data..= safetyRuleArn),+ Prelude.Just ("WaitPeriodMs" Data..= waitPeriodMs),+ Prelude.Just ("Name" Data..= name)+ ]+ )
+ gen/Amazonka/Route53RecoveryControlConfig/Types/Cluster.hs view
@@ -0,0 +1,130 @@+{-# 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.Route53RecoveryControlConfig.Types.Cluster+-- 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.Route53RecoveryControlConfig.Types.Cluster 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.Route53RecoveryControlConfig.Types.ClusterEndpoint+import Amazonka.Route53RecoveryControlConfig.Types.Status++-- | A set of five redundant Regional endpoints against which you can execute+-- API calls to update or get the state of routing controls. You can host+-- multiple control panels and routing controls on one cluster.+--+-- /See:/ 'newCluster' smart constructor.+data Cluster = Cluster'+ { -- | The Amazon Resource Name (ARN) of the cluster.+ clusterArn :: Prelude.Maybe Prelude.Text,+ -- | Endpoints for a cluster. Specify one of these endpoints when you want to+ -- set or retrieve a routing control state in the cluster.+ --+ -- To get or update the routing control state, see the Amazon Route 53+ -- Application Recovery Controller Routing Control Actions.+ clusterEndpoints :: Prelude.Maybe [ClusterEndpoint],+ -- | The name of the cluster.+ name :: Prelude.Maybe Prelude.Text,+ -- | Deployment status of a resource. Status can be one of the following:+ -- PENDING, DEPLOYED, PENDING_DELETION.+ status :: Prelude.Maybe Status+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Cluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterArn', 'cluster_clusterArn' - The Amazon Resource Name (ARN) of the cluster.+--+-- 'clusterEndpoints', 'cluster_clusterEndpoints' - Endpoints for a cluster. Specify one of these endpoints when you want to+-- set or retrieve a routing control state in the cluster.+--+-- To get or update the routing control state, see the Amazon Route 53+-- Application Recovery Controller Routing Control Actions.+--+-- 'name', 'cluster_name' - The name of the cluster.+--+-- 'status', 'cluster_status' - Deployment status of a resource. Status can be one of the following:+-- PENDING, DEPLOYED, PENDING_DELETION.+newCluster ::+ Cluster+newCluster =+ Cluster'+ { clusterArn = Prelude.Nothing,+ clusterEndpoints = Prelude.Nothing,+ name = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the cluster.+cluster_clusterArn :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_clusterArn = Lens.lens (\Cluster' {clusterArn} -> clusterArn) (\s@Cluster' {} a -> s {clusterArn = a} :: Cluster)++-- | Endpoints for a cluster. Specify one of these endpoints when you want to+-- set or retrieve a routing control state in the cluster.+--+-- To get or update the routing control state, see the Amazon Route 53+-- Application Recovery Controller Routing Control Actions.+cluster_clusterEndpoints :: Lens.Lens' Cluster (Prelude.Maybe [ClusterEndpoint])+cluster_clusterEndpoints = Lens.lens (\Cluster' {clusterEndpoints} -> clusterEndpoints) (\s@Cluster' {} a -> s {clusterEndpoints = a} :: Cluster) Prelude.. Lens.mapping Lens.coerced++-- | The name of the cluster.+cluster_name :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_name = Lens.lens (\Cluster' {name} -> name) (\s@Cluster' {} a -> s {name = a} :: Cluster)++-- | Deployment status of a resource. Status can be one of the following:+-- PENDING, DEPLOYED, PENDING_DELETION.+cluster_status :: Lens.Lens' Cluster (Prelude.Maybe Status)+cluster_status = Lens.lens (\Cluster' {status} -> status) (\s@Cluster' {} a -> s {status = a} :: Cluster)++instance Data.FromJSON Cluster where+ parseJSON =+ Data.withObject+ "Cluster"+ ( \x ->+ Cluster'+ Prelude.<$> (x Data..:? "ClusterArn")+ Prelude.<*> ( x+ Data..:? "ClusterEndpoints"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable Cluster where+ hashWithSalt _salt Cluster' {..} =+ _salt+ `Prelude.hashWithSalt` clusterArn+ `Prelude.hashWithSalt` clusterEndpoints+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` status++instance Prelude.NFData Cluster where+ rnf Cluster' {..} =+ Prelude.rnf clusterArn+ `Prelude.seq` Prelude.rnf clusterEndpoints+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Route53RecoveryControlConfig/Types/ClusterEndpoint.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.Route53RecoveryControlConfig.Types.ClusterEndpoint+-- 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.Route53RecoveryControlConfig.Types.ClusterEndpoint where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A cluster endpoint. Specify an endpoint when you want to set or retrieve+-- a routing control state in the cluster.+--+-- /See:/ 'newClusterEndpoint' smart constructor.+data ClusterEndpoint = ClusterEndpoint'+ { -- | A cluster endpoint. Specify an endpoint and Amazon Web Services Region+ -- when you want to set or retrieve a routing control state in the cluster.+ --+ -- To get or update the routing control state, see the Amazon Route 53+ -- Application Recovery Controller Routing Control Actions.+ endpoint :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Web Services Region for a cluster endpoint.+ region :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClusterEndpoint' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpoint', 'clusterEndpoint_endpoint' - A cluster endpoint. Specify an endpoint and Amazon Web Services Region+-- when you want to set or retrieve a routing control state in the cluster.+--+-- To get or update the routing control state, see the Amazon Route 53+-- Application Recovery Controller Routing Control Actions.+--+-- 'region', 'clusterEndpoint_region' - The Amazon Web Services Region for a cluster endpoint.+newClusterEndpoint ::+ ClusterEndpoint+newClusterEndpoint =+ ClusterEndpoint'+ { endpoint = Prelude.Nothing,+ region = Prelude.Nothing+ }++-- | A cluster endpoint. Specify an endpoint and Amazon Web Services Region+-- when you want to set or retrieve a routing control state in the cluster.+--+-- To get or update the routing control state, see the Amazon Route 53+-- Application Recovery Controller Routing Control Actions.+clusterEndpoint_endpoint :: Lens.Lens' ClusterEndpoint (Prelude.Maybe Prelude.Text)+clusterEndpoint_endpoint = Lens.lens (\ClusterEndpoint' {endpoint} -> endpoint) (\s@ClusterEndpoint' {} a -> s {endpoint = a} :: ClusterEndpoint)++-- | The Amazon Web Services Region for a cluster endpoint.+clusterEndpoint_region :: Lens.Lens' ClusterEndpoint (Prelude.Maybe Prelude.Text)+clusterEndpoint_region = Lens.lens (\ClusterEndpoint' {region} -> region) (\s@ClusterEndpoint' {} a -> s {region = a} :: ClusterEndpoint)++instance Data.FromJSON ClusterEndpoint where+ parseJSON =+ Data.withObject+ "ClusterEndpoint"+ ( \x ->+ ClusterEndpoint'+ Prelude.<$> (x Data..:? "Endpoint")+ Prelude.<*> (x Data..:? "Region")+ )++instance Prelude.Hashable ClusterEndpoint where+ hashWithSalt _salt ClusterEndpoint' {..} =+ _salt+ `Prelude.hashWithSalt` endpoint+ `Prelude.hashWithSalt` region++instance Prelude.NFData ClusterEndpoint where+ rnf ClusterEndpoint' {..} =+ Prelude.rnf endpoint+ `Prelude.seq` Prelude.rnf region
+ gen/Amazonka/Route53RecoveryControlConfig/Types/ControlPanel.hs view
@@ -0,0 +1,155 @@+{-# 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.Route53RecoveryControlConfig.Types.ControlPanel+-- 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.Route53RecoveryControlConfig.Types.ControlPanel 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.Route53RecoveryControlConfig.Types.Status++-- | A control panel represents a group of routing controls that can be+-- changed together in a single transaction.+--+-- /See:/ 'newControlPanel' smart constructor.+data ControlPanel = ControlPanel'+ { -- | The Amazon Resource Name (ARN) of the cluster that includes the control+ -- panel.+ clusterArn :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the control panel.+ controlPanelArn :: Prelude.Maybe Prelude.Text,+ -- | A flag that Amazon Route 53 Application Recovery Controller sets to true+ -- to designate the default control panel for a cluster. When you create a+ -- cluster, Amazon Route 53 Application Recovery Controller creates a+ -- control panel, and sets this flag for that control panel. If you create+ -- a control panel yourself, this flag is set to false.+ defaultControlPanel :: Prelude.Maybe Prelude.Bool,+ -- | The name of the control panel. You can use any non-white space character+ -- in the name.+ name :: Prelude.Maybe Prelude.Text,+ -- | The number of routing controls in the control panel.+ routingControlCount :: Prelude.Maybe Prelude.Int,+ -- | The deployment status of control panel. Status can be one of the+ -- following: PENDING, DEPLOYED, PENDING_DELETION.+ status :: Prelude.Maybe Status+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ControlPanel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterArn', 'controlPanel_clusterArn' - The Amazon Resource Name (ARN) of the cluster that includes the control+-- panel.+--+-- 'controlPanelArn', 'controlPanel_controlPanelArn' - The Amazon Resource Name (ARN) of the control panel.+--+-- 'defaultControlPanel', 'controlPanel_defaultControlPanel' - A flag that Amazon Route 53 Application Recovery Controller sets to true+-- to designate the default control panel for a cluster. When you create a+-- cluster, Amazon Route 53 Application Recovery Controller creates a+-- control panel, and sets this flag for that control panel. If you create+-- a control panel yourself, this flag is set to false.+--+-- 'name', 'controlPanel_name' - The name of the control panel. You can use any non-white space character+-- in the name.+--+-- 'routingControlCount', 'controlPanel_routingControlCount' - The number of routing controls in the control panel.+--+-- 'status', 'controlPanel_status' - The deployment status of control panel. Status can be one of the+-- following: PENDING, DEPLOYED, PENDING_DELETION.+newControlPanel ::+ ControlPanel+newControlPanel =+ ControlPanel'+ { clusterArn = Prelude.Nothing,+ controlPanelArn = Prelude.Nothing,+ defaultControlPanel = Prelude.Nothing,+ name = Prelude.Nothing,+ routingControlCount = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the cluster that includes the control+-- panel.+controlPanel_clusterArn :: Lens.Lens' ControlPanel (Prelude.Maybe Prelude.Text)+controlPanel_clusterArn = Lens.lens (\ControlPanel' {clusterArn} -> clusterArn) (\s@ControlPanel' {} a -> s {clusterArn = a} :: ControlPanel)++-- | The Amazon Resource Name (ARN) of the control panel.+controlPanel_controlPanelArn :: Lens.Lens' ControlPanel (Prelude.Maybe Prelude.Text)+controlPanel_controlPanelArn = Lens.lens (\ControlPanel' {controlPanelArn} -> controlPanelArn) (\s@ControlPanel' {} a -> s {controlPanelArn = a} :: ControlPanel)++-- | A flag that Amazon Route 53 Application Recovery Controller sets to true+-- to designate the default control panel for a cluster. When you create a+-- cluster, Amazon Route 53 Application Recovery Controller creates a+-- control panel, and sets this flag for that control panel. If you create+-- a control panel yourself, this flag is set to false.+controlPanel_defaultControlPanel :: Lens.Lens' ControlPanel (Prelude.Maybe Prelude.Bool)+controlPanel_defaultControlPanel = Lens.lens (\ControlPanel' {defaultControlPanel} -> defaultControlPanel) (\s@ControlPanel' {} a -> s {defaultControlPanel = a} :: ControlPanel)++-- | The name of the control panel. You can use any non-white space character+-- in the name.+controlPanel_name :: Lens.Lens' ControlPanel (Prelude.Maybe Prelude.Text)+controlPanel_name = Lens.lens (\ControlPanel' {name} -> name) (\s@ControlPanel' {} a -> s {name = a} :: ControlPanel)++-- | The number of routing controls in the control panel.+controlPanel_routingControlCount :: Lens.Lens' ControlPanel (Prelude.Maybe Prelude.Int)+controlPanel_routingControlCount = Lens.lens (\ControlPanel' {routingControlCount} -> routingControlCount) (\s@ControlPanel' {} a -> s {routingControlCount = a} :: ControlPanel)++-- | The deployment status of control panel. Status can be one of the+-- following: PENDING, DEPLOYED, PENDING_DELETION.+controlPanel_status :: Lens.Lens' ControlPanel (Prelude.Maybe Status)+controlPanel_status = Lens.lens (\ControlPanel' {status} -> status) (\s@ControlPanel' {} a -> s {status = a} :: ControlPanel)++instance Data.FromJSON ControlPanel where+ parseJSON =+ Data.withObject+ "ControlPanel"+ ( \x ->+ ControlPanel'+ Prelude.<$> (x Data..:? "ClusterArn")+ Prelude.<*> (x Data..:? "ControlPanelArn")+ Prelude.<*> (x Data..:? "DefaultControlPanel")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "RoutingControlCount")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable ControlPanel where+ hashWithSalt _salt ControlPanel' {..} =+ _salt+ `Prelude.hashWithSalt` clusterArn+ `Prelude.hashWithSalt` controlPanelArn+ `Prelude.hashWithSalt` defaultControlPanel+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` routingControlCount+ `Prelude.hashWithSalt` status++instance Prelude.NFData ControlPanel where+ rnf ControlPanel' {..} =+ Prelude.rnf clusterArn+ `Prelude.seq` Prelude.rnf controlPanelArn+ `Prelude.seq` Prelude.rnf defaultControlPanel+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf routingControlCount+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Route53RecoveryControlConfig/Types/GatingRule.hs view
@@ -0,0 +1,234 @@+{-# 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.Route53RecoveryControlConfig.Types.GatingRule+-- 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.Route53RecoveryControlConfig.Types.GatingRule 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.Route53RecoveryControlConfig.Types.RuleConfig+import Amazonka.Route53RecoveryControlConfig.Types.Status++-- | A gating rule verifies that a gating routing control or set of gating+-- routing controls, evaluates as true, based on a rule configuration that+-- you specify, which allows a set of routing control state changes to+-- complete.+--+-- For example, if you specify one gating routing control and you set the+-- Type in the rule configuration to OR, that indicates that you must set+-- the gating routing control to On for the rule to evaluate as true; that+-- is, for the gating control \"switch\" to be \"On\". When you do that,+-- then you can update the routing control states for the target routing+-- controls that you specify in the gating rule.+--+-- /See:/ 'newGatingRule' smart constructor.+data GatingRule = GatingRule'+ { -- | The deployment status of a gating rule. Status can be one of the+ -- following: PENDING, DEPLOYED, PENDING_DELETION.+ status :: Status,+ -- | An array of target routing control Amazon Resource Names (ARNs) for+ -- which the states can only be updated if the rule configuration that you+ -- specify evaluates to true for the gating routing control. As a simple+ -- example, if you have a single gating control, it acts as an overall+ -- \"on\/off\" switch for a set of target routing controls. You can use+ -- this to manually override automated failover, for example.+ targetControls :: [Prelude.Text],+ -- | The Amazon Resource Name (ARN) of the control panel.+ controlPanelArn :: Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the gating rule.+ safetyRuleArn :: Prelude.Text,+ -- | An array of gating routing control Amazon Resource Names (ARNs). For a+ -- simple \"on\/off\" switch, specify the ARN for one routing control. The+ -- gating routing controls are evaluated by the rule configuration that you+ -- specify to determine if the target routing control states can be+ -- changed.+ gatingControls :: [Prelude.Text],+ -- | The criteria that you set for gating routing controls that designate how+ -- many of the routing control states must be ON to allow you to update+ -- target routing control states.+ ruleConfig :: RuleConfig,+ -- | An evaluation period, in milliseconds (ms), during which any request+ -- against the target routing controls will fail. This helps prevent+ -- \"flapping\" of state. The wait period is 5000 ms by default, but you+ -- can choose a custom value.+ waitPeriodMs :: Prelude.Int,+ -- | The name for the gating rule. You can use any non-white space character+ -- in the name.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GatingRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'gatingRule_status' - The deployment status of a gating rule. Status can be one of the+-- following: PENDING, DEPLOYED, PENDING_DELETION.+--+-- 'targetControls', 'gatingRule_targetControls' - An array of target routing control Amazon Resource Names (ARNs) for+-- which the states can only be updated if the rule configuration that you+-- specify evaluates to true for the gating routing control. As a simple+-- example, if you have a single gating control, it acts as an overall+-- \"on\/off\" switch for a set of target routing controls. You can use+-- this to manually override automated failover, for example.+--+-- 'controlPanelArn', 'gatingRule_controlPanelArn' - The Amazon Resource Name (ARN) of the control panel.+--+-- 'safetyRuleArn', 'gatingRule_safetyRuleArn' - The Amazon Resource Name (ARN) of the gating rule.+--+-- 'gatingControls', 'gatingRule_gatingControls' - An array of gating routing control Amazon Resource Names (ARNs). For a+-- simple \"on\/off\" switch, specify the ARN for one routing control. The+-- gating routing controls are evaluated by the rule configuration that you+-- specify to determine if the target routing control states can be+-- changed.+--+-- 'ruleConfig', 'gatingRule_ruleConfig' - The criteria that you set for gating routing controls that designate how+-- many of the routing control states must be ON to allow you to update+-- target routing control states.+--+-- 'waitPeriodMs', 'gatingRule_waitPeriodMs' - An evaluation period, in milliseconds (ms), during which any request+-- against the target routing controls will fail. This helps prevent+-- \"flapping\" of state. The wait period is 5000 ms by default, but you+-- can choose a custom value.+--+-- 'name', 'gatingRule_name' - The name for the gating rule. You can use any non-white space character+-- in the name.+newGatingRule ::+ -- | 'status'+ Status ->+ -- | 'controlPanelArn'+ Prelude.Text ->+ -- | 'safetyRuleArn'+ Prelude.Text ->+ -- | 'ruleConfig'+ RuleConfig ->+ -- | 'waitPeriodMs'+ Prelude.Int ->+ -- | 'name'+ Prelude.Text ->+ GatingRule+newGatingRule+ pStatus_+ pControlPanelArn_+ pSafetyRuleArn_+ pRuleConfig_+ pWaitPeriodMs_+ pName_ =+ GatingRule'+ { status = pStatus_,+ targetControls = Prelude.mempty,+ controlPanelArn = pControlPanelArn_,+ safetyRuleArn = pSafetyRuleArn_,+ gatingControls = Prelude.mempty,+ ruleConfig = pRuleConfig_,+ waitPeriodMs = pWaitPeriodMs_,+ name = pName_+ }++-- | The deployment status of a gating rule. Status can be one of the+-- following: PENDING, DEPLOYED, PENDING_DELETION.+gatingRule_status :: Lens.Lens' GatingRule Status+gatingRule_status = Lens.lens (\GatingRule' {status} -> status) (\s@GatingRule' {} a -> s {status = a} :: GatingRule)++-- | An array of target routing control Amazon Resource Names (ARNs) for+-- which the states can only be updated if the rule configuration that you+-- specify evaluates to true for the gating routing control. As a simple+-- example, if you have a single gating control, it acts as an overall+-- \"on\/off\" switch for a set of target routing controls. You can use+-- this to manually override automated failover, for example.+gatingRule_targetControls :: Lens.Lens' GatingRule [Prelude.Text]+gatingRule_targetControls = Lens.lens (\GatingRule' {targetControls} -> targetControls) (\s@GatingRule' {} a -> s {targetControls = a} :: GatingRule) Prelude.. Lens.coerced++-- | The Amazon Resource Name (ARN) of the control panel.+gatingRule_controlPanelArn :: Lens.Lens' GatingRule Prelude.Text+gatingRule_controlPanelArn = Lens.lens (\GatingRule' {controlPanelArn} -> controlPanelArn) (\s@GatingRule' {} a -> s {controlPanelArn = a} :: GatingRule)++-- | The Amazon Resource Name (ARN) of the gating rule.+gatingRule_safetyRuleArn :: Lens.Lens' GatingRule Prelude.Text+gatingRule_safetyRuleArn = Lens.lens (\GatingRule' {safetyRuleArn} -> safetyRuleArn) (\s@GatingRule' {} a -> s {safetyRuleArn = a} :: GatingRule)++-- | An array of gating routing control Amazon Resource Names (ARNs). For a+-- simple \"on\/off\" switch, specify the ARN for one routing control. The+-- gating routing controls are evaluated by the rule configuration that you+-- specify to determine if the target routing control states can be+-- changed.+gatingRule_gatingControls :: Lens.Lens' GatingRule [Prelude.Text]+gatingRule_gatingControls = Lens.lens (\GatingRule' {gatingControls} -> gatingControls) (\s@GatingRule' {} a -> s {gatingControls = a} :: GatingRule) Prelude.. Lens.coerced++-- | The criteria that you set for gating routing controls that designate how+-- many of the routing control states must be ON to allow you to update+-- target routing control states.+gatingRule_ruleConfig :: Lens.Lens' GatingRule RuleConfig+gatingRule_ruleConfig = Lens.lens (\GatingRule' {ruleConfig} -> ruleConfig) (\s@GatingRule' {} a -> s {ruleConfig = a} :: GatingRule)++-- | An evaluation period, in milliseconds (ms), during which any request+-- against the target routing controls will fail. This helps prevent+-- \"flapping\" of state. The wait period is 5000 ms by default, but you+-- can choose a custom value.+gatingRule_waitPeriodMs :: Lens.Lens' GatingRule Prelude.Int+gatingRule_waitPeriodMs = Lens.lens (\GatingRule' {waitPeriodMs} -> waitPeriodMs) (\s@GatingRule' {} a -> s {waitPeriodMs = a} :: GatingRule)++-- | The name for the gating rule. You can use any non-white space character+-- in the name.+gatingRule_name :: Lens.Lens' GatingRule Prelude.Text+gatingRule_name = Lens.lens (\GatingRule' {name} -> name) (\s@GatingRule' {} a -> s {name = a} :: GatingRule)++instance Data.FromJSON GatingRule where+ parseJSON =+ Data.withObject+ "GatingRule"+ ( \x ->+ GatingRule'+ Prelude.<$> (x Data..: "Status")+ Prelude.<*> (x Data..:? "TargetControls" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..: "ControlPanelArn")+ Prelude.<*> (x Data..: "SafetyRuleArn")+ Prelude.<*> (x Data..:? "GatingControls" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..: "RuleConfig")+ Prelude.<*> (x Data..: "WaitPeriodMs")+ Prelude.<*> (x Data..: "Name")+ )++instance Prelude.Hashable GatingRule where+ hashWithSalt _salt GatingRule' {..} =+ _salt+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` targetControls+ `Prelude.hashWithSalt` controlPanelArn+ `Prelude.hashWithSalt` safetyRuleArn+ `Prelude.hashWithSalt` gatingControls+ `Prelude.hashWithSalt` ruleConfig+ `Prelude.hashWithSalt` waitPeriodMs+ `Prelude.hashWithSalt` name++instance Prelude.NFData GatingRule where+ rnf GatingRule' {..} =+ Prelude.rnf status+ `Prelude.seq` Prelude.rnf targetControls+ `Prelude.seq` Prelude.rnf controlPanelArn+ `Prelude.seq` Prelude.rnf safetyRuleArn+ `Prelude.seq` Prelude.rnf gatingControls+ `Prelude.seq` Prelude.rnf ruleConfig+ `Prelude.seq` Prelude.rnf waitPeriodMs+ `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/Route53RecoveryControlConfig/Types/GatingRuleUpdate.hs view
@@ -0,0 +1,119 @@+{-# 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.Route53RecoveryControlConfig.Types.GatingRuleUpdate+-- 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.Route53RecoveryControlConfig.Types.GatingRuleUpdate 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++-- | Update to a gating rule. You can update the name or the evaluation+-- period (wait period). If you don\'t specify one of the items to update,+-- the item is unchanged.+--+-- /See:/ 'newGatingRuleUpdate' smart constructor.+data GatingRuleUpdate = GatingRuleUpdate'+ { -- | The Amazon Resource Name (ARN) of the gating rule.+ safetyRuleArn :: Prelude.Text,+ -- | An evaluation period, in milliseconds (ms), during which any request+ -- against the target routing controls will fail. This helps prevent+ -- \"flapping\" of state. The wait period is 5000 ms by default, but you+ -- can choose a custom value.+ waitPeriodMs :: Prelude.Int,+ -- | The name for the gating rule. You can use any non-white space character+ -- in the name.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GatingRuleUpdate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'safetyRuleArn', 'gatingRuleUpdate_safetyRuleArn' - The Amazon Resource Name (ARN) of the gating rule.+--+-- 'waitPeriodMs', 'gatingRuleUpdate_waitPeriodMs' - An evaluation period, in milliseconds (ms), during which any request+-- against the target routing controls will fail. This helps prevent+-- \"flapping\" of state. The wait period is 5000 ms by default, but you+-- can choose a custom value.+--+-- 'name', 'gatingRuleUpdate_name' - The name for the gating rule. You can use any non-white space character+-- in the name.+newGatingRuleUpdate ::+ -- | 'safetyRuleArn'+ Prelude.Text ->+ -- | 'waitPeriodMs'+ Prelude.Int ->+ -- | 'name'+ Prelude.Text ->+ GatingRuleUpdate+newGatingRuleUpdate+ pSafetyRuleArn_+ pWaitPeriodMs_+ pName_ =+ GatingRuleUpdate'+ { safetyRuleArn = pSafetyRuleArn_,+ waitPeriodMs = pWaitPeriodMs_,+ name = pName_+ }++-- | The Amazon Resource Name (ARN) of the gating rule.+gatingRuleUpdate_safetyRuleArn :: Lens.Lens' GatingRuleUpdate Prelude.Text+gatingRuleUpdate_safetyRuleArn = Lens.lens (\GatingRuleUpdate' {safetyRuleArn} -> safetyRuleArn) (\s@GatingRuleUpdate' {} a -> s {safetyRuleArn = a} :: GatingRuleUpdate)++-- | An evaluation period, in milliseconds (ms), during which any request+-- against the target routing controls will fail. This helps prevent+-- \"flapping\" of state. The wait period is 5000 ms by default, but you+-- can choose a custom value.+gatingRuleUpdate_waitPeriodMs :: Lens.Lens' GatingRuleUpdate Prelude.Int+gatingRuleUpdate_waitPeriodMs = Lens.lens (\GatingRuleUpdate' {waitPeriodMs} -> waitPeriodMs) (\s@GatingRuleUpdate' {} a -> s {waitPeriodMs = a} :: GatingRuleUpdate)++-- | The name for the gating rule. You can use any non-white space character+-- in the name.+gatingRuleUpdate_name :: Lens.Lens' GatingRuleUpdate Prelude.Text+gatingRuleUpdate_name = Lens.lens (\GatingRuleUpdate' {name} -> name) (\s@GatingRuleUpdate' {} a -> s {name = a} :: GatingRuleUpdate)++instance Prelude.Hashable GatingRuleUpdate where+ hashWithSalt _salt GatingRuleUpdate' {..} =+ _salt+ `Prelude.hashWithSalt` safetyRuleArn+ `Prelude.hashWithSalt` waitPeriodMs+ `Prelude.hashWithSalt` name++instance Prelude.NFData GatingRuleUpdate where+ rnf GatingRuleUpdate' {..} =+ Prelude.rnf safetyRuleArn+ `Prelude.seq` Prelude.rnf waitPeriodMs+ `Prelude.seq` Prelude.rnf name++instance Data.ToJSON GatingRuleUpdate where+ toJSON GatingRuleUpdate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("SafetyRuleArn" Data..= safetyRuleArn),+ Prelude.Just ("WaitPeriodMs" Data..= waitPeriodMs),+ Prelude.Just ("Name" Data..= name)+ ]+ )
+ gen/Amazonka/Route53RecoveryControlConfig/Types/NewAssertionRule.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.Route53RecoveryControlConfig.Types.NewAssertionRule+-- 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.Route53RecoveryControlConfig.Types.NewAssertionRule 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.Route53RecoveryControlConfig.Types.RuleConfig++-- | A new assertion rule for a control panel.+--+-- /See:/ 'newNewAssertionRule' smart constructor.+data NewAssertionRule = NewAssertionRule'+ { -- | The Amazon Resource Name (ARN) for the control panel.+ controlPanelArn :: Prelude.Text,+ -- | The routing controls that are part of transactions that are evaluated to+ -- determine if a request to change a routing control state is allowed. For+ -- example, you might include three routing controls, one for each of three+ -- Amazon Web Services Regions.+ assertedControls :: [Prelude.Text],+ -- | The criteria that you set for specific assertion controls (routing+ -- controls) that designate how many control states must be ON as the+ -- result of a transaction. For example, if you have three assertion+ -- controls, you might specify ATLEAST 2 for your rule configuration. This+ -- means that at least two assertion controls must be ON, so that at least+ -- two Amazon Web Services Regions have traffic flowing to them.+ ruleConfig :: RuleConfig,+ -- | An evaluation period, in milliseconds (ms), during which any request+ -- against the target routing controls will fail. This helps prevent+ -- \"flapping\" of state. The wait period is 5000 ms by default, but you+ -- can choose a custom value.+ waitPeriodMs :: Prelude.Int,+ -- | The name of the assertion rule. You can use any non-white space+ -- character in the name.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NewAssertionRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'controlPanelArn', 'newAssertionRule_controlPanelArn' - The Amazon Resource Name (ARN) for the control panel.+--+-- 'assertedControls', 'newAssertionRule_assertedControls' - The routing controls that are part of transactions that are evaluated to+-- determine if a request to change a routing control state is allowed. For+-- example, you might include three routing controls, one for each of three+-- Amazon Web Services Regions.+--+-- 'ruleConfig', 'newAssertionRule_ruleConfig' - The criteria that you set for specific assertion controls (routing+-- controls) that designate how many control states must be ON as the+-- result of a transaction. For example, if you have three assertion+-- controls, you might specify ATLEAST 2 for your rule configuration. This+-- means that at least two assertion controls must be ON, so that at least+-- two Amazon Web Services Regions have traffic flowing to them.+--+-- 'waitPeriodMs', 'newAssertionRule_waitPeriodMs' - An evaluation period, in milliseconds (ms), during which any request+-- against the target routing controls will fail. This helps prevent+-- \"flapping\" of state. The wait period is 5000 ms by default, but you+-- can choose a custom value.+--+-- 'name', 'newAssertionRule_name' - The name of the assertion rule. You can use any non-white space+-- character in the name.+newNewAssertionRule ::+ -- | 'controlPanelArn'+ Prelude.Text ->+ -- | 'ruleConfig'+ RuleConfig ->+ -- | 'waitPeriodMs'+ Prelude.Int ->+ -- | 'name'+ Prelude.Text ->+ NewAssertionRule+newNewAssertionRule+ pControlPanelArn_+ pRuleConfig_+ pWaitPeriodMs_+ pName_ =+ NewAssertionRule'+ { controlPanelArn =+ pControlPanelArn_,+ assertedControls = Prelude.mempty,+ ruleConfig = pRuleConfig_,+ waitPeriodMs = pWaitPeriodMs_,+ name = pName_+ }++-- | The Amazon Resource Name (ARN) for the control panel.+newAssertionRule_controlPanelArn :: Lens.Lens' NewAssertionRule Prelude.Text+newAssertionRule_controlPanelArn = Lens.lens (\NewAssertionRule' {controlPanelArn} -> controlPanelArn) (\s@NewAssertionRule' {} a -> s {controlPanelArn = a} :: NewAssertionRule)++-- | The routing controls that are part of transactions that are evaluated to+-- determine if a request to change a routing control state is allowed. For+-- example, you might include three routing controls, one for each of three+-- Amazon Web Services Regions.+newAssertionRule_assertedControls :: Lens.Lens' NewAssertionRule [Prelude.Text]+newAssertionRule_assertedControls = Lens.lens (\NewAssertionRule' {assertedControls} -> assertedControls) (\s@NewAssertionRule' {} a -> s {assertedControls = a} :: NewAssertionRule) Prelude.. Lens.coerced++-- | The criteria that you set for specific assertion controls (routing+-- controls) that designate how many control states must be ON as the+-- result of a transaction. For example, if you have three assertion+-- controls, you might specify ATLEAST 2 for your rule configuration. This+-- means that at least two assertion controls must be ON, so that at least+-- two Amazon Web Services Regions have traffic flowing to them.+newAssertionRule_ruleConfig :: Lens.Lens' NewAssertionRule RuleConfig+newAssertionRule_ruleConfig = Lens.lens (\NewAssertionRule' {ruleConfig} -> ruleConfig) (\s@NewAssertionRule' {} a -> s {ruleConfig = a} :: NewAssertionRule)++-- | An evaluation period, in milliseconds (ms), during which any request+-- against the target routing controls will fail. This helps prevent+-- \"flapping\" of state. The wait period is 5000 ms by default, but you+-- can choose a custom value.+newAssertionRule_waitPeriodMs :: Lens.Lens' NewAssertionRule Prelude.Int+newAssertionRule_waitPeriodMs = Lens.lens (\NewAssertionRule' {waitPeriodMs} -> waitPeriodMs) (\s@NewAssertionRule' {} a -> s {waitPeriodMs = a} :: NewAssertionRule)++-- | The name of the assertion rule. You can use any non-white space+-- character in the name.+newAssertionRule_name :: Lens.Lens' NewAssertionRule Prelude.Text+newAssertionRule_name = Lens.lens (\NewAssertionRule' {name} -> name) (\s@NewAssertionRule' {} a -> s {name = a} :: NewAssertionRule)++instance Prelude.Hashable NewAssertionRule where+ hashWithSalt _salt NewAssertionRule' {..} =+ _salt+ `Prelude.hashWithSalt` controlPanelArn+ `Prelude.hashWithSalt` assertedControls+ `Prelude.hashWithSalt` ruleConfig+ `Prelude.hashWithSalt` waitPeriodMs+ `Prelude.hashWithSalt` name++instance Prelude.NFData NewAssertionRule where+ rnf NewAssertionRule' {..} =+ Prelude.rnf controlPanelArn+ `Prelude.seq` Prelude.rnf assertedControls+ `Prelude.seq` Prelude.rnf ruleConfig+ `Prelude.seq` Prelude.rnf waitPeriodMs+ `Prelude.seq` Prelude.rnf name++instance Data.ToJSON NewAssertionRule where+ toJSON NewAssertionRule' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("ControlPanelArn" Data..= controlPanelArn),+ Prelude.Just+ ("AssertedControls" Data..= assertedControls),+ Prelude.Just ("RuleConfig" Data..= ruleConfig),+ Prelude.Just ("WaitPeriodMs" Data..= waitPeriodMs),+ Prelude.Just ("Name" Data..= name)+ ]+ )
+ gen/Amazonka/Route53RecoveryControlConfig/Types/NewGatingRule.hs view
@@ -0,0 +1,195 @@+{-# 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.Route53RecoveryControlConfig.Types.NewGatingRule+-- 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.Route53RecoveryControlConfig.Types.NewGatingRule 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.Route53RecoveryControlConfig.Types.RuleConfig++-- | A new gating rule for a control panel.+--+-- /See:/ 'newNewGatingRule' smart constructor.+data NewGatingRule = NewGatingRule'+ { -- | Routing controls that can only be set or unset if the specified+ -- RuleConfig evaluates to true for the specified GatingControls. For+ -- example, say you have three gating controls, one for each of three+ -- Amazon Web Services Regions. Now you specify ATLEAST 2 as your+ -- RuleConfig. With these settings, you can only change (set or unset) the+ -- routing controls that you have specified as TargetControls if that rule+ -- evaluates to true.+ --+ -- In other words, your ability to change the routing controls that you+ -- have specified as TargetControls is gated by the rule that you set for+ -- the routing controls in GatingControls.+ targetControls :: [Prelude.Text],+ -- | The Amazon Resource Name (ARN) of the control panel.+ controlPanelArn :: Prelude.Text,+ -- | The gating controls for the new gating rule. That is, routing controls+ -- that are evaluated by the rule configuration that you specify.+ gatingControls :: [Prelude.Text],+ -- | The criteria that you set for specific gating controls (routing+ -- controls) that designate how many control states must be ON to allow you+ -- to change (set or unset) the target control states.+ ruleConfig :: RuleConfig,+ -- | An evaluation period, in milliseconds (ms), during which any request+ -- against the target routing controls will fail. This helps prevent+ -- \"flapping\" of state. The wait period is 5000 ms by default, but you+ -- can choose a custom value.+ waitPeriodMs :: Prelude.Int,+ -- | The name for the new gating rule.+ name :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NewGatingRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'targetControls', 'newGatingRule_targetControls' - Routing controls that can only be set or unset if the specified+-- RuleConfig evaluates to true for the specified GatingControls. For+-- example, say you have three gating controls, one for each of three+-- Amazon Web Services Regions. Now you specify ATLEAST 2 as your+-- RuleConfig. With these settings, you can only change (set or unset) the+-- routing controls that you have specified as TargetControls if that rule+-- evaluates to true.+--+-- In other words, your ability to change the routing controls that you+-- have specified as TargetControls is gated by the rule that you set for+-- the routing controls in GatingControls.+--+-- 'controlPanelArn', 'newGatingRule_controlPanelArn' - The Amazon Resource Name (ARN) of the control panel.+--+-- 'gatingControls', 'newGatingRule_gatingControls' - The gating controls for the new gating rule. That is, routing controls+-- that are evaluated by the rule configuration that you specify.+--+-- 'ruleConfig', 'newGatingRule_ruleConfig' - The criteria that you set for specific gating controls (routing+-- controls) that designate how many control states must be ON to allow you+-- to change (set or unset) the target control states.+--+-- 'waitPeriodMs', 'newGatingRule_waitPeriodMs' - An evaluation period, in milliseconds (ms), during which any request+-- against the target routing controls will fail. This helps prevent+-- \"flapping\" of state. The wait period is 5000 ms by default, but you+-- can choose a custom value.+--+-- 'name', 'newGatingRule_name' - The name for the new gating rule.+newNewGatingRule ::+ -- | 'controlPanelArn'+ Prelude.Text ->+ -- | 'ruleConfig'+ RuleConfig ->+ -- | 'waitPeriodMs'+ Prelude.Int ->+ -- | 'name'+ Prelude.Text ->+ NewGatingRule+newNewGatingRule+ pControlPanelArn_+ pRuleConfig_+ pWaitPeriodMs_+ pName_ =+ NewGatingRule'+ { targetControls = Prelude.mempty,+ controlPanelArn = pControlPanelArn_,+ gatingControls = Prelude.mempty,+ ruleConfig = pRuleConfig_,+ waitPeriodMs = pWaitPeriodMs_,+ name = pName_+ }++-- | Routing controls that can only be set or unset if the specified+-- RuleConfig evaluates to true for the specified GatingControls. For+-- example, say you have three gating controls, one for each of three+-- Amazon Web Services Regions. Now you specify ATLEAST 2 as your+-- RuleConfig. With these settings, you can only change (set or unset) the+-- routing controls that you have specified as TargetControls if that rule+-- evaluates to true.+--+-- In other words, your ability to change the routing controls that you+-- have specified as TargetControls is gated by the rule that you set for+-- the routing controls in GatingControls.+newGatingRule_targetControls :: Lens.Lens' NewGatingRule [Prelude.Text]+newGatingRule_targetControls = Lens.lens (\NewGatingRule' {targetControls} -> targetControls) (\s@NewGatingRule' {} a -> s {targetControls = a} :: NewGatingRule) Prelude.. Lens.coerced++-- | The Amazon Resource Name (ARN) of the control panel.+newGatingRule_controlPanelArn :: Lens.Lens' NewGatingRule Prelude.Text+newGatingRule_controlPanelArn = Lens.lens (\NewGatingRule' {controlPanelArn} -> controlPanelArn) (\s@NewGatingRule' {} a -> s {controlPanelArn = a} :: NewGatingRule)++-- | The gating controls for the new gating rule. That is, routing controls+-- that are evaluated by the rule configuration that you specify.+newGatingRule_gatingControls :: Lens.Lens' NewGatingRule [Prelude.Text]+newGatingRule_gatingControls = Lens.lens (\NewGatingRule' {gatingControls} -> gatingControls) (\s@NewGatingRule' {} a -> s {gatingControls = a} :: NewGatingRule) Prelude.. Lens.coerced++-- | The criteria that you set for specific gating controls (routing+-- controls) that designate how many control states must be ON to allow you+-- to change (set or unset) the target control states.+newGatingRule_ruleConfig :: Lens.Lens' NewGatingRule RuleConfig+newGatingRule_ruleConfig = Lens.lens (\NewGatingRule' {ruleConfig} -> ruleConfig) (\s@NewGatingRule' {} a -> s {ruleConfig = a} :: NewGatingRule)++-- | An evaluation period, in milliseconds (ms), during which any request+-- against the target routing controls will fail. This helps prevent+-- \"flapping\" of state. The wait period is 5000 ms by default, but you+-- can choose a custom value.+newGatingRule_waitPeriodMs :: Lens.Lens' NewGatingRule Prelude.Int+newGatingRule_waitPeriodMs = Lens.lens (\NewGatingRule' {waitPeriodMs} -> waitPeriodMs) (\s@NewGatingRule' {} a -> s {waitPeriodMs = a} :: NewGatingRule)++-- | The name for the new gating rule.+newGatingRule_name :: Lens.Lens' NewGatingRule Prelude.Text+newGatingRule_name = Lens.lens (\NewGatingRule' {name} -> name) (\s@NewGatingRule' {} a -> s {name = a} :: NewGatingRule)++instance Prelude.Hashable NewGatingRule where+ hashWithSalt _salt NewGatingRule' {..} =+ _salt+ `Prelude.hashWithSalt` targetControls+ `Prelude.hashWithSalt` controlPanelArn+ `Prelude.hashWithSalt` gatingControls+ `Prelude.hashWithSalt` ruleConfig+ `Prelude.hashWithSalt` waitPeriodMs+ `Prelude.hashWithSalt` name++instance Prelude.NFData NewGatingRule where+ rnf NewGatingRule' {..} =+ Prelude.rnf targetControls+ `Prelude.seq` Prelude.rnf controlPanelArn+ `Prelude.seq` Prelude.rnf gatingControls+ `Prelude.seq` Prelude.rnf ruleConfig+ `Prelude.seq` Prelude.rnf waitPeriodMs+ `Prelude.seq` Prelude.rnf name++instance Data.ToJSON NewGatingRule where+ toJSON NewGatingRule' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("TargetControls" Data..= targetControls),+ Prelude.Just+ ("ControlPanelArn" Data..= controlPanelArn),+ Prelude.Just+ ("GatingControls" Data..= gatingControls),+ Prelude.Just ("RuleConfig" Data..= ruleConfig),+ Prelude.Just ("WaitPeriodMs" Data..= waitPeriodMs),+ Prelude.Just ("Name" Data..= name)+ ]+ )
+ gen/Amazonka/Route53RecoveryControlConfig/Types/RoutingControl.hs view
@@ -0,0 +1,117 @@+{-# 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.Route53RecoveryControlConfig.Types.RoutingControl+-- 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.Route53RecoveryControlConfig.Types.RoutingControl 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.Route53RecoveryControlConfig.Types.Status++-- | A routing control has one of two states: ON and OFF. You can map the+-- routing control state to the state of an Amazon Route 53 health check,+-- which can be used to control traffic routing.+--+-- /See:/ 'newRoutingControl' smart constructor.+data RoutingControl = RoutingControl'+ { -- | The Amazon Resource Name (ARN) of the control panel that includes the+ -- routing control.+ controlPanelArn :: Prelude.Maybe Prelude.Text,+ -- | The name of the routing control.+ name :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the routing control.+ routingControlArn :: Prelude.Maybe Prelude.Text,+ -- | The deployment status of a routing control. Status can be one of the+ -- following: PENDING, DEPLOYED, PENDING_DELETION.+ status :: Prelude.Maybe Status+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RoutingControl' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'controlPanelArn', 'routingControl_controlPanelArn' - The Amazon Resource Name (ARN) of the control panel that includes the+-- routing control.+--+-- 'name', 'routingControl_name' - The name of the routing control.+--+-- 'routingControlArn', 'routingControl_routingControlArn' - The Amazon Resource Name (ARN) of the routing control.+--+-- 'status', 'routingControl_status' - The deployment status of a routing control. Status can be one of the+-- following: PENDING, DEPLOYED, PENDING_DELETION.+newRoutingControl ::+ RoutingControl+newRoutingControl =+ RoutingControl'+ { controlPanelArn = Prelude.Nothing,+ name = Prelude.Nothing,+ routingControlArn = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the control panel that includes the+-- routing control.+routingControl_controlPanelArn :: Lens.Lens' RoutingControl (Prelude.Maybe Prelude.Text)+routingControl_controlPanelArn = Lens.lens (\RoutingControl' {controlPanelArn} -> controlPanelArn) (\s@RoutingControl' {} a -> s {controlPanelArn = a} :: RoutingControl)++-- | The name of the routing control.+routingControl_name :: Lens.Lens' RoutingControl (Prelude.Maybe Prelude.Text)+routingControl_name = Lens.lens (\RoutingControl' {name} -> name) (\s@RoutingControl' {} a -> s {name = a} :: RoutingControl)++-- | The Amazon Resource Name (ARN) of the routing control.+routingControl_routingControlArn :: Lens.Lens' RoutingControl (Prelude.Maybe Prelude.Text)+routingControl_routingControlArn = Lens.lens (\RoutingControl' {routingControlArn} -> routingControlArn) (\s@RoutingControl' {} a -> s {routingControlArn = a} :: RoutingControl)++-- | The deployment status of a routing control. Status can be one of the+-- following: PENDING, DEPLOYED, PENDING_DELETION.+routingControl_status :: Lens.Lens' RoutingControl (Prelude.Maybe Status)+routingControl_status = Lens.lens (\RoutingControl' {status} -> status) (\s@RoutingControl' {} a -> s {status = a} :: RoutingControl)++instance Data.FromJSON RoutingControl where+ parseJSON =+ Data.withObject+ "RoutingControl"+ ( \x ->+ RoutingControl'+ Prelude.<$> (x Data..:? "ControlPanelArn")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "RoutingControlArn")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable RoutingControl where+ hashWithSalt _salt RoutingControl' {..} =+ _salt+ `Prelude.hashWithSalt` controlPanelArn+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` routingControlArn+ `Prelude.hashWithSalt` status++instance Prelude.NFData RoutingControl where+ rnf RoutingControl' {..} =+ Prelude.rnf controlPanelArn+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf routingControlArn+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Route53RecoveryControlConfig/Types/Rule.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.Route53RecoveryControlConfig.Types.Rule+-- 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.Route53RecoveryControlConfig.Types.Rule 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.Route53RecoveryControlConfig.Types.AssertionRule+import Amazonka.Route53RecoveryControlConfig.Types.GatingRule++-- | A safety rule. A safety rule can be an assertion rule or a gating rule.+--+-- /See:/ 'newRule' smart constructor.+data Rule = Rule'+ { -- | An assertion rule enforces that, when a routing control state is+ -- changed, the criteria set by the rule configuration is met. Otherwise,+ -- the change to the routing control state is not accepted. For example,+ -- the criteria might be that at least one routing control state is On+ -- after the transaction so that traffic continues to flow to at least one+ -- cell for the application. This ensures that you avoid a fail-open+ -- scenario.+ assertion :: Prelude.Maybe AssertionRule,+ -- | A gating rule verifies that a gating routing control or set of gating+ -- routing controls, evaluates as true, based on a rule configuration that+ -- you specify, which allows a set of routing control state changes to+ -- complete.+ --+ -- For example, if you specify one gating routing control and you set the+ -- Type in the rule configuration to OR, that indicates that you must set+ -- the gating routing control to On for the rule to evaluate as true; that+ -- is, for the gating control \"switch\" to be \"On\". When you do that,+ -- then you can update the routing control states for the target routing+ -- controls that you specify in the gating rule.+ gating :: Prelude.Maybe GatingRule+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Rule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assertion', 'rule_assertion' - An assertion rule enforces that, when a routing control state is+-- changed, the criteria set by the rule configuration is met. Otherwise,+-- the change to the routing control state is not accepted. For example,+-- the criteria might be that at least one routing control state is On+-- after the transaction so that traffic continues to flow to at least one+-- cell for the application. This ensures that you avoid a fail-open+-- scenario.+--+-- 'gating', 'rule_gating' - A gating rule verifies that a gating routing control or set of gating+-- routing controls, evaluates as true, based on a rule configuration that+-- you specify, which allows a set of routing control state changes to+-- complete.+--+-- For example, if you specify one gating routing control and you set the+-- Type in the rule configuration to OR, that indicates that you must set+-- the gating routing control to On for the rule to evaluate as true; that+-- is, for the gating control \"switch\" to be \"On\". When you do that,+-- then you can update the routing control states for the target routing+-- controls that you specify in the gating rule.+newRule ::+ Rule+newRule =+ Rule'+ { assertion = Prelude.Nothing,+ gating = Prelude.Nothing+ }++-- | An assertion rule enforces that, when a routing control state is+-- changed, the criteria set by the rule configuration is met. Otherwise,+-- the change to the routing control state is not accepted. For example,+-- the criteria might be that at least one routing control state is On+-- after the transaction so that traffic continues to flow to at least one+-- cell for the application. This ensures that you avoid a fail-open+-- scenario.+rule_assertion :: Lens.Lens' Rule (Prelude.Maybe AssertionRule)+rule_assertion = Lens.lens (\Rule' {assertion} -> assertion) (\s@Rule' {} a -> s {assertion = a} :: Rule)++-- | A gating rule verifies that a gating routing control or set of gating+-- routing controls, evaluates as true, based on a rule configuration that+-- you specify, which allows a set of routing control state changes to+-- complete.+--+-- For example, if you specify one gating routing control and you set the+-- Type in the rule configuration to OR, that indicates that you must set+-- the gating routing control to On for the rule to evaluate as true; that+-- is, for the gating control \"switch\" to be \"On\". When you do that,+-- then you can update the routing control states for the target routing+-- controls that you specify in the gating rule.+rule_gating :: Lens.Lens' Rule (Prelude.Maybe GatingRule)+rule_gating = Lens.lens (\Rule' {gating} -> gating) (\s@Rule' {} a -> s {gating = a} :: Rule)++instance Data.FromJSON Rule where+ parseJSON =+ Data.withObject+ "Rule"+ ( \x ->+ Rule'+ Prelude.<$> (x Data..:? "ASSERTION")+ Prelude.<*> (x Data..:? "GATING")+ )++instance Prelude.Hashable Rule where+ hashWithSalt _salt Rule' {..} =+ _salt+ `Prelude.hashWithSalt` assertion+ `Prelude.hashWithSalt` gating++instance Prelude.NFData Rule where+ rnf Rule' {..} =+ Prelude.rnf assertion+ `Prelude.seq` Prelude.rnf gating
+ gen/Amazonka/Route53RecoveryControlConfig/Types/RuleConfig.hs view
@@ -0,0 +1,124 @@+{-# 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.Route53RecoveryControlConfig.Types.RuleConfig+-- 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.Route53RecoveryControlConfig.Types.RuleConfig 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.Route53RecoveryControlConfig.Types.RuleType++-- | The rule configuration for an assertion rule. That is, the criteria that+-- you set for specific assertion controls (routing controls) that specify+-- how many control states must be ON after a transaction completes.+--+-- /See:/ 'newRuleConfig' smart constructor.+data RuleConfig = RuleConfig'+ { -- | A rule can be one of the following: ATLEAST, AND, or OR.+ type' :: RuleType,+ -- | Logical negation of the rule. If the rule would usually evaluate true,+ -- it\'s evaluated as false, and vice versa.+ inverted :: Prelude.Bool,+ -- | The value of N, when you specify an ATLEAST rule type. That is,+ -- Threshold is the number of controls that must be set when you specify an+ -- ATLEAST type.+ threshold :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RuleConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'type'', 'ruleConfig_type' - A rule can be one of the following: ATLEAST, AND, or OR.+--+-- 'inverted', 'ruleConfig_inverted' - Logical negation of the rule. If the rule would usually evaluate true,+-- it\'s evaluated as false, and vice versa.+--+-- 'threshold', 'ruleConfig_threshold' - The value of N, when you specify an ATLEAST rule type. That is,+-- Threshold is the number of controls that must be set when you specify an+-- ATLEAST type.+newRuleConfig ::+ -- | 'type''+ RuleType ->+ -- | 'inverted'+ Prelude.Bool ->+ -- | 'threshold'+ Prelude.Int ->+ RuleConfig+newRuleConfig pType_ pInverted_ pThreshold_ =+ RuleConfig'+ { type' = pType_,+ inverted = pInverted_,+ threshold = pThreshold_+ }++-- | A rule can be one of the following: ATLEAST, AND, or OR.+ruleConfig_type :: Lens.Lens' RuleConfig RuleType+ruleConfig_type = Lens.lens (\RuleConfig' {type'} -> type') (\s@RuleConfig' {} a -> s {type' = a} :: RuleConfig)++-- | Logical negation of the rule. If the rule would usually evaluate true,+-- it\'s evaluated as false, and vice versa.+ruleConfig_inverted :: Lens.Lens' RuleConfig Prelude.Bool+ruleConfig_inverted = Lens.lens (\RuleConfig' {inverted} -> inverted) (\s@RuleConfig' {} a -> s {inverted = a} :: RuleConfig)++-- | The value of N, when you specify an ATLEAST rule type. That is,+-- Threshold is the number of controls that must be set when you specify an+-- ATLEAST type.+ruleConfig_threshold :: Lens.Lens' RuleConfig Prelude.Int+ruleConfig_threshold = Lens.lens (\RuleConfig' {threshold} -> threshold) (\s@RuleConfig' {} a -> s {threshold = a} :: RuleConfig)++instance Data.FromJSON RuleConfig where+ parseJSON =+ Data.withObject+ "RuleConfig"+ ( \x ->+ RuleConfig'+ Prelude.<$> (x Data..: "Type")+ Prelude.<*> (x Data..: "Inverted")+ Prelude.<*> (x Data..: "Threshold")+ )++instance Prelude.Hashable RuleConfig where+ hashWithSalt _salt RuleConfig' {..} =+ _salt+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` inverted+ `Prelude.hashWithSalt` threshold++instance Prelude.NFData RuleConfig where+ rnf RuleConfig' {..} =+ Prelude.rnf type'+ `Prelude.seq` Prelude.rnf inverted+ `Prelude.seq` Prelude.rnf threshold++instance Data.ToJSON RuleConfig where+ toJSON RuleConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("Type" Data..= type'),+ Prelude.Just ("Inverted" Data..= inverted),+ Prelude.Just ("Threshold" Data..= threshold)+ ]+ )
+ gen/Amazonka/Route53RecoveryControlConfig/Types/RuleType.hs view
@@ -0,0 +1,87 @@+{-# 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.Route53RecoveryControlConfig.Types.RuleType+-- 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.Route53RecoveryControlConfig.Types.RuleType+ ( RuleType+ ( ..,+ RuleType_AND,+ RuleType_ATLEAST,+ RuleType_OR+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An enumerated type that determines how the evaluated rules are+-- processed. RuleType can be one of the following:+--+-- ATLEAST - At least N routing controls must be set. You specify N as the+-- Threshold in the rule configuration.+--+-- AND - All routing controls must be set. This is a shortcut for \"At+-- least N,\" where N is the total number of controls in the rule.+--+-- OR - Any control must be set. This is a shortcut for \"At least N,\"+-- where N is 1.+newtype RuleType = RuleType'+ { fromRuleType ::+ 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 RuleType_AND :: RuleType+pattern RuleType_AND = RuleType' "AND"++pattern RuleType_ATLEAST :: RuleType+pattern RuleType_ATLEAST = RuleType' "ATLEAST"++pattern RuleType_OR :: RuleType+pattern RuleType_OR = RuleType' "OR"++{-# COMPLETE+ RuleType_AND,+ RuleType_ATLEAST,+ RuleType_OR,+ RuleType'+ #-}
+ gen/Amazonka/Route53RecoveryControlConfig/Types/Status.hs view
@@ -0,0 +1,82 @@+{-# 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.Route53RecoveryControlConfig.Types.Status+-- 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.Route53RecoveryControlConfig.Types.Status+ ( Status+ ( ..,+ Status_DEPLOYED,+ Status_PENDING,+ Status_PENDING_DELETION+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The deployment status of a resource. Status can be one of the following:+--+-- PENDING: Amazon Route 53 Application Recovery Controller is creating the+-- resource.+--+-- DEPLOYED: The resource is deployed and ready to use.+--+-- PENDING_DELETION: Amazon Route 53 Application Recovery Controller is+-- deleting the resource.+newtype Status = Status' {fromStatus :: 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 Status_DEPLOYED :: Status+pattern Status_DEPLOYED = Status' "DEPLOYED"++pattern Status_PENDING :: Status+pattern Status_PENDING = Status' "PENDING"++pattern Status_PENDING_DELETION :: Status+pattern Status_PENDING_DELETION = Status' "PENDING_DELETION"++{-# COMPLETE+ Status_DEPLOYED,+ Status_PENDING,+ Status_PENDING_DELETION,+ Status'+ #-}
+ gen/Amazonka/Route53RecoveryControlConfig/UntagResource.hs view
@@ -0,0 +1,161 @@+{-# 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.Route53RecoveryControlConfig.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 a tag from a resource.+module Amazonka.Route53RecoveryControlConfig.UntagResource+ ( -- * Creating a Request+ UntagResource (..),+ newUntagResource,++ -- * Request Lenses+ untagResource_resourceArn,+ untagResource_tagKeys,++ -- * Destructuring the Response+ UntagResourceResponse (..),+ newUntagResourceResponse,++ -- * Response Lenses+ untagResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+ { -- | The Amazon Resource Name (ARN) for the resource that\'s tagged.+ resourceArn :: Prelude.Text,+ -- | Keys for the tags to be removed.+ tagKeys :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) for the resource that\'s tagged.+--+-- 'tagKeys', 'untagResource_tagKeys' - Keys for the tags to be removed.+newUntagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ UntagResource+newUntagResource pResourceArn_ =+ UntagResource'+ { resourceArn = pResourceArn_,+ tagKeys = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) for the resource that\'s tagged.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | Keys for the tags to be removed.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+ type+ AWSResponse UntagResource =+ UntagResourceResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UntagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UntagResource where+ hashWithSalt _salt UntagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+ rnf UntagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath UntagResource where+ toPath UntagResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+ toQuery UntagResource' {..} =+ Prelude.mconcat+ ["TagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+ UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+ rnf UntagResourceResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/UpdateControlPanel.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.Route53RecoveryControlConfig.UpdateControlPanel+-- 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 control panel. The only update you can make to a control panel+-- is to change the name of the control panel.+module Amazonka.Route53RecoveryControlConfig.UpdateControlPanel+ ( -- * Creating a Request+ UpdateControlPanel (..),+ newUpdateControlPanel,++ -- * Request Lenses+ updateControlPanel_controlPanelArn,+ updateControlPanel_controlPanelName,++ -- * Destructuring the Response+ UpdateControlPanelResponse (..),+ newUpdateControlPanelResponse,++ -- * Response Lenses+ updateControlPanelResponse_controlPanel,+ updateControlPanelResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | The details of the control panel that you\'re updating.+--+-- /See:/ 'newUpdateControlPanel' smart constructor.+data UpdateControlPanel = UpdateControlPanel'+ { -- | The Amazon Resource Name (ARN) of the control panel.+ controlPanelArn :: Prelude.Text,+ -- | The name of the control panel.+ controlPanelName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateControlPanel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'controlPanelArn', 'updateControlPanel_controlPanelArn' - The Amazon Resource Name (ARN) of the control panel.+--+-- 'controlPanelName', 'updateControlPanel_controlPanelName' - The name of the control panel.+newUpdateControlPanel ::+ -- | 'controlPanelArn'+ Prelude.Text ->+ -- | 'controlPanelName'+ Prelude.Text ->+ UpdateControlPanel+newUpdateControlPanel+ pControlPanelArn_+ pControlPanelName_ =+ UpdateControlPanel'+ { controlPanelArn =+ pControlPanelArn_,+ controlPanelName = pControlPanelName_+ }++-- | The Amazon Resource Name (ARN) of the control panel.+updateControlPanel_controlPanelArn :: Lens.Lens' UpdateControlPanel Prelude.Text+updateControlPanel_controlPanelArn = Lens.lens (\UpdateControlPanel' {controlPanelArn} -> controlPanelArn) (\s@UpdateControlPanel' {} a -> s {controlPanelArn = a} :: UpdateControlPanel)++-- | The name of the control panel.+updateControlPanel_controlPanelName :: Lens.Lens' UpdateControlPanel Prelude.Text+updateControlPanel_controlPanelName = Lens.lens (\UpdateControlPanel' {controlPanelName} -> controlPanelName) (\s@UpdateControlPanel' {} a -> s {controlPanelName = a} :: UpdateControlPanel)++instance Core.AWSRequest UpdateControlPanel where+ type+ AWSResponse UpdateControlPanel =+ UpdateControlPanelResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateControlPanelResponse'+ Prelude.<$> (x Data..?> "ControlPanel")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateControlPanel where+ hashWithSalt _salt UpdateControlPanel' {..} =+ _salt+ `Prelude.hashWithSalt` controlPanelArn+ `Prelude.hashWithSalt` controlPanelName++instance Prelude.NFData UpdateControlPanel where+ rnf UpdateControlPanel' {..} =+ Prelude.rnf controlPanelArn+ `Prelude.seq` Prelude.rnf controlPanelName++instance Data.ToHeaders UpdateControlPanel where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateControlPanel where+ toJSON UpdateControlPanel' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("ControlPanelArn" Data..= controlPanelArn),+ Prelude.Just+ ("ControlPanelName" Data..= controlPanelName)+ ]+ )++instance Data.ToPath UpdateControlPanel where+ toPath = Prelude.const "/controlpanel"++instance Data.ToQuery UpdateControlPanel where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateControlPanelResponse' smart constructor.+data UpdateControlPanelResponse = UpdateControlPanelResponse'+ { -- | The control panel to update.+ controlPanel :: Prelude.Maybe ControlPanel,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateControlPanelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'controlPanel', 'updateControlPanelResponse_controlPanel' - The control panel to update.+--+-- 'httpStatus', 'updateControlPanelResponse_httpStatus' - The response's http status code.+newUpdateControlPanelResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateControlPanelResponse+newUpdateControlPanelResponse pHttpStatus_ =+ UpdateControlPanelResponse'+ { controlPanel =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The control panel to update.+updateControlPanelResponse_controlPanel :: Lens.Lens' UpdateControlPanelResponse (Prelude.Maybe ControlPanel)+updateControlPanelResponse_controlPanel = Lens.lens (\UpdateControlPanelResponse' {controlPanel} -> controlPanel) (\s@UpdateControlPanelResponse' {} a -> s {controlPanel = a} :: UpdateControlPanelResponse)++-- | The response's http status code.+updateControlPanelResponse_httpStatus :: Lens.Lens' UpdateControlPanelResponse Prelude.Int+updateControlPanelResponse_httpStatus = Lens.lens (\UpdateControlPanelResponse' {httpStatus} -> httpStatus) (\s@UpdateControlPanelResponse' {} a -> s {httpStatus = a} :: UpdateControlPanelResponse)++instance Prelude.NFData UpdateControlPanelResponse where+ rnf UpdateControlPanelResponse' {..} =+ Prelude.rnf controlPanel+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/UpdateRoutingControl.hs view
@@ -0,0 +1,194 @@+{-# 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.Route53RecoveryControlConfig.UpdateRoutingControl+-- 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 routing control. You can only update the name of the routing+-- control. To get or update the routing control state, see the Recovery+-- Cluster (data plane) API actions for Amazon Route 53 Application+-- Recovery Controller.+module Amazonka.Route53RecoveryControlConfig.UpdateRoutingControl+ ( -- * Creating a Request+ UpdateRoutingControl (..),+ newUpdateRoutingControl,++ -- * Request Lenses+ updateRoutingControl_routingControlName,+ updateRoutingControl_routingControlArn,++ -- * Destructuring the Response+ UpdateRoutingControlResponse (..),+ newUpdateRoutingControlResponse,++ -- * Response Lenses+ updateRoutingControlResponse_routingControl,+ updateRoutingControlResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | The details of the routing control that you\'re updating.+--+-- /See:/ 'newUpdateRoutingControl' smart constructor.+data UpdateRoutingControl = UpdateRoutingControl'+ { -- | The name of the routing control.+ routingControlName :: Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the routing control.+ routingControlArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRoutingControl' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'routingControlName', 'updateRoutingControl_routingControlName' - The name of the routing control.+--+-- 'routingControlArn', 'updateRoutingControl_routingControlArn' - The Amazon Resource Name (ARN) of the routing control.+newUpdateRoutingControl ::+ -- | 'routingControlName'+ Prelude.Text ->+ -- | 'routingControlArn'+ Prelude.Text ->+ UpdateRoutingControl+newUpdateRoutingControl+ pRoutingControlName_+ pRoutingControlArn_ =+ UpdateRoutingControl'+ { routingControlName =+ pRoutingControlName_,+ routingControlArn = pRoutingControlArn_+ }++-- | The name of the routing control.+updateRoutingControl_routingControlName :: Lens.Lens' UpdateRoutingControl Prelude.Text+updateRoutingControl_routingControlName = Lens.lens (\UpdateRoutingControl' {routingControlName} -> routingControlName) (\s@UpdateRoutingControl' {} a -> s {routingControlName = a} :: UpdateRoutingControl)++-- | The Amazon Resource Name (ARN) of the routing control.+updateRoutingControl_routingControlArn :: Lens.Lens' UpdateRoutingControl Prelude.Text+updateRoutingControl_routingControlArn = Lens.lens (\UpdateRoutingControl' {routingControlArn} -> routingControlArn) (\s@UpdateRoutingControl' {} a -> s {routingControlArn = a} :: UpdateRoutingControl)++instance Core.AWSRequest UpdateRoutingControl where+ type+ AWSResponse UpdateRoutingControl =+ UpdateRoutingControlResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateRoutingControlResponse'+ Prelude.<$> (x Data..?> "RoutingControl")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateRoutingControl where+ hashWithSalt _salt UpdateRoutingControl' {..} =+ _salt+ `Prelude.hashWithSalt` routingControlName+ `Prelude.hashWithSalt` routingControlArn++instance Prelude.NFData UpdateRoutingControl where+ rnf UpdateRoutingControl' {..} =+ Prelude.rnf routingControlName+ `Prelude.seq` Prelude.rnf routingControlArn++instance Data.ToHeaders UpdateRoutingControl where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateRoutingControl where+ toJSON UpdateRoutingControl' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("RoutingControlName" Data..= routingControlName),+ Prelude.Just+ ("RoutingControlArn" Data..= routingControlArn)+ ]+ )++instance Data.ToPath UpdateRoutingControl where+ toPath = Prelude.const "/routingcontrol"++instance Data.ToQuery UpdateRoutingControl where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateRoutingControlResponse' smart constructor.+data UpdateRoutingControlResponse = UpdateRoutingControlResponse'+ { -- | The routing control that was updated.+ routingControl :: Prelude.Maybe RoutingControl,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateRoutingControlResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'routingControl', 'updateRoutingControlResponse_routingControl' - The routing control that was updated.+--+-- 'httpStatus', 'updateRoutingControlResponse_httpStatus' - The response's http status code.+newUpdateRoutingControlResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateRoutingControlResponse+newUpdateRoutingControlResponse pHttpStatus_ =+ UpdateRoutingControlResponse'+ { routingControl =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The routing control that was updated.+updateRoutingControlResponse_routingControl :: Lens.Lens' UpdateRoutingControlResponse (Prelude.Maybe RoutingControl)+updateRoutingControlResponse_routingControl = Lens.lens (\UpdateRoutingControlResponse' {routingControl} -> routingControl) (\s@UpdateRoutingControlResponse' {} a -> s {routingControl = a} :: UpdateRoutingControlResponse)++-- | The response's http status code.+updateRoutingControlResponse_httpStatus :: Lens.Lens' UpdateRoutingControlResponse Prelude.Int+updateRoutingControlResponse_httpStatus = Lens.lens (\UpdateRoutingControlResponse' {httpStatus} -> httpStatus) (\s@UpdateRoutingControlResponse' {} a -> s {httpStatus = a} :: UpdateRoutingControlResponse)++instance Prelude.NFData UpdateRoutingControlResponse where+ rnf UpdateRoutingControlResponse' {..} =+ Prelude.rnf routingControl+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/UpdateSafetyRule.hs view
@@ -0,0 +1,201 @@+{-# 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.Route53RecoveryControlConfig.UpdateSafetyRule+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update a safety rule (an assertion rule or gating rule). You can only+-- update the name and the waiting period for a safety rule. To make other+-- updates, delete the safety rule and create a new one.+module Amazonka.Route53RecoveryControlConfig.UpdateSafetyRule+ ( -- * Creating a Request+ UpdateSafetyRule (..),+ newUpdateSafetyRule,++ -- * Request Lenses+ updateSafetyRule_assertionRuleUpdate,+ updateSafetyRule_gatingRuleUpdate,++ -- * Destructuring the Response+ UpdateSafetyRuleResponse (..),+ newUpdateSafetyRuleResponse,++ -- * Response Lenses+ updateSafetyRuleResponse_assertionRule,+ updateSafetyRuleResponse_gatingRule,+ updateSafetyRuleResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.Route53RecoveryControlConfig.Types++-- | A rule that you add to Application Recovery Controller to ensure that+-- recovery actions don\'t accidentally impair your application\'s+-- availability.+--+-- /See:/ 'newUpdateSafetyRule' smart constructor.+data UpdateSafetyRule = UpdateSafetyRule'+ { -- | The assertion rule to update.+ assertionRuleUpdate :: Prelude.Maybe AssertionRuleUpdate,+ -- | The gating rule to update.+ gatingRuleUpdate :: Prelude.Maybe GatingRuleUpdate+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSafetyRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assertionRuleUpdate', 'updateSafetyRule_assertionRuleUpdate' - The assertion rule to update.+--+-- 'gatingRuleUpdate', 'updateSafetyRule_gatingRuleUpdate' - The gating rule to update.+newUpdateSafetyRule ::+ UpdateSafetyRule+newUpdateSafetyRule =+ UpdateSafetyRule'+ { assertionRuleUpdate =+ Prelude.Nothing,+ gatingRuleUpdate = Prelude.Nothing+ }++-- | The assertion rule to update.+updateSafetyRule_assertionRuleUpdate :: Lens.Lens' UpdateSafetyRule (Prelude.Maybe AssertionRuleUpdate)+updateSafetyRule_assertionRuleUpdate = Lens.lens (\UpdateSafetyRule' {assertionRuleUpdate} -> assertionRuleUpdate) (\s@UpdateSafetyRule' {} a -> s {assertionRuleUpdate = a} :: UpdateSafetyRule)++-- | The gating rule to update.+updateSafetyRule_gatingRuleUpdate :: Lens.Lens' UpdateSafetyRule (Prelude.Maybe GatingRuleUpdate)+updateSafetyRule_gatingRuleUpdate = Lens.lens (\UpdateSafetyRule' {gatingRuleUpdate} -> gatingRuleUpdate) (\s@UpdateSafetyRule' {} a -> s {gatingRuleUpdate = a} :: UpdateSafetyRule)++instance Core.AWSRequest UpdateSafetyRule where+ type+ AWSResponse UpdateSafetyRule =+ UpdateSafetyRuleResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateSafetyRuleResponse'+ Prelude.<$> (x Data..?> "AssertionRule")+ Prelude.<*> (x Data..?> "GatingRule")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateSafetyRule where+ hashWithSalt _salt UpdateSafetyRule' {..} =+ _salt+ `Prelude.hashWithSalt` assertionRuleUpdate+ `Prelude.hashWithSalt` gatingRuleUpdate++instance Prelude.NFData UpdateSafetyRule where+ rnf UpdateSafetyRule' {..} =+ Prelude.rnf assertionRuleUpdate+ `Prelude.seq` Prelude.rnf gatingRuleUpdate++instance Data.ToHeaders UpdateSafetyRule where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateSafetyRule where+ toJSON UpdateSafetyRule' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AssertionRuleUpdate" Data..=)+ Prelude.<$> assertionRuleUpdate,+ ("GatingRuleUpdate" Data..=)+ Prelude.<$> gatingRuleUpdate+ ]+ )++instance Data.ToPath UpdateSafetyRule where+ toPath = Prelude.const "/safetyrule"++instance Data.ToQuery UpdateSafetyRule where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateSafetyRuleResponse' smart constructor.+data UpdateSafetyRuleResponse = UpdateSafetyRuleResponse'+ { -- | The assertion rule updated.+ assertionRule :: Prelude.Maybe AssertionRule,+ -- | The gating rule updated.+ gatingRule :: Prelude.Maybe GatingRule,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSafetyRuleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'assertionRule', 'updateSafetyRuleResponse_assertionRule' - The assertion rule updated.+--+-- 'gatingRule', 'updateSafetyRuleResponse_gatingRule' - The gating rule updated.+--+-- 'httpStatus', 'updateSafetyRuleResponse_httpStatus' - The response's http status code.+newUpdateSafetyRuleResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateSafetyRuleResponse+newUpdateSafetyRuleResponse pHttpStatus_ =+ UpdateSafetyRuleResponse'+ { assertionRule =+ Prelude.Nothing,+ gatingRule = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The assertion rule updated.+updateSafetyRuleResponse_assertionRule :: Lens.Lens' UpdateSafetyRuleResponse (Prelude.Maybe AssertionRule)+updateSafetyRuleResponse_assertionRule = Lens.lens (\UpdateSafetyRuleResponse' {assertionRule} -> assertionRule) (\s@UpdateSafetyRuleResponse' {} a -> s {assertionRule = a} :: UpdateSafetyRuleResponse)++-- | The gating rule updated.+updateSafetyRuleResponse_gatingRule :: Lens.Lens' UpdateSafetyRuleResponse (Prelude.Maybe GatingRule)+updateSafetyRuleResponse_gatingRule = Lens.lens (\UpdateSafetyRuleResponse' {gatingRule} -> gatingRule) (\s@UpdateSafetyRuleResponse' {} a -> s {gatingRule = a} :: UpdateSafetyRuleResponse)++-- | The response's http status code.+updateSafetyRuleResponse_httpStatus :: Lens.Lens' UpdateSafetyRuleResponse Prelude.Int+updateSafetyRuleResponse_httpStatus = Lens.lens (\UpdateSafetyRuleResponse' {httpStatus} -> httpStatus) (\s@UpdateSafetyRuleResponse' {} a -> s {httpStatus = a} :: UpdateSafetyRuleResponse)++instance Prelude.NFData UpdateSafetyRuleResponse where+ rnf UpdateSafetyRuleResponse' {..} =+ Prelude.rnf assertionRule+ `Prelude.seq` Prelude.rnf gatingRule+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Route53RecoveryControlConfig/Waiters.hs view
@@ -0,0 +1,183 @@+{-# 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.Route53RecoveryControlConfig.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.Route53RecoveryControlConfig.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.Route53RecoveryControlConfig.DescribeCluster+import Amazonka.Route53RecoveryControlConfig.DescribeControlPanel+import Amazonka.Route53RecoveryControlConfig.DescribeRoutingControl+import Amazonka.Route53RecoveryControlConfig.Lens+import Amazonka.Route53RecoveryControlConfig.Types++-- | Polls 'Amazonka.Route53RecoveryControlConfig.DescribeCluster' every 5 seconds until a successful state is reached. An error is returned after 26 failed checks.+newClusterCreated :: Core.Wait DescribeCluster+newClusterCreated =+ Core.Wait+ { Core.name = "ClusterCreated",+ Core.attempts = 26,+ Core.delay = 5,+ Core.acceptors =+ [ Core.matchAll+ "DEPLOYED"+ Core.AcceptSuccess+ ( describeClusterResponse_cluster+ Prelude.. Lens._Just+ Prelude.. cluster_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchAll+ "PENDING"+ Core.AcceptRetry+ ( describeClusterResponse_cluster+ Prelude.. Lens._Just+ Prelude.. cluster_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchStatus 500 Core.AcceptRetry+ ]+ }++-- | Polls 'Amazonka.Route53RecoveryControlConfig.DescribeCluster' every 5 seconds until a successful state is reached. An error is returned after 26 failed checks.+newClusterDeleted :: Core.Wait DescribeCluster+newClusterDeleted =+ Core.Wait+ { Core.name = "ClusterDeleted",+ Core.attempts = 26,+ Core.delay = 5,+ Core.acceptors =+ [ Core.matchStatus 404 Core.AcceptSuccess,+ Core.matchAll+ "PENDING_DELETION"+ Core.AcceptRetry+ ( describeClusterResponse_cluster+ Prelude.. Lens._Just+ Prelude.. cluster_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchStatus 500 Core.AcceptRetry+ ]+ }++-- | Polls 'Amazonka.Route53RecoveryControlConfig.DescribeControlPanel' every 5 seconds until a successful state is reached. An error is returned after 26 failed checks.+newControlPanelCreated :: Core.Wait DescribeControlPanel+newControlPanelCreated =+ Core.Wait+ { Core.name = "ControlPanelCreated",+ Core.attempts = 26,+ Core.delay = 5,+ Core.acceptors =+ [ Core.matchAll+ "DEPLOYED"+ Core.AcceptSuccess+ ( describeControlPanelResponse_controlPanel+ Prelude.. Lens._Just+ Prelude.. controlPanel_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchAll+ "PENDING"+ Core.AcceptRetry+ ( describeControlPanelResponse_controlPanel+ Prelude.. Lens._Just+ Prelude.. controlPanel_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchStatus 500 Core.AcceptRetry+ ]+ }++-- | Polls 'Amazonka.Route53RecoveryControlConfig.DescribeControlPanel' every 5 seconds until a successful state is reached. An error is returned after 26 failed checks.+newControlPanelDeleted :: Core.Wait DescribeControlPanel+newControlPanelDeleted =+ Core.Wait+ { Core.name = "ControlPanelDeleted",+ Core.attempts = 26,+ Core.delay = 5,+ Core.acceptors =+ [ Core.matchStatus 404 Core.AcceptSuccess,+ Core.matchAll+ "PENDING_DELETION"+ Core.AcceptRetry+ ( describeControlPanelResponse_controlPanel+ Prelude.. Lens._Just+ Prelude.. controlPanel_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchStatus 500 Core.AcceptRetry+ ]+ }++-- | Polls 'Amazonka.Route53RecoveryControlConfig.DescribeRoutingControl' every 5 seconds until a successful state is reached. An error is returned after 26 failed checks.+newRoutingControlCreated :: Core.Wait DescribeRoutingControl+newRoutingControlCreated =+ Core.Wait+ { Core.name = "RoutingControlCreated",+ Core.attempts = 26,+ Core.delay = 5,+ Core.acceptors =+ [ Core.matchAll+ "DEPLOYED"+ Core.AcceptSuccess+ ( describeRoutingControlResponse_routingControl+ Prelude.. Lens._Just+ Prelude.. routingControl_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchAll+ "PENDING"+ Core.AcceptRetry+ ( describeRoutingControlResponse_routingControl+ Prelude.. Lens._Just+ Prelude.. routingControl_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchStatus 500 Core.AcceptRetry+ ]+ }++-- | Polls 'Amazonka.Route53RecoveryControlConfig.DescribeRoutingControl' every 5 seconds until a successful state is reached. An error is returned after 26 failed checks.+newRoutingControlDeleted :: Core.Wait DescribeRoutingControl+newRoutingControlDeleted =+ Core.Wait+ { Core.name = "RoutingControlDeleted",+ Core.attempts = 26,+ Core.delay = 5,+ Core.acceptors =+ [ Core.matchStatus 404 Core.AcceptSuccess,+ Core.matchAll+ "PENDING_DELETION"+ Core.AcceptRetry+ ( describeRoutingControlResponse_routingControl+ Prelude.. Lens._Just+ Prelude.. routingControl_status+ Prelude.. Lens._Just+ Prelude.. Lens.to Data.toTextCI+ ),+ Core.matchStatus 500 Core.AcceptRetry+ ]+ }
+ 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.Route53RecoveryControlConfig+import Test.Amazonka.Route53RecoveryControlConfig.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "Route53RecoveryControlConfig"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/Gen/Route53RecoveryControlConfig.hs view
@@ -0,0 +1,498 @@+{-# 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.Route53RecoveryControlConfig+-- 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.Route53RecoveryControlConfig where++import Amazonka.Route53RecoveryControlConfig+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Amazonka.Route53RecoveryControlConfig.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"+-- [ requestCreateCluster $+-- newCreateCluster+--+-- , requestCreateControlPanel $+-- newCreateControlPanel+--+-- , requestCreateRoutingControl $+-- newCreateRoutingControl+--+-- , requestCreateSafetyRule $+-- newCreateSafetyRule+--+-- , requestDeleteCluster $+-- newDeleteCluster+--+-- , requestDeleteControlPanel $+-- newDeleteControlPanel+--+-- , requestDeleteRoutingControl $+-- newDeleteRoutingControl+--+-- , requestDeleteSafetyRule $+-- newDeleteSafetyRule+--+-- , requestDescribeCluster $+-- newDescribeCluster+--+-- , requestDescribeControlPanel $+-- newDescribeControlPanel+--+-- , requestDescribeRoutingControl $+-- newDescribeRoutingControl+--+-- , requestDescribeSafetyRule $+-- newDescribeSafetyRule+--+-- , requestListAssociatedRoute53HealthChecks $+-- newListAssociatedRoute53HealthChecks+--+-- , requestListClusters $+-- newListClusters+--+-- , requestListControlPanels $+-- newListControlPanels+--+-- , requestListRoutingControls $+-- newListRoutingControls+--+-- , requestListSafetyRules $+-- newListSafetyRules+--+-- , requestListTagsForResource $+-- newListTagsForResource+--+-- , requestTagResource $+-- newTagResource+--+-- , requestUntagResource $+-- newUntagResource+--+-- , requestUpdateControlPanel $+-- newUpdateControlPanel+--+-- , requestUpdateRoutingControl $+-- newUpdateRoutingControl+--+-- , requestUpdateSafetyRule $+-- newUpdateSafetyRule+--+-- ]++-- , testGroup "response"+-- [ responseCreateCluster $+-- newCreateClusterResponse+--+-- , responseCreateControlPanel $+-- newCreateControlPanelResponse+--+-- , responseCreateRoutingControl $+-- newCreateRoutingControlResponse+--+-- , responseCreateSafetyRule $+-- newCreateSafetyRuleResponse+--+-- , responseDeleteCluster $+-- newDeleteClusterResponse+--+-- , responseDeleteControlPanel $+-- newDeleteControlPanelResponse+--+-- , responseDeleteRoutingControl $+-- newDeleteRoutingControlResponse+--+-- , responseDeleteSafetyRule $+-- newDeleteSafetyRuleResponse+--+-- , responseDescribeCluster $+-- newDescribeClusterResponse+--+-- , responseDescribeControlPanel $+-- newDescribeControlPanelResponse+--+-- , responseDescribeRoutingControl $+-- newDescribeRoutingControlResponse+--+-- , responseDescribeSafetyRule $+-- newDescribeSafetyRuleResponse+--+-- , responseListAssociatedRoute53HealthChecks $+-- newListAssociatedRoute53HealthChecksResponse+--+-- , responseListClusters $+-- newListClustersResponse+--+-- , responseListControlPanels $+-- newListControlPanelsResponse+--+-- , responseListRoutingControls $+-- newListRoutingControlsResponse+--+-- , responseListSafetyRules $+-- newListSafetyRulesResponse+--+-- , responseListTagsForResource $+-- newListTagsForResourceResponse+--+-- , responseTagResource $+-- newTagResourceResponse+--+-- , responseUntagResource $+-- newUntagResourceResponse+--+-- , responseUpdateControlPanel $+-- newUpdateControlPanelResponse+--+-- , responseUpdateRoutingControl $+-- newUpdateRoutingControlResponse+--+-- , responseUpdateSafetyRule $+-- newUpdateSafetyRuleResponse+--+-- ]+-- ]++-- Requests++requestCreateCluster :: CreateCluster -> TestTree+requestCreateCluster =+ req+ "CreateCluster"+ "fixture/CreateCluster.yaml"++requestCreateControlPanel :: CreateControlPanel -> TestTree+requestCreateControlPanel =+ req+ "CreateControlPanel"+ "fixture/CreateControlPanel.yaml"++requestCreateRoutingControl :: CreateRoutingControl -> TestTree+requestCreateRoutingControl =+ req+ "CreateRoutingControl"+ "fixture/CreateRoutingControl.yaml"++requestCreateSafetyRule :: CreateSafetyRule -> TestTree+requestCreateSafetyRule =+ req+ "CreateSafetyRule"+ "fixture/CreateSafetyRule.yaml"++requestDeleteCluster :: DeleteCluster -> TestTree+requestDeleteCluster =+ req+ "DeleteCluster"+ "fixture/DeleteCluster.yaml"++requestDeleteControlPanel :: DeleteControlPanel -> TestTree+requestDeleteControlPanel =+ req+ "DeleteControlPanel"+ "fixture/DeleteControlPanel.yaml"++requestDeleteRoutingControl :: DeleteRoutingControl -> TestTree+requestDeleteRoutingControl =+ req+ "DeleteRoutingControl"+ "fixture/DeleteRoutingControl.yaml"++requestDeleteSafetyRule :: DeleteSafetyRule -> TestTree+requestDeleteSafetyRule =+ req+ "DeleteSafetyRule"+ "fixture/DeleteSafetyRule.yaml"++requestDescribeCluster :: DescribeCluster -> TestTree+requestDescribeCluster =+ req+ "DescribeCluster"+ "fixture/DescribeCluster.yaml"++requestDescribeControlPanel :: DescribeControlPanel -> TestTree+requestDescribeControlPanel =+ req+ "DescribeControlPanel"+ "fixture/DescribeControlPanel.yaml"++requestDescribeRoutingControl :: DescribeRoutingControl -> TestTree+requestDescribeRoutingControl =+ req+ "DescribeRoutingControl"+ "fixture/DescribeRoutingControl.yaml"++requestDescribeSafetyRule :: DescribeSafetyRule -> TestTree+requestDescribeSafetyRule =+ req+ "DescribeSafetyRule"+ "fixture/DescribeSafetyRule.yaml"++requestListAssociatedRoute53HealthChecks :: ListAssociatedRoute53HealthChecks -> TestTree+requestListAssociatedRoute53HealthChecks =+ req+ "ListAssociatedRoute53HealthChecks"+ "fixture/ListAssociatedRoute53HealthChecks.yaml"++requestListClusters :: ListClusters -> TestTree+requestListClusters =+ req+ "ListClusters"+ "fixture/ListClusters.yaml"++requestListControlPanels :: ListControlPanels -> TestTree+requestListControlPanels =+ req+ "ListControlPanels"+ "fixture/ListControlPanels.yaml"++requestListRoutingControls :: ListRoutingControls -> TestTree+requestListRoutingControls =+ req+ "ListRoutingControls"+ "fixture/ListRoutingControls.yaml"++requestListSafetyRules :: ListSafetyRules -> TestTree+requestListSafetyRules =+ req+ "ListSafetyRules"+ "fixture/ListSafetyRules.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+ req+ "ListTagsForResource"+ "fixture/ListTagsForResource.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+ req+ "TagResource"+ "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+ req+ "UntagResource"+ "fixture/UntagResource.yaml"++requestUpdateControlPanel :: UpdateControlPanel -> TestTree+requestUpdateControlPanel =+ req+ "UpdateControlPanel"+ "fixture/UpdateControlPanel.yaml"++requestUpdateRoutingControl :: UpdateRoutingControl -> TestTree+requestUpdateRoutingControl =+ req+ "UpdateRoutingControl"+ "fixture/UpdateRoutingControl.yaml"++requestUpdateSafetyRule :: UpdateSafetyRule -> TestTree+requestUpdateSafetyRule =+ req+ "UpdateSafetyRule"+ "fixture/UpdateSafetyRule.yaml"++-- Responses++responseCreateCluster :: CreateClusterResponse -> TestTree+responseCreateCluster =+ res+ "CreateClusterResponse"+ "fixture/CreateClusterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateCluster)++responseCreateControlPanel :: CreateControlPanelResponse -> TestTree+responseCreateControlPanel =+ res+ "CreateControlPanelResponse"+ "fixture/CreateControlPanelResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateControlPanel)++responseCreateRoutingControl :: CreateRoutingControlResponse -> TestTree+responseCreateRoutingControl =+ res+ "CreateRoutingControlResponse"+ "fixture/CreateRoutingControlResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateRoutingControl)++responseCreateSafetyRule :: CreateSafetyRuleResponse -> TestTree+responseCreateSafetyRule =+ res+ "CreateSafetyRuleResponse"+ "fixture/CreateSafetyRuleResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateSafetyRule)++responseDeleteCluster :: DeleteClusterResponse -> TestTree+responseDeleteCluster =+ res+ "DeleteClusterResponse"+ "fixture/DeleteClusterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteCluster)++responseDeleteControlPanel :: DeleteControlPanelResponse -> TestTree+responseDeleteControlPanel =+ res+ "DeleteControlPanelResponse"+ "fixture/DeleteControlPanelResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteControlPanel)++responseDeleteRoutingControl :: DeleteRoutingControlResponse -> TestTree+responseDeleteRoutingControl =+ res+ "DeleteRoutingControlResponse"+ "fixture/DeleteRoutingControlResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteRoutingControl)++responseDeleteSafetyRule :: DeleteSafetyRuleResponse -> TestTree+responseDeleteSafetyRule =+ res+ "DeleteSafetyRuleResponse"+ "fixture/DeleteSafetyRuleResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteSafetyRule)++responseDescribeCluster :: DescribeClusterResponse -> TestTree+responseDescribeCluster =+ res+ "DescribeClusterResponse"+ "fixture/DescribeClusterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeCluster)++responseDescribeControlPanel :: DescribeControlPanelResponse -> TestTree+responseDescribeControlPanel =+ res+ "DescribeControlPanelResponse"+ "fixture/DescribeControlPanelResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeControlPanel)++responseDescribeRoutingControl :: DescribeRoutingControlResponse -> TestTree+responseDescribeRoutingControl =+ res+ "DescribeRoutingControlResponse"+ "fixture/DescribeRoutingControlResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeRoutingControl)++responseDescribeSafetyRule :: DescribeSafetyRuleResponse -> TestTree+responseDescribeSafetyRule =+ res+ "DescribeSafetyRuleResponse"+ "fixture/DescribeSafetyRuleResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeSafetyRule)++responseListAssociatedRoute53HealthChecks :: ListAssociatedRoute53HealthChecksResponse -> TestTree+responseListAssociatedRoute53HealthChecks =+ res+ "ListAssociatedRoute53HealthChecksResponse"+ "fixture/ListAssociatedRoute53HealthChecksResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListAssociatedRoute53HealthChecks)++responseListClusters :: ListClustersResponse -> TestTree+responseListClusters =+ res+ "ListClustersResponse"+ "fixture/ListClustersResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListClusters)++responseListControlPanels :: ListControlPanelsResponse -> TestTree+responseListControlPanels =+ res+ "ListControlPanelsResponse"+ "fixture/ListControlPanelsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListControlPanels)++responseListRoutingControls :: ListRoutingControlsResponse -> TestTree+responseListRoutingControls =+ res+ "ListRoutingControlsResponse"+ "fixture/ListRoutingControlsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListRoutingControls)++responseListSafetyRules :: ListSafetyRulesResponse -> TestTree+responseListSafetyRules =+ res+ "ListSafetyRulesResponse"+ "fixture/ListSafetyRulesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListSafetyRules)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+ res+ "ListTagsForResourceResponse"+ "fixture/ListTagsForResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++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)++responseUpdateControlPanel :: UpdateControlPanelResponse -> TestTree+responseUpdateControlPanel =+ res+ "UpdateControlPanelResponse"+ "fixture/UpdateControlPanelResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateControlPanel)++responseUpdateRoutingControl :: UpdateRoutingControlResponse -> TestTree+responseUpdateRoutingControl =+ res+ "UpdateRoutingControlResponse"+ "fixture/UpdateRoutingControlResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateRoutingControl)++responseUpdateSafetyRule :: UpdateSafetyRuleResponse -> TestTree+responseUpdateSafetyRule =+ res+ "UpdateSafetyRuleResponse"+ "fixture/UpdateSafetyRuleResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateSafetyRule)
+ test/Test/Amazonka/Route53RecoveryControlConfig.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.Route53RecoveryControlConfig+-- 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.Route53RecoveryControlConfig+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/Route53RecoveryControlConfig/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.Route53RecoveryControlConfig.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.Route53RecoveryControlConfig.Internal where