amazonka-fis (empty) → 2.0
raw patch · 100 files changed
+9848/−0 lines, 100 filesdep +amazonka-coredep +amazonka-fisdep +amazonka-test
Dependencies added: amazonka-core, amazonka-fis, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-fis.cabal +139/−0
- fixture/CreateExperimentTemplate.yaml +10/−0
- fixture/CreateExperimentTemplateResponse.proto +0/−0
- fixture/DeleteExperimentTemplate.yaml +10/−0
- fixture/DeleteExperimentTemplateResponse.proto +0/−0
- fixture/GetAction.yaml +10/−0
- fixture/GetActionResponse.proto +0/−0
- fixture/GetExperiment.yaml +10/−0
- fixture/GetExperimentResponse.proto +0/−0
- fixture/GetExperimentTemplate.yaml +10/−0
- fixture/GetExperimentTemplateResponse.proto +0/−0
- fixture/GetTargetResourceType.yaml +10/−0
- fixture/GetTargetResourceTypeResponse.proto +0/−0
- fixture/ListActions.yaml +10/−0
- fixture/ListActionsResponse.proto +0/−0
- fixture/ListExperimentTemplates.yaml +10/−0
- fixture/ListExperimentTemplatesResponse.proto +0/−0
- fixture/ListExperiments.yaml +10/−0
- fixture/ListExperimentsResponse.proto +0/−0
- fixture/ListTagsForResource.yaml +10/−0
- fixture/ListTagsForResourceResponse.proto +0/−0
- fixture/ListTargetResourceTypes.yaml +10/−0
- fixture/ListTargetResourceTypesResponse.proto +0/−0
- fixture/StartExperiment.yaml +10/−0
- fixture/StartExperimentResponse.proto +0/−0
- fixture/StopExperiment.yaml +10/−0
- fixture/StopExperimentResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UpdateExperimentTemplate.yaml +10/−0
- fixture/UpdateExperimentTemplateResponse.proto +0/−0
- gen/Amazonka/FIS.hs +346/−0
- gen/Amazonka/FIS/CreateExperimentTemplate.hs +297/−0
- gen/Amazonka/FIS/DeleteExperimentTemplate.hs +162/−0
- gen/Amazonka/FIS/GetAction.hs +154/−0
- gen/Amazonka/FIS/GetExperiment.hs +157/−0
- gen/Amazonka/FIS/GetExperimentTemplate.hs +159/−0
- gen/Amazonka/FIS/GetTargetResourceType.hs +163/−0
- gen/Amazonka/FIS/Lens.hs +390/−0
- gen/Amazonka/FIS/ListActions.hs +193/−0
- gen/Amazonka/FIS/ListExperimentTemplates.hs +203/−0
- gen/Amazonka/FIS/ListExperiments.hs +196/−0
- gen/Amazonka/FIS/ListTagsForResource.hs +159/−0
- gen/Amazonka/FIS/ListTargetResourceTypes.hs +203/−0
- gen/Amazonka/FIS/StartExperiment.hs +205/−0
- gen/Amazonka/FIS/StopExperiment.hs +157/−0
- gen/Amazonka/FIS/TagResource.hs +163/−0
- gen/Amazonka/FIS/Types.hs +469/−0
- gen/Amazonka/FIS/Types/Action.hs +124/−0
- gen/Amazonka/FIS/Types/ActionParameter.hs +84/−0
- gen/Amazonka/FIS/Types/ActionSummary.hs +109/−0
- gen/Amazonka/FIS/Types/ActionTarget.hs +68/−0
- gen/Amazonka/FIS/Types/CreateExperimentTemplateActionInput.hs +146/−0
- gen/Amazonka/FIS/Types/CreateExperimentTemplateLogConfigurationInput.hs +119/−0
- gen/Amazonka/FIS/Types/CreateExperimentTemplateStopConditionInput.hs +107/−0
- gen/Amazonka/FIS/Types/CreateExperimentTemplateTargetInput.hs +199/−0
- gen/Amazonka/FIS/Types/Experiment.hs +212/−0
- gen/Amazonka/FIS/Types/ExperimentAction.hs +157/−0
- gen/Amazonka/FIS/Types/ExperimentActionState.hs +84/−0
- gen/Amazonka/FIS/Types/ExperimentActionStatus.hs +101/−0
- gen/Amazonka/FIS/Types/ExperimentCloudWatchLogsLogConfiguration.hs +87/−0
- gen/Amazonka/FIS/Types/ExperimentLogConfiguration.hs +99/−0
- gen/Amazonka/FIS/Types/ExperimentS3LogConfiguration.hs +88/−0
- gen/Amazonka/FIS/Types/ExperimentState.hs +84/−0
- gen/Amazonka/FIS/Types/ExperimentStatus.hs +96/−0
- gen/Amazonka/FIS/Types/ExperimentStopCondition.hs +83/−0
- gen/Amazonka/FIS/Types/ExperimentSummary.hs +121/−0
- gen/Amazonka/FIS/Types/ExperimentTarget.hs +136/−0
- gen/Amazonka/FIS/Types/ExperimentTargetFilter.hs +83/−0
- gen/Amazonka/FIS/Types/ExperimentTemplate.hs +184/−0
- gen/Amazonka/FIS/Types/ExperimentTemplateAction.hs +124/−0
- gen/Amazonka/FIS/Types/ExperimentTemplateCloudWatchLogsLogConfiguration.hs +88/−0
- gen/Amazonka/FIS/Types/ExperimentTemplateCloudWatchLogsLogConfigurationInput.hs +90/−0
- gen/Amazonka/FIS/Types/ExperimentTemplateLogConfiguration.hs +110/−0
- gen/Amazonka/FIS/Types/ExperimentTemplateS3LogConfiguration.hs +96/−0
- gen/Amazonka/FIS/Types/ExperimentTemplateS3LogConfigurationInput.hs +98/−0
- gen/Amazonka/FIS/Types/ExperimentTemplateStopCondition.hs +95/−0
- gen/Amazonka/FIS/Types/ExperimentTemplateSummary.hs +121/−0
- gen/Amazonka/FIS/Types/ExperimentTemplateTarget.hs +137/−0
- gen/Amazonka/FIS/Types/ExperimentTemplateTargetFilter.hs +93/−0
- gen/Amazonka/FIS/Types/ExperimentTemplateTargetInputFilter.hs +100/−0
- gen/Amazonka/FIS/Types/TargetResourceType.hs +97/−0
- gen/Amazonka/FIS/Types/TargetResourceTypeParameter.hs +86/−0
- gen/Amazonka/FIS/Types/TargetResourceTypeSummary.hs +85/−0
- gen/Amazonka/FIS/Types/UpdateExperimentTemplateActionInputItem.hs +137/−0
- gen/Amazonka/FIS/Types/UpdateExperimentTemplateLogConfigurationInput.hs +116/−0
- gen/Amazonka/FIS/Types/UpdateExperimentTemplateStopConditionInput.hs +105/−0
- gen/Amazonka/FIS/Types/UpdateExperimentTemplateTargetInput.hs +159/−0
- gen/Amazonka/FIS/UntagResource.hs +164/−0
- gen/Amazonka/FIS/UpdateExperimentTemplate.hs +257/−0
- gen/Amazonka/FIS/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/FIS.hs +20/−0
- test/Test/Amazonka/FIS/Internal.hs +8/−0
- test/Test/Amazonka/Gen/FIS.hs +358/−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 Fault Injection Simulator SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-12-01@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-fis)+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.FIS](http://hackage.haskell.org/package/amazonka-fis/docs/Amazonka-FIS.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-fis` 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-fis.cabal view
@@ -0,0 +1,139 @@+cabal-version: 2.2+name: amazonka-fis+version: 2.0+synopsis: Amazon Fault Injection Simulator 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-12-01@ 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.FIS.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.FIS" 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-fis++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.FIS+ Amazonka.FIS.CreateExperimentTemplate+ Amazonka.FIS.DeleteExperimentTemplate+ Amazonka.FIS.GetAction+ Amazonka.FIS.GetExperiment+ Amazonka.FIS.GetExperimentTemplate+ Amazonka.FIS.GetTargetResourceType+ Amazonka.FIS.Lens+ Amazonka.FIS.ListActions+ Amazonka.FIS.ListExperiments+ Amazonka.FIS.ListExperimentTemplates+ Amazonka.FIS.ListTagsForResource+ Amazonka.FIS.ListTargetResourceTypes+ Amazonka.FIS.StartExperiment+ Amazonka.FIS.StopExperiment+ Amazonka.FIS.TagResource+ Amazonka.FIS.Types+ Amazonka.FIS.Types.Action+ Amazonka.FIS.Types.ActionParameter+ Amazonka.FIS.Types.ActionSummary+ Amazonka.FIS.Types.ActionTarget+ Amazonka.FIS.Types.CreateExperimentTemplateActionInput+ Amazonka.FIS.Types.CreateExperimentTemplateLogConfigurationInput+ Amazonka.FIS.Types.CreateExperimentTemplateStopConditionInput+ Amazonka.FIS.Types.CreateExperimentTemplateTargetInput+ Amazonka.FIS.Types.Experiment+ Amazonka.FIS.Types.ExperimentAction+ Amazonka.FIS.Types.ExperimentActionState+ Amazonka.FIS.Types.ExperimentActionStatus+ Amazonka.FIS.Types.ExperimentCloudWatchLogsLogConfiguration+ Amazonka.FIS.Types.ExperimentLogConfiguration+ Amazonka.FIS.Types.ExperimentS3LogConfiguration+ Amazonka.FIS.Types.ExperimentState+ Amazonka.FIS.Types.ExperimentStatus+ Amazonka.FIS.Types.ExperimentStopCondition+ Amazonka.FIS.Types.ExperimentSummary+ Amazonka.FIS.Types.ExperimentTarget+ Amazonka.FIS.Types.ExperimentTargetFilter+ Amazonka.FIS.Types.ExperimentTemplate+ Amazonka.FIS.Types.ExperimentTemplateAction+ Amazonka.FIS.Types.ExperimentTemplateCloudWatchLogsLogConfiguration+ Amazonka.FIS.Types.ExperimentTemplateCloudWatchLogsLogConfigurationInput+ Amazonka.FIS.Types.ExperimentTemplateLogConfiguration+ Amazonka.FIS.Types.ExperimentTemplateS3LogConfiguration+ Amazonka.FIS.Types.ExperimentTemplateS3LogConfigurationInput+ Amazonka.FIS.Types.ExperimentTemplateStopCondition+ Amazonka.FIS.Types.ExperimentTemplateSummary+ Amazonka.FIS.Types.ExperimentTemplateTarget+ Amazonka.FIS.Types.ExperimentTemplateTargetFilter+ Amazonka.FIS.Types.ExperimentTemplateTargetInputFilter+ Amazonka.FIS.Types.TargetResourceType+ Amazonka.FIS.Types.TargetResourceTypeParameter+ Amazonka.FIS.Types.TargetResourceTypeSummary+ Amazonka.FIS.Types.UpdateExperimentTemplateActionInputItem+ Amazonka.FIS.Types.UpdateExperimentTemplateLogConfigurationInput+ Amazonka.FIS.Types.UpdateExperimentTemplateStopConditionInput+ Amazonka.FIS.Types.UpdateExperimentTemplateTargetInput+ Amazonka.FIS.UntagResource+ Amazonka.FIS.UpdateExperimentTemplate+ Amazonka.FIS.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-fis-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.FIS+ Test.Amazonka.FIS.Internal+ Test.Amazonka.Gen.FIS++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-fis+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/CreateExperimentTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/CreateExperimentTemplateResponse.proto view
+ fixture/DeleteExperimentTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/DeleteExperimentTemplateResponse.proto view
+ fixture/GetAction.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/GetActionResponse.proto view
+ fixture/GetExperiment.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/GetExperimentResponse.proto view
+ fixture/GetExperimentTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/GetExperimentTemplateResponse.proto view
+ fixture/GetTargetResourceType.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/GetTargetResourceTypeResponse.proto view
+ fixture/ListActions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/ListActionsResponse.proto view
+ fixture/ListExperimentTemplates.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/ListExperimentTemplatesResponse.proto view
+ fixture/ListExperiments.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/ListExperimentsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/ListTargetResourceTypes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/ListTargetResourceTypesResponse.proto view
+ fixture/StartExperiment.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/StartExperimentResponse.proto view
+ fixture/StopExperiment.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/StopExperimentResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/UpdateExperimentTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fis/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: fis.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/UpdateExperimentTemplateResponse.proto view
+ gen/Amazonka/FIS.hs view
@@ -0,0 +1,346 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.FIS+-- 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-12-01@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Fault Injection Simulator is a managed service that enables you to+-- perform fault injection experiments on your Amazon Web Services+-- workloads. For more information, see the+-- <https://docs.aws.amazon.com/fis/latest/userguide/ Fault Injection Simulator User Guide>.+module Amazonka.FIS+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** ConflictException+ _ConflictException,++ -- ** ResourceNotFoundException+ _ResourceNotFoundException,++ -- ** ServiceQuotaExceededException+ _ServiceQuotaExceededException,++ -- ** ValidationException+ _ValidationException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** CreateExperimentTemplate+ CreateExperimentTemplate (CreateExperimentTemplate'),+ newCreateExperimentTemplate,+ CreateExperimentTemplateResponse (CreateExperimentTemplateResponse'),+ newCreateExperimentTemplateResponse,++ -- ** DeleteExperimentTemplate+ DeleteExperimentTemplate (DeleteExperimentTemplate'),+ newDeleteExperimentTemplate,+ DeleteExperimentTemplateResponse (DeleteExperimentTemplateResponse'),+ newDeleteExperimentTemplateResponse,++ -- ** GetAction+ GetAction (GetAction'),+ newGetAction,+ GetActionResponse (GetActionResponse'),+ newGetActionResponse,++ -- ** GetExperiment+ GetExperiment (GetExperiment'),+ newGetExperiment,+ GetExperimentResponse (GetExperimentResponse'),+ newGetExperimentResponse,++ -- ** GetExperimentTemplate+ GetExperimentTemplate (GetExperimentTemplate'),+ newGetExperimentTemplate,+ GetExperimentTemplateResponse (GetExperimentTemplateResponse'),+ newGetExperimentTemplateResponse,++ -- ** GetTargetResourceType+ GetTargetResourceType (GetTargetResourceType'),+ newGetTargetResourceType,+ GetTargetResourceTypeResponse (GetTargetResourceTypeResponse'),+ newGetTargetResourceTypeResponse,++ -- ** ListActions+ ListActions (ListActions'),+ newListActions,+ ListActionsResponse (ListActionsResponse'),+ newListActionsResponse,++ -- ** ListExperimentTemplates+ ListExperimentTemplates (ListExperimentTemplates'),+ newListExperimentTemplates,+ ListExperimentTemplatesResponse (ListExperimentTemplatesResponse'),+ newListExperimentTemplatesResponse,++ -- ** ListExperiments+ ListExperiments (ListExperiments'),+ newListExperiments,+ ListExperimentsResponse (ListExperimentsResponse'),+ newListExperimentsResponse,++ -- ** ListTagsForResource+ ListTagsForResource (ListTagsForResource'),+ newListTagsForResource,+ ListTagsForResourceResponse (ListTagsForResourceResponse'),+ newListTagsForResourceResponse,++ -- ** ListTargetResourceTypes+ ListTargetResourceTypes (ListTargetResourceTypes'),+ newListTargetResourceTypes,+ ListTargetResourceTypesResponse (ListTargetResourceTypesResponse'),+ newListTargetResourceTypesResponse,++ -- ** StartExperiment+ StartExperiment (StartExperiment'),+ newStartExperiment,+ StartExperimentResponse (StartExperimentResponse'),+ newStartExperimentResponse,++ -- ** StopExperiment+ StopExperiment (StopExperiment'),+ newStopExperiment,+ StopExperimentResponse (StopExperimentResponse'),+ newStopExperimentResponse,++ -- ** TagResource+ TagResource (TagResource'),+ newTagResource,+ TagResourceResponse (TagResourceResponse'),+ newTagResourceResponse,++ -- ** UntagResource+ UntagResource (UntagResource'),+ newUntagResource,+ UntagResourceResponse (UntagResourceResponse'),+ newUntagResourceResponse,++ -- ** UpdateExperimentTemplate+ UpdateExperimentTemplate (UpdateExperimentTemplate'),+ newUpdateExperimentTemplate,+ UpdateExperimentTemplateResponse (UpdateExperimentTemplateResponse'),+ newUpdateExperimentTemplateResponse,++ -- * Types++ -- ** ExperimentActionStatus+ ExperimentActionStatus (..),++ -- ** ExperimentStatus+ ExperimentStatus (..),++ -- ** Action+ Action (Action'),+ newAction,++ -- ** ActionParameter+ ActionParameter (ActionParameter'),+ newActionParameter,++ -- ** ActionSummary+ ActionSummary (ActionSummary'),+ newActionSummary,++ -- ** ActionTarget+ ActionTarget (ActionTarget'),+ newActionTarget,++ -- ** CreateExperimentTemplateActionInput+ CreateExperimentTemplateActionInput (CreateExperimentTemplateActionInput'),+ newCreateExperimentTemplateActionInput,++ -- ** CreateExperimentTemplateLogConfigurationInput+ CreateExperimentTemplateLogConfigurationInput (CreateExperimentTemplateLogConfigurationInput'),+ newCreateExperimentTemplateLogConfigurationInput,++ -- ** CreateExperimentTemplateStopConditionInput+ CreateExperimentTemplateStopConditionInput (CreateExperimentTemplateStopConditionInput'),+ newCreateExperimentTemplateStopConditionInput,++ -- ** CreateExperimentTemplateTargetInput+ CreateExperimentTemplateTargetInput (CreateExperimentTemplateTargetInput'),+ newCreateExperimentTemplateTargetInput,++ -- ** Experiment+ Experiment (Experiment'),+ newExperiment,++ -- ** ExperimentAction+ ExperimentAction (ExperimentAction'),+ newExperimentAction,++ -- ** ExperimentActionState+ ExperimentActionState (ExperimentActionState'),+ newExperimentActionState,++ -- ** ExperimentCloudWatchLogsLogConfiguration+ ExperimentCloudWatchLogsLogConfiguration (ExperimentCloudWatchLogsLogConfiguration'),+ newExperimentCloudWatchLogsLogConfiguration,++ -- ** ExperimentLogConfiguration+ ExperimentLogConfiguration (ExperimentLogConfiguration'),+ newExperimentLogConfiguration,++ -- ** ExperimentS3LogConfiguration+ ExperimentS3LogConfiguration (ExperimentS3LogConfiguration'),+ newExperimentS3LogConfiguration,++ -- ** ExperimentState+ ExperimentState (ExperimentState'),+ newExperimentState,++ -- ** ExperimentStopCondition+ ExperimentStopCondition (ExperimentStopCondition'),+ newExperimentStopCondition,++ -- ** ExperimentSummary+ ExperimentSummary (ExperimentSummary'),+ newExperimentSummary,++ -- ** ExperimentTarget+ ExperimentTarget (ExperimentTarget'),+ newExperimentTarget,++ -- ** ExperimentTargetFilter+ ExperimentTargetFilter (ExperimentTargetFilter'),+ newExperimentTargetFilter,++ -- ** ExperimentTemplate+ ExperimentTemplate (ExperimentTemplate'),+ newExperimentTemplate,++ -- ** ExperimentTemplateAction+ ExperimentTemplateAction (ExperimentTemplateAction'),+ newExperimentTemplateAction,++ -- ** ExperimentTemplateCloudWatchLogsLogConfiguration+ ExperimentTemplateCloudWatchLogsLogConfiguration (ExperimentTemplateCloudWatchLogsLogConfiguration'),+ newExperimentTemplateCloudWatchLogsLogConfiguration,++ -- ** ExperimentTemplateCloudWatchLogsLogConfigurationInput+ ExperimentTemplateCloudWatchLogsLogConfigurationInput (ExperimentTemplateCloudWatchLogsLogConfigurationInput'),+ newExperimentTemplateCloudWatchLogsLogConfigurationInput,++ -- ** ExperimentTemplateLogConfiguration+ ExperimentTemplateLogConfiguration (ExperimentTemplateLogConfiguration'),+ newExperimentTemplateLogConfiguration,++ -- ** ExperimentTemplateS3LogConfiguration+ ExperimentTemplateS3LogConfiguration (ExperimentTemplateS3LogConfiguration'),+ newExperimentTemplateS3LogConfiguration,++ -- ** ExperimentTemplateS3LogConfigurationInput+ ExperimentTemplateS3LogConfigurationInput (ExperimentTemplateS3LogConfigurationInput'),+ newExperimentTemplateS3LogConfigurationInput,++ -- ** ExperimentTemplateStopCondition+ ExperimentTemplateStopCondition (ExperimentTemplateStopCondition'),+ newExperimentTemplateStopCondition,++ -- ** ExperimentTemplateSummary+ ExperimentTemplateSummary (ExperimentTemplateSummary'),+ newExperimentTemplateSummary,++ -- ** ExperimentTemplateTarget+ ExperimentTemplateTarget (ExperimentTemplateTarget'),+ newExperimentTemplateTarget,++ -- ** ExperimentTemplateTargetFilter+ ExperimentTemplateTargetFilter (ExperimentTemplateTargetFilter'),+ newExperimentTemplateTargetFilter,++ -- ** ExperimentTemplateTargetInputFilter+ ExperimentTemplateTargetInputFilter (ExperimentTemplateTargetInputFilter'),+ newExperimentTemplateTargetInputFilter,++ -- ** TargetResourceType+ TargetResourceType (TargetResourceType'),+ newTargetResourceType,++ -- ** TargetResourceTypeParameter+ TargetResourceTypeParameter (TargetResourceTypeParameter'),+ newTargetResourceTypeParameter,++ -- ** TargetResourceTypeSummary+ TargetResourceTypeSummary (TargetResourceTypeSummary'),+ newTargetResourceTypeSummary,++ -- ** UpdateExperimentTemplateActionInputItem+ UpdateExperimentTemplateActionInputItem (UpdateExperimentTemplateActionInputItem'),+ newUpdateExperimentTemplateActionInputItem,++ -- ** UpdateExperimentTemplateLogConfigurationInput+ UpdateExperimentTemplateLogConfigurationInput (UpdateExperimentTemplateLogConfigurationInput'),+ newUpdateExperimentTemplateLogConfigurationInput,++ -- ** UpdateExperimentTemplateStopConditionInput+ UpdateExperimentTemplateStopConditionInput (UpdateExperimentTemplateStopConditionInput'),+ newUpdateExperimentTemplateStopConditionInput,++ -- ** UpdateExperimentTemplateTargetInput+ UpdateExperimentTemplateTargetInput (UpdateExperimentTemplateTargetInput'),+ newUpdateExperimentTemplateTargetInput,+ )+where++import Amazonka.FIS.CreateExperimentTemplate+import Amazonka.FIS.DeleteExperimentTemplate+import Amazonka.FIS.GetAction+import Amazonka.FIS.GetExperiment+import Amazonka.FIS.GetExperimentTemplate+import Amazonka.FIS.GetTargetResourceType+import Amazonka.FIS.Lens+import Amazonka.FIS.ListActions+import Amazonka.FIS.ListExperimentTemplates+import Amazonka.FIS.ListExperiments+import Amazonka.FIS.ListTagsForResource+import Amazonka.FIS.ListTargetResourceTypes+import Amazonka.FIS.StartExperiment+import Amazonka.FIS.StopExperiment+import Amazonka.FIS.TagResource+import Amazonka.FIS.Types+import Amazonka.FIS.UntagResource+import Amazonka.FIS.UpdateExperimentTemplate+import Amazonka.FIS.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 'FIS'.++-- $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/FIS/CreateExperimentTemplate.hs view
@@ -0,0 +1,297 @@+{-# 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.FIS.CreateExperimentTemplate+-- 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 an experiment template.+--+-- An experiment template includes the following components:+--+-- - __Targets__: A target can be a specific resource in your Amazon Web+-- Services environment, or one or more resources that match criteria+-- that you specify, for example, resources that have specific tags.+--+-- - __Actions__: The actions to carry out on the target. You can specify+-- multiple actions, the duration of each action, and when to start+-- each action during an experiment.+--+-- - __Stop conditions__: If a stop condition is triggered while an+-- experiment is running, the experiment is automatically stopped. You+-- can define a stop condition as a CloudWatch alarm.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fis/latest/userguide/experiment-templates.html Experiment templates>+-- in the /Fault Injection Simulator User Guide/.+module Amazonka.FIS.CreateExperimentTemplate+ ( -- * Creating a Request+ CreateExperimentTemplate (..),+ newCreateExperimentTemplate,++ -- * Request Lenses+ createExperimentTemplate_logConfiguration,+ createExperimentTemplate_tags,+ createExperimentTemplate_targets,+ createExperimentTemplate_clientToken,+ createExperimentTemplate_description,+ createExperimentTemplate_stopConditions,+ createExperimentTemplate_actions,+ createExperimentTemplate_roleArn,++ -- * Destructuring the Response+ CreateExperimentTemplateResponse (..),+ newCreateExperimentTemplateResponse,++ -- * Response Lenses+ createExperimentTemplateResponse_experimentTemplate,+ createExperimentTemplateResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateExperimentTemplate' smart constructor.+data CreateExperimentTemplate = CreateExperimentTemplate'+ { -- | The configuration for experiment logging.+ logConfiguration :: Prelude.Maybe CreateExperimentTemplateLogConfigurationInput,+ -- | The tags to apply to the experiment template.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The targets for the experiment.+ targets :: Prelude.Maybe (Prelude.HashMap Prelude.Text CreateExperimentTemplateTargetInput),+ -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientToken :: Prelude.Text,+ -- | A description for the experiment template.+ description :: Prelude.Text,+ -- | The stop conditions.+ stopConditions :: [CreateExperimentTemplateStopConditionInput],+ -- | The actions for the experiment.+ actions :: Prelude.HashMap Prelude.Text CreateExperimentTemplateActionInput,+ -- | The Amazon Resource Name (ARN) of an IAM role that grants the FIS+ -- service permission to perform service actions on your behalf.+ roleArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateExperimentTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logConfiguration', 'createExperimentTemplate_logConfiguration' - The configuration for experiment logging.+--+-- 'tags', 'createExperimentTemplate_tags' - The tags to apply to the experiment template.+--+-- 'targets', 'createExperimentTemplate_targets' - The targets for the experiment.+--+-- 'clientToken', 'createExperimentTemplate_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'description', 'createExperimentTemplate_description' - A description for the experiment template.+--+-- 'stopConditions', 'createExperimentTemplate_stopConditions' - The stop conditions.+--+-- 'actions', 'createExperimentTemplate_actions' - The actions for the experiment.+--+-- 'roleArn', 'createExperimentTemplate_roleArn' - The Amazon Resource Name (ARN) of an IAM role that grants the FIS+-- service permission to perform service actions on your behalf.+newCreateExperimentTemplate ::+ -- | 'clientToken'+ Prelude.Text ->+ -- | 'description'+ Prelude.Text ->+ -- | 'roleArn'+ Prelude.Text ->+ CreateExperimentTemplate+newCreateExperimentTemplate+ pClientToken_+ pDescription_+ pRoleArn_ =+ CreateExperimentTemplate'+ { logConfiguration =+ Prelude.Nothing,+ tags = Prelude.Nothing,+ targets = Prelude.Nothing,+ clientToken = pClientToken_,+ description = pDescription_,+ stopConditions = Prelude.mempty,+ actions = Prelude.mempty,+ roleArn = pRoleArn_+ }++-- | The configuration for experiment logging.+createExperimentTemplate_logConfiguration :: Lens.Lens' CreateExperimentTemplate (Prelude.Maybe CreateExperimentTemplateLogConfigurationInput)+createExperimentTemplate_logConfiguration = Lens.lens (\CreateExperimentTemplate' {logConfiguration} -> logConfiguration) (\s@CreateExperimentTemplate' {} a -> s {logConfiguration = a} :: CreateExperimentTemplate)++-- | The tags to apply to the experiment template.+createExperimentTemplate_tags :: Lens.Lens' CreateExperimentTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createExperimentTemplate_tags = Lens.lens (\CreateExperimentTemplate' {tags} -> tags) (\s@CreateExperimentTemplate' {} a -> s {tags = a} :: CreateExperimentTemplate) Prelude.. Lens.mapping Lens.coerced++-- | The targets for the experiment.+createExperimentTemplate_targets :: Lens.Lens' CreateExperimentTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text CreateExperimentTemplateTargetInput))+createExperimentTemplate_targets = Lens.lens (\CreateExperimentTemplate' {targets} -> targets) (\s@CreateExperimentTemplate' {} a -> s {targets = a} :: CreateExperimentTemplate) Prelude.. Lens.mapping Lens.coerced++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+createExperimentTemplate_clientToken :: Lens.Lens' CreateExperimentTemplate Prelude.Text+createExperimentTemplate_clientToken = Lens.lens (\CreateExperimentTemplate' {clientToken} -> clientToken) (\s@CreateExperimentTemplate' {} a -> s {clientToken = a} :: CreateExperimentTemplate)++-- | A description for the experiment template.+createExperimentTemplate_description :: Lens.Lens' CreateExperimentTemplate Prelude.Text+createExperimentTemplate_description = Lens.lens (\CreateExperimentTemplate' {description} -> description) (\s@CreateExperimentTemplate' {} a -> s {description = a} :: CreateExperimentTemplate)++-- | The stop conditions.+createExperimentTemplate_stopConditions :: Lens.Lens' CreateExperimentTemplate [CreateExperimentTemplateStopConditionInput]+createExperimentTemplate_stopConditions = Lens.lens (\CreateExperimentTemplate' {stopConditions} -> stopConditions) (\s@CreateExperimentTemplate' {} a -> s {stopConditions = a} :: CreateExperimentTemplate) Prelude.. Lens.coerced++-- | The actions for the experiment.+createExperimentTemplate_actions :: Lens.Lens' CreateExperimentTemplate (Prelude.HashMap Prelude.Text CreateExperimentTemplateActionInput)+createExperimentTemplate_actions = Lens.lens (\CreateExperimentTemplate' {actions} -> actions) (\s@CreateExperimentTemplate' {} a -> s {actions = a} :: CreateExperimentTemplate) Prelude.. Lens.coerced++-- | The Amazon Resource Name (ARN) of an IAM role that grants the FIS+-- service permission to perform service actions on your behalf.+createExperimentTemplate_roleArn :: Lens.Lens' CreateExperimentTemplate Prelude.Text+createExperimentTemplate_roleArn = Lens.lens (\CreateExperimentTemplate' {roleArn} -> roleArn) (\s@CreateExperimentTemplate' {} a -> s {roleArn = a} :: CreateExperimentTemplate)++instance Core.AWSRequest CreateExperimentTemplate where+ type+ AWSResponse CreateExperimentTemplate =+ CreateExperimentTemplateResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateExperimentTemplateResponse'+ Prelude.<$> (x Data..?> "experimentTemplate")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateExperimentTemplate where+ hashWithSalt _salt CreateExperimentTemplate' {..} =+ _salt+ `Prelude.hashWithSalt` logConfiguration+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` targets+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` stopConditions+ `Prelude.hashWithSalt` actions+ `Prelude.hashWithSalt` roleArn++instance Prelude.NFData CreateExperimentTemplate where+ rnf CreateExperimentTemplate' {..} =+ Prelude.rnf logConfiguration+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf targets+ `Prelude.seq` Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf stopConditions+ `Prelude.seq` Prelude.rnf actions+ `Prelude.seq` Prelude.rnf roleArn++instance Data.ToHeaders CreateExperimentTemplate where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateExperimentTemplate where+ toJSON CreateExperimentTemplate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("logConfiguration" Data..=)+ Prelude.<$> logConfiguration,+ ("tags" Data..=) Prelude.<$> tags,+ ("targets" Data..=) Prelude.<$> targets,+ Prelude.Just ("clientToken" Data..= clientToken),+ Prelude.Just ("description" Data..= description),+ Prelude.Just+ ("stopConditions" Data..= stopConditions),+ Prelude.Just ("actions" Data..= actions),+ Prelude.Just ("roleArn" Data..= roleArn)+ ]+ )++instance Data.ToPath CreateExperimentTemplate where+ toPath = Prelude.const "/experimentTemplates"++instance Data.ToQuery CreateExperimentTemplate where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateExperimentTemplateResponse' smart constructor.+data CreateExperimentTemplateResponse = CreateExperimentTemplateResponse'+ { -- | Information about the experiment template.+ experimentTemplate :: Prelude.Maybe ExperimentTemplate,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateExperimentTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'experimentTemplate', 'createExperimentTemplateResponse_experimentTemplate' - Information about the experiment template.+--+-- 'httpStatus', 'createExperimentTemplateResponse_httpStatus' - The response's http status code.+newCreateExperimentTemplateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateExperimentTemplateResponse+newCreateExperimentTemplateResponse pHttpStatus_ =+ CreateExperimentTemplateResponse'+ { experimentTemplate =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the experiment template.+createExperimentTemplateResponse_experimentTemplate :: Lens.Lens' CreateExperimentTemplateResponse (Prelude.Maybe ExperimentTemplate)+createExperimentTemplateResponse_experimentTemplate = Lens.lens (\CreateExperimentTemplateResponse' {experimentTemplate} -> experimentTemplate) (\s@CreateExperimentTemplateResponse' {} a -> s {experimentTemplate = a} :: CreateExperimentTemplateResponse)++-- | The response's http status code.+createExperimentTemplateResponse_httpStatus :: Lens.Lens' CreateExperimentTemplateResponse Prelude.Int+createExperimentTemplateResponse_httpStatus = Lens.lens (\CreateExperimentTemplateResponse' {httpStatus} -> httpStatus) (\s@CreateExperimentTemplateResponse' {} a -> s {httpStatus = a} :: CreateExperimentTemplateResponse)++instance+ Prelude.NFData+ CreateExperimentTemplateResponse+ where+ rnf CreateExperimentTemplateResponse' {..} =+ Prelude.rnf experimentTemplate+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FIS/DeleteExperimentTemplate.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.DeleteExperimentTemplate+-- 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 the specified experiment template.+module Amazonka.FIS.DeleteExperimentTemplate+ ( -- * Creating a Request+ DeleteExperimentTemplate (..),+ newDeleteExperimentTemplate,++ -- * Request Lenses+ deleteExperimentTemplate_id,++ -- * Destructuring the Response+ DeleteExperimentTemplateResponse (..),+ newDeleteExperimentTemplateResponse,++ -- * Response Lenses+ deleteExperimentTemplateResponse_experimentTemplate,+ deleteExperimentTemplateResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteExperimentTemplate' smart constructor.+data DeleteExperimentTemplate = DeleteExperimentTemplate'+ { -- | The ID of the experiment template.+ id :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteExperimentTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deleteExperimentTemplate_id' - The ID of the experiment template.+newDeleteExperimentTemplate ::+ -- | 'id'+ Prelude.Text ->+ DeleteExperimentTemplate+newDeleteExperimentTemplate pId_ =+ DeleteExperimentTemplate' {id = pId_}++-- | The ID of the experiment template.+deleteExperimentTemplate_id :: Lens.Lens' DeleteExperimentTemplate Prelude.Text+deleteExperimentTemplate_id = Lens.lens (\DeleteExperimentTemplate' {id} -> id) (\s@DeleteExperimentTemplate' {} a -> s {id = a} :: DeleteExperimentTemplate)++instance Core.AWSRequest DeleteExperimentTemplate where+ type+ AWSResponse DeleteExperimentTemplate =+ DeleteExperimentTemplateResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteExperimentTemplateResponse'+ Prelude.<$> (x Data..?> "experimentTemplate")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteExperimentTemplate where+ hashWithSalt _salt DeleteExperimentTemplate' {..} =+ _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteExperimentTemplate where+ rnf DeleteExperimentTemplate' {..} = Prelude.rnf id++instance Data.ToHeaders DeleteExperimentTemplate where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteExperimentTemplate where+ toPath DeleteExperimentTemplate' {..} =+ Prelude.mconcat+ ["/experimentTemplates/", Data.toBS id]++instance Data.ToQuery DeleteExperimentTemplate where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteExperimentTemplateResponse' smart constructor.+data DeleteExperimentTemplateResponse = DeleteExperimentTemplateResponse'+ { -- | Information about the experiment template.+ experimentTemplate :: Prelude.Maybe ExperimentTemplate,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteExperimentTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'experimentTemplate', 'deleteExperimentTemplateResponse_experimentTemplate' - Information about the experiment template.+--+-- 'httpStatus', 'deleteExperimentTemplateResponse_httpStatus' - The response's http status code.+newDeleteExperimentTemplateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteExperimentTemplateResponse+newDeleteExperimentTemplateResponse pHttpStatus_ =+ DeleteExperimentTemplateResponse'+ { experimentTemplate =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the experiment template.+deleteExperimentTemplateResponse_experimentTemplate :: Lens.Lens' DeleteExperimentTemplateResponse (Prelude.Maybe ExperimentTemplate)+deleteExperimentTemplateResponse_experimentTemplate = Lens.lens (\DeleteExperimentTemplateResponse' {experimentTemplate} -> experimentTemplate) (\s@DeleteExperimentTemplateResponse' {} a -> s {experimentTemplate = a} :: DeleteExperimentTemplateResponse)++-- | The response's http status code.+deleteExperimentTemplateResponse_httpStatus :: Lens.Lens' DeleteExperimentTemplateResponse Prelude.Int+deleteExperimentTemplateResponse_httpStatus = Lens.lens (\DeleteExperimentTemplateResponse' {httpStatus} -> httpStatus) (\s@DeleteExperimentTemplateResponse' {} a -> s {httpStatus = a} :: DeleteExperimentTemplateResponse)++instance+ Prelude.NFData+ DeleteExperimentTemplateResponse+ where+ rnf DeleteExperimentTemplateResponse' {..} =+ Prelude.rnf experimentTemplate+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FIS/GetAction.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.FIS.GetAction+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about the specified FIS action.+module Amazonka.FIS.GetAction+ ( -- * Creating a Request+ GetAction (..),+ newGetAction,++ -- * Request Lenses+ getAction_id,++ -- * Destructuring the Response+ GetActionResponse (..),+ newGetActionResponse,++ -- * Response Lenses+ getActionResponse_action,+ getActionResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAction' smart constructor.+data GetAction = GetAction'+ { -- | The ID of the action.+ id :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'getAction_id' - The ID of the action.+newGetAction ::+ -- | 'id'+ Prelude.Text ->+ GetAction+newGetAction pId_ = GetAction' {id = pId_}++-- | The ID of the action.+getAction_id :: Lens.Lens' GetAction Prelude.Text+getAction_id = Lens.lens (\GetAction' {id} -> id) (\s@GetAction' {} a -> s {id = a} :: GetAction)++instance Core.AWSRequest GetAction where+ type AWSResponse GetAction = GetActionResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetActionResponse'+ Prelude.<$> (x Data..?> "action")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetAction where+ hashWithSalt _salt GetAction' {..} =+ _salt `Prelude.hashWithSalt` id++instance Prelude.NFData GetAction where+ rnf GetAction' {..} = Prelude.rnf id++instance Data.ToHeaders GetAction where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetAction where+ toPath GetAction' {..} =+ Prelude.mconcat ["/actions/", Data.toBS id]++instance Data.ToQuery GetAction where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetActionResponse' smart constructor.+data GetActionResponse = GetActionResponse'+ { -- | Information about the action.+ action :: Prelude.Maybe Action,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetActionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'action', 'getActionResponse_action' - Information about the action.+--+-- 'httpStatus', 'getActionResponse_httpStatus' - The response's http status code.+newGetActionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetActionResponse+newGetActionResponse pHttpStatus_ =+ GetActionResponse'+ { action = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the action.+getActionResponse_action :: Lens.Lens' GetActionResponse (Prelude.Maybe Action)+getActionResponse_action = Lens.lens (\GetActionResponse' {action} -> action) (\s@GetActionResponse' {} a -> s {action = a} :: GetActionResponse)++-- | The response's http status code.+getActionResponse_httpStatus :: Lens.Lens' GetActionResponse Prelude.Int+getActionResponse_httpStatus = Lens.lens (\GetActionResponse' {httpStatus} -> httpStatus) (\s@GetActionResponse' {} a -> s {httpStatus = a} :: GetActionResponse)++instance Prelude.NFData GetActionResponse where+ rnf GetActionResponse' {..} =+ Prelude.rnf action+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FIS/GetExperiment.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.GetExperiment+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about the specified experiment.+module Amazonka.FIS.GetExperiment+ ( -- * Creating a Request+ GetExperiment (..),+ newGetExperiment,++ -- * Request Lenses+ getExperiment_id,++ -- * Destructuring the Response+ GetExperimentResponse (..),+ newGetExperimentResponse,++ -- * Response Lenses+ getExperimentResponse_experiment,+ getExperimentResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetExperiment' smart constructor.+data GetExperiment = GetExperiment'+ { -- | The ID of the experiment.+ id :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetExperiment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'getExperiment_id' - The ID of the experiment.+newGetExperiment ::+ -- | 'id'+ Prelude.Text ->+ GetExperiment+newGetExperiment pId_ = GetExperiment' {id = pId_}++-- | The ID of the experiment.+getExperiment_id :: Lens.Lens' GetExperiment Prelude.Text+getExperiment_id = Lens.lens (\GetExperiment' {id} -> id) (\s@GetExperiment' {} a -> s {id = a} :: GetExperiment)++instance Core.AWSRequest GetExperiment where+ type+ AWSResponse GetExperiment =+ GetExperimentResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetExperimentResponse'+ Prelude.<$> (x Data..?> "experiment")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetExperiment where+ hashWithSalt _salt GetExperiment' {..} =+ _salt `Prelude.hashWithSalt` id++instance Prelude.NFData GetExperiment where+ rnf GetExperiment' {..} = Prelude.rnf id++instance Data.ToHeaders GetExperiment where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetExperiment where+ toPath GetExperiment' {..} =+ Prelude.mconcat ["/experiments/", Data.toBS id]++instance Data.ToQuery GetExperiment where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetExperimentResponse' smart constructor.+data GetExperimentResponse = GetExperimentResponse'+ { -- | Information about the experiment.+ experiment :: Prelude.Maybe Experiment,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetExperimentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'experiment', 'getExperimentResponse_experiment' - Information about the experiment.+--+-- 'httpStatus', 'getExperimentResponse_httpStatus' - The response's http status code.+newGetExperimentResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetExperimentResponse+newGetExperimentResponse pHttpStatus_ =+ GetExperimentResponse'+ { experiment =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the experiment.+getExperimentResponse_experiment :: Lens.Lens' GetExperimentResponse (Prelude.Maybe Experiment)+getExperimentResponse_experiment = Lens.lens (\GetExperimentResponse' {experiment} -> experiment) (\s@GetExperimentResponse' {} a -> s {experiment = a} :: GetExperimentResponse)++-- | The response's http status code.+getExperimentResponse_httpStatus :: Lens.Lens' GetExperimentResponse Prelude.Int+getExperimentResponse_httpStatus = Lens.lens (\GetExperimentResponse' {httpStatus} -> httpStatus) (\s@GetExperimentResponse' {} a -> s {httpStatus = a} :: GetExperimentResponse)++instance Prelude.NFData GetExperimentResponse where+ rnf GetExperimentResponse' {..} =+ Prelude.rnf experiment+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FIS/GetExperimentTemplate.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.FIS.GetExperimentTemplate+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about the specified experiment template.+module Amazonka.FIS.GetExperimentTemplate+ ( -- * Creating a Request+ GetExperimentTemplate (..),+ newGetExperimentTemplate,++ -- * Request Lenses+ getExperimentTemplate_id,++ -- * Destructuring the Response+ GetExperimentTemplateResponse (..),+ newGetExperimentTemplateResponse,++ -- * Response Lenses+ getExperimentTemplateResponse_experimentTemplate,+ getExperimentTemplateResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetExperimentTemplate' smart constructor.+data GetExperimentTemplate = GetExperimentTemplate'+ { -- | The ID of the experiment template.+ id :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetExperimentTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'getExperimentTemplate_id' - The ID of the experiment template.+newGetExperimentTemplate ::+ -- | 'id'+ Prelude.Text ->+ GetExperimentTemplate+newGetExperimentTemplate pId_ =+ GetExperimentTemplate' {id = pId_}++-- | The ID of the experiment template.+getExperimentTemplate_id :: Lens.Lens' GetExperimentTemplate Prelude.Text+getExperimentTemplate_id = Lens.lens (\GetExperimentTemplate' {id} -> id) (\s@GetExperimentTemplate' {} a -> s {id = a} :: GetExperimentTemplate)++instance Core.AWSRequest GetExperimentTemplate where+ type+ AWSResponse GetExperimentTemplate =+ GetExperimentTemplateResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetExperimentTemplateResponse'+ Prelude.<$> (x Data..?> "experimentTemplate")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetExperimentTemplate where+ hashWithSalt _salt GetExperimentTemplate' {..} =+ _salt `Prelude.hashWithSalt` id++instance Prelude.NFData GetExperimentTemplate where+ rnf GetExperimentTemplate' {..} = Prelude.rnf id++instance Data.ToHeaders GetExperimentTemplate where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetExperimentTemplate where+ toPath GetExperimentTemplate' {..} =+ Prelude.mconcat+ ["/experimentTemplates/", Data.toBS id]++instance Data.ToQuery GetExperimentTemplate where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetExperimentTemplateResponse' smart constructor.+data GetExperimentTemplateResponse = GetExperimentTemplateResponse'+ { -- | Information about the experiment template.+ experimentTemplate :: Prelude.Maybe ExperimentTemplate,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetExperimentTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'experimentTemplate', 'getExperimentTemplateResponse_experimentTemplate' - Information about the experiment template.+--+-- 'httpStatus', 'getExperimentTemplateResponse_httpStatus' - The response's http status code.+newGetExperimentTemplateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetExperimentTemplateResponse+newGetExperimentTemplateResponse pHttpStatus_ =+ GetExperimentTemplateResponse'+ { experimentTemplate =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the experiment template.+getExperimentTemplateResponse_experimentTemplate :: Lens.Lens' GetExperimentTemplateResponse (Prelude.Maybe ExperimentTemplate)+getExperimentTemplateResponse_experimentTemplate = Lens.lens (\GetExperimentTemplateResponse' {experimentTemplate} -> experimentTemplate) (\s@GetExperimentTemplateResponse' {} a -> s {experimentTemplate = a} :: GetExperimentTemplateResponse)++-- | The response's http status code.+getExperimentTemplateResponse_httpStatus :: Lens.Lens' GetExperimentTemplateResponse Prelude.Int+getExperimentTemplateResponse_httpStatus = Lens.lens (\GetExperimentTemplateResponse' {httpStatus} -> httpStatus) (\s@GetExperimentTemplateResponse' {} a -> s {httpStatus = a} :: GetExperimentTemplateResponse)++instance Prelude.NFData GetExperimentTemplateResponse where+ rnf GetExperimentTemplateResponse' {..} =+ Prelude.rnf experimentTemplate+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FIS/GetTargetResourceType.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.FIS.GetTargetResourceType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about the specified resource type.+module Amazonka.FIS.GetTargetResourceType+ ( -- * Creating a Request+ GetTargetResourceType (..),+ newGetTargetResourceType,++ -- * Request Lenses+ getTargetResourceType_resourceType,++ -- * Destructuring the Response+ GetTargetResourceTypeResponse (..),+ newGetTargetResourceTypeResponse,++ -- * Response Lenses+ getTargetResourceTypeResponse_targetResourceType,+ getTargetResourceTypeResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetTargetResourceType' smart constructor.+data GetTargetResourceType = GetTargetResourceType'+ { -- | The resource type.+ resourceType :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetTargetResourceType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceType', 'getTargetResourceType_resourceType' - The resource type.+newGetTargetResourceType ::+ -- | 'resourceType'+ Prelude.Text ->+ GetTargetResourceType+newGetTargetResourceType pResourceType_ =+ GetTargetResourceType'+ { resourceType =+ pResourceType_+ }++-- | The resource type.+getTargetResourceType_resourceType :: Lens.Lens' GetTargetResourceType Prelude.Text+getTargetResourceType_resourceType = Lens.lens (\GetTargetResourceType' {resourceType} -> resourceType) (\s@GetTargetResourceType' {} a -> s {resourceType = a} :: GetTargetResourceType)++instance Core.AWSRequest GetTargetResourceType where+ type+ AWSResponse GetTargetResourceType =+ GetTargetResourceTypeResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetTargetResourceTypeResponse'+ Prelude.<$> (x Data..?> "targetResourceType")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetTargetResourceType where+ hashWithSalt _salt GetTargetResourceType' {..} =+ _salt `Prelude.hashWithSalt` resourceType++instance Prelude.NFData GetTargetResourceType where+ rnf GetTargetResourceType' {..} =+ Prelude.rnf resourceType++instance Data.ToHeaders GetTargetResourceType where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetTargetResourceType where+ toPath GetTargetResourceType' {..} =+ Prelude.mconcat+ ["/targetResourceTypes/", Data.toBS resourceType]++instance Data.ToQuery GetTargetResourceType where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetTargetResourceTypeResponse' smart constructor.+data GetTargetResourceTypeResponse = GetTargetResourceTypeResponse'+ { -- | Information about the resource type.+ targetResourceType :: Prelude.Maybe TargetResourceType,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetTargetResourceTypeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'targetResourceType', 'getTargetResourceTypeResponse_targetResourceType' - Information about the resource type.+--+-- 'httpStatus', 'getTargetResourceTypeResponse_httpStatus' - The response's http status code.+newGetTargetResourceTypeResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetTargetResourceTypeResponse+newGetTargetResourceTypeResponse pHttpStatus_ =+ GetTargetResourceTypeResponse'+ { targetResourceType =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the resource type.+getTargetResourceTypeResponse_targetResourceType :: Lens.Lens' GetTargetResourceTypeResponse (Prelude.Maybe TargetResourceType)+getTargetResourceTypeResponse_targetResourceType = Lens.lens (\GetTargetResourceTypeResponse' {targetResourceType} -> targetResourceType) (\s@GetTargetResourceTypeResponse' {} a -> s {targetResourceType = a} :: GetTargetResourceTypeResponse)++-- | The response's http status code.+getTargetResourceTypeResponse_httpStatus :: Lens.Lens' GetTargetResourceTypeResponse Prelude.Int+getTargetResourceTypeResponse_httpStatus = Lens.lens (\GetTargetResourceTypeResponse' {httpStatus} -> httpStatus) (\s@GetTargetResourceTypeResponse' {} a -> s {httpStatus = a} :: GetTargetResourceTypeResponse)++instance Prelude.NFData GetTargetResourceTypeResponse where+ rnf GetTargetResourceTypeResponse' {..} =+ Prelude.rnf targetResourceType+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FIS/Lens.hs view
@@ -0,0 +1,390 @@+{-# 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.FIS.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.FIS.Lens+ ( -- * Operations++ -- ** CreateExperimentTemplate+ createExperimentTemplate_logConfiguration,+ createExperimentTemplate_tags,+ createExperimentTemplate_targets,+ createExperimentTemplate_clientToken,+ createExperimentTemplate_description,+ createExperimentTemplate_stopConditions,+ createExperimentTemplate_actions,+ createExperimentTemplate_roleArn,+ createExperimentTemplateResponse_experimentTemplate,+ createExperimentTemplateResponse_httpStatus,++ -- ** DeleteExperimentTemplate+ deleteExperimentTemplate_id,+ deleteExperimentTemplateResponse_experimentTemplate,+ deleteExperimentTemplateResponse_httpStatus,++ -- ** GetAction+ getAction_id,+ getActionResponse_action,+ getActionResponse_httpStatus,++ -- ** GetExperiment+ getExperiment_id,+ getExperimentResponse_experiment,+ getExperimentResponse_httpStatus,++ -- ** GetExperimentTemplate+ getExperimentTemplate_id,+ getExperimentTemplateResponse_experimentTemplate,+ getExperimentTemplateResponse_httpStatus,++ -- ** GetTargetResourceType+ getTargetResourceType_resourceType,+ getTargetResourceTypeResponse_targetResourceType,+ getTargetResourceTypeResponse_httpStatus,++ -- ** ListActions+ listActions_maxResults,+ listActions_nextToken,+ listActionsResponse_actions,+ listActionsResponse_nextToken,+ listActionsResponse_httpStatus,++ -- ** ListExperimentTemplates+ listExperimentTemplates_maxResults,+ listExperimentTemplates_nextToken,+ listExperimentTemplatesResponse_experimentTemplates,+ listExperimentTemplatesResponse_nextToken,+ listExperimentTemplatesResponse_httpStatus,++ -- ** ListExperiments+ listExperiments_maxResults,+ listExperiments_nextToken,+ listExperimentsResponse_experiments,+ listExperimentsResponse_nextToken,+ listExperimentsResponse_httpStatus,++ -- ** ListTagsForResource+ listTagsForResource_resourceArn,+ listTagsForResourceResponse_tags,+ listTagsForResourceResponse_httpStatus,++ -- ** ListTargetResourceTypes+ listTargetResourceTypes_maxResults,+ listTargetResourceTypes_nextToken,+ listTargetResourceTypesResponse_nextToken,+ listTargetResourceTypesResponse_targetResourceTypes,+ listTargetResourceTypesResponse_httpStatus,++ -- ** StartExperiment+ startExperiment_tags,+ startExperiment_clientToken,+ startExperiment_experimentTemplateId,+ startExperimentResponse_experiment,+ startExperimentResponse_httpStatus,++ -- ** StopExperiment+ stopExperiment_id,+ stopExperimentResponse_experiment,+ stopExperimentResponse_httpStatus,++ -- ** TagResource+ tagResource_resourceArn,+ tagResource_tags,+ tagResourceResponse_httpStatus,++ -- ** UntagResource+ untagResource_tagKeys,+ untagResource_resourceArn,+ untagResourceResponse_httpStatus,++ -- ** UpdateExperimentTemplate+ updateExperimentTemplate_actions,+ updateExperimentTemplate_description,+ updateExperimentTemplate_logConfiguration,+ updateExperimentTemplate_roleArn,+ updateExperimentTemplate_stopConditions,+ updateExperimentTemplate_targets,+ updateExperimentTemplate_id,+ updateExperimentTemplateResponse_experimentTemplate,+ updateExperimentTemplateResponse_httpStatus,++ -- * Types++ -- ** Action+ action_description,+ action_id,+ action_parameters,+ action_tags,+ action_targets,++ -- ** ActionParameter+ actionParameter_description,+ actionParameter_required,++ -- ** ActionSummary+ actionSummary_description,+ actionSummary_id,+ actionSummary_tags,+ actionSummary_targets,++ -- ** ActionTarget+ actionTarget_resourceType,++ -- ** CreateExperimentTemplateActionInput+ createExperimentTemplateActionInput_description,+ createExperimentTemplateActionInput_parameters,+ createExperimentTemplateActionInput_startAfter,+ createExperimentTemplateActionInput_targets,+ createExperimentTemplateActionInput_actionId,++ -- ** CreateExperimentTemplateLogConfigurationInput+ createExperimentTemplateLogConfigurationInput_cloudWatchLogsConfiguration,+ createExperimentTemplateLogConfigurationInput_s3Configuration,+ createExperimentTemplateLogConfigurationInput_logSchemaVersion,++ -- ** CreateExperimentTemplateStopConditionInput+ createExperimentTemplateStopConditionInput_value,+ createExperimentTemplateStopConditionInput_source,++ -- ** CreateExperimentTemplateTargetInput+ createExperimentTemplateTargetInput_filters,+ createExperimentTemplateTargetInput_parameters,+ createExperimentTemplateTargetInput_resourceArns,+ createExperimentTemplateTargetInput_resourceTags,+ createExperimentTemplateTargetInput_resourceType,+ createExperimentTemplateTargetInput_selectionMode,++ -- ** Experiment+ experiment_actions,+ experiment_creationTime,+ experiment_endTime,+ experiment_experimentTemplateId,+ experiment_id,+ experiment_logConfiguration,+ experiment_roleArn,+ experiment_startTime,+ experiment_state,+ experiment_stopConditions,+ experiment_tags,+ experiment_targets,++ -- ** ExperimentAction+ experimentAction_actionId,+ experimentAction_description,+ experimentAction_endTime,+ experimentAction_parameters,+ experimentAction_startAfter,+ experimentAction_startTime,+ experimentAction_state,+ experimentAction_targets,++ -- ** ExperimentActionState+ experimentActionState_reason,+ experimentActionState_status,++ -- ** ExperimentCloudWatchLogsLogConfiguration+ experimentCloudWatchLogsLogConfiguration_logGroupArn,++ -- ** ExperimentLogConfiguration+ experimentLogConfiguration_cloudWatchLogsConfiguration,+ experimentLogConfiguration_logSchemaVersion,+ experimentLogConfiguration_s3Configuration,++ -- ** ExperimentS3LogConfiguration+ experimentS3LogConfiguration_bucketName,+ experimentS3LogConfiguration_prefix,++ -- ** ExperimentState+ experimentState_reason,+ experimentState_status,++ -- ** ExperimentStopCondition+ experimentStopCondition_source,+ experimentStopCondition_value,++ -- ** ExperimentSummary+ experimentSummary_creationTime,+ experimentSummary_experimentTemplateId,+ experimentSummary_id,+ experimentSummary_state,+ experimentSummary_tags,++ -- ** ExperimentTarget+ experimentTarget_filters,+ experimentTarget_parameters,+ experimentTarget_resourceArns,+ experimentTarget_resourceTags,+ experimentTarget_resourceType,+ experimentTarget_selectionMode,++ -- ** ExperimentTargetFilter+ experimentTargetFilter_path,+ experimentTargetFilter_values,++ -- ** ExperimentTemplate+ experimentTemplate_actions,+ experimentTemplate_creationTime,+ experimentTemplate_description,+ experimentTemplate_id,+ experimentTemplate_lastUpdateTime,+ experimentTemplate_logConfiguration,+ experimentTemplate_roleArn,+ experimentTemplate_stopConditions,+ experimentTemplate_tags,+ experimentTemplate_targets,++ -- ** ExperimentTemplateAction+ experimentTemplateAction_actionId,+ experimentTemplateAction_description,+ experimentTemplateAction_parameters,+ experimentTemplateAction_startAfter,+ experimentTemplateAction_targets,++ -- ** ExperimentTemplateCloudWatchLogsLogConfiguration+ experimentTemplateCloudWatchLogsLogConfiguration_logGroupArn,++ -- ** ExperimentTemplateCloudWatchLogsLogConfigurationInput+ experimentTemplateCloudWatchLogsLogConfigurationInput_logGroupArn,++ -- ** ExperimentTemplateLogConfiguration+ experimentTemplateLogConfiguration_cloudWatchLogsConfiguration,+ experimentTemplateLogConfiguration_logSchemaVersion,+ experimentTemplateLogConfiguration_s3Configuration,++ -- ** ExperimentTemplateS3LogConfiguration+ experimentTemplateS3LogConfiguration_bucketName,+ experimentTemplateS3LogConfiguration_prefix,++ -- ** ExperimentTemplateS3LogConfigurationInput+ experimentTemplateS3LogConfigurationInput_prefix,+ experimentTemplateS3LogConfigurationInput_bucketName,++ -- ** ExperimentTemplateStopCondition+ experimentTemplateStopCondition_source,+ experimentTemplateStopCondition_value,++ -- ** ExperimentTemplateSummary+ experimentTemplateSummary_creationTime,+ experimentTemplateSummary_description,+ experimentTemplateSummary_id,+ experimentTemplateSummary_lastUpdateTime,+ experimentTemplateSummary_tags,++ -- ** ExperimentTemplateTarget+ experimentTemplateTarget_filters,+ experimentTemplateTarget_parameters,+ experimentTemplateTarget_resourceArns,+ experimentTemplateTarget_resourceTags,+ experimentTemplateTarget_resourceType,+ experimentTemplateTarget_selectionMode,++ -- ** ExperimentTemplateTargetFilter+ experimentTemplateTargetFilter_path,+ experimentTemplateTargetFilter_values,++ -- ** ExperimentTemplateTargetInputFilter+ experimentTemplateTargetInputFilter_path,+ experimentTemplateTargetInputFilter_values,++ -- ** TargetResourceType+ targetResourceType_description,+ targetResourceType_parameters,+ targetResourceType_resourceType,++ -- ** TargetResourceTypeParameter+ targetResourceTypeParameter_description,+ targetResourceTypeParameter_required,++ -- ** TargetResourceTypeSummary+ targetResourceTypeSummary_description,+ targetResourceTypeSummary_resourceType,++ -- ** UpdateExperimentTemplateActionInputItem+ updateExperimentTemplateActionInputItem_actionId,+ updateExperimentTemplateActionInputItem_description,+ updateExperimentTemplateActionInputItem_parameters,+ updateExperimentTemplateActionInputItem_startAfter,+ updateExperimentTemplateActionInputItem_targets,++ -- ** UpdateExperimentTemplateLogConfigurationInput+ updateExperimentTemplateLogConfigurationInput_cloudWatchLogsConfiguration,+ updateExperimentTemplateLogConfigurationInput_logSchemaVersion,+ updateExperimentTemplateLogConfigurationInput_s3Configuration,++ -- ** UpdateExperimentTemplateStopConditionInput+ updateExperimentTemplateStopConditionInput_value,+ updateExperimentTemplateStopConditionInput_source,++ -- ** UpdateExperimentTemplateTargetInput+ updateExperimentTemplateTargetInput_filters,+ updateExperimentTemplateTargetInput_parameters,+ updateExperimentTemplateTargetInput_resourceArns,+ updateExperimentTemplateTargetInput_resourceTags,+ updateExperimentTemplateTargetInput_resourceType,+ updateExperimentTemplateTargetInput_selectionMode,+ )+where++import Amazonka.FIS.CreateExperimentTemplate+import Amazonka.FIS.DeleteExperimentTemplate+import Amazonka.FIS.GetAction+import Amazonka.FIS.GetExperiment+import Amazonka.FIS.GetExperimentTemplate+import Amazonka.FIS.GetTargetResourceType+import Amazonka.FIS.ListActions+import Amazonka.FIS.ListExperimentTemplates+import Amazonka.FIS.ListExperiments+import Amazonka.FIS.ListTagsForResource+import Amazonka.FIS.ListTargetResourceTypes+import Amazonka.FIS.StartExperiment+import Amazonka.FIS.StopExperiment+import Amazonka.FIS.TagResource+import Amazonka.FIS.Types.Action+import Amazonka.FIS.Types.ActionParameter+import Amazonka.FIS.Types.ActionSummary+import Amazonka.FIS.Types.ActionTarget+import Amazonka.FIS.Types.CreateExperimentTemplateActionInput+import Amazonka.FIS.Types.CreateExperimentTemplateLogConfigurationInput+import Amazonka.FIS.Types.CreateExperimentTemplateStopConditionInput+import Amazonka.FIS.Types.CreateExperimentTemplateTargetInput+import Amazonka.FIS.Types.Experiment+import Amazonka.FIS.Types.ExperimentAction+import Amazonka.FIS.Types.ExperimentActionState+import Amazonka.FIS.Types.ExperimentCloudWatchLogsLogConfiguration+import Amazonka.FIS.Types.ExperimentLogConfiguration+import Amazonka.FIS.Types.ExperimentS3LogConfiguration+import Amazonka.FIS.Types.ExperimentState+import Amazonka.FIS.Types.ExperimentStopCondition+import Amazonka.FIS.Types.ExperimentSummary+import Amazonka.FIS.Types.ExperimentTarget+import Amazonka.FIS.Types.ExperimentTargetFilter+import Amazonka.FIS.Types.ExperimentTemplate+import Amazonka.FIS.Types.ExperimentTemplateAction+import Amazonka.FIS.Types.ExperimentTemplateCloudWatchLogsLogConfiguration+import Amazonka.FIS.Types.ExperimentTemplateCloudWatchLogsLogConfigurationInput+import Amazonka.FIS.Types.ExperimentTemplateLogConfiguration+import Amazonka.FIS.Types.ExperimentTemplateS3LogConfiguration+import Amazonka.FIS.Types.ExperimentTemplateS3LogConfigurationInput+import Amazonka.FIS.Types.ExperimentTemplateStopCondition+import Amazonka.FIS.Types.ExperimentTemplateSummary+import Amazonka.FIS.Types.ExperimentTemplateTarget+import Amazonka.FIS.Types.ExperimentTemplateTargetFilter+import Amazonka.FIS.Types.ExperimentTemplateTargetInputFilter+import Amazonka.FIS.Types.TargetResourceType+import Amazonka.FIS.Types.TargetResourceTypeParameter+import Amazonka.FIS.Types.TargetResourceTypeSummary+import Amazonka.FIS.Types.UpdateExperimentTemplateActionInputItem+import Amazonka.FIS.Types.UpdateExperimentTemplateLogConfigurationInput+import Amazonka.FIS.Types.UpdateExperimentTemplateStopConditionInput+import Amazonka.FIS.Types.UpdateExperimentTemplateTargetInput+import Amazonka.FIS.UntagResource+import Amazonka.FIS.UpdateExperimentTemplate
+ gen/Amazonka/FIS/ListActions.hs view
@@ -0,0 +1,193 @@+{-# 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.FIS.ListActions+-- 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 available FIS actions.+module Amazonka.FIS.ListActions+ ( -- * Creating a Request+ ListActions (..),+ newListActions,++ -- * Request Lenses+ listActions_maxResults,+ listActions_nextToken,++ -- * Destructuring the Response+ ListActionsResponse (..),+ newListActionsResponse,++ -- * Response Lenses+ listActionsResponse_actions,+ listActionsResponse_nextToken,+ listActionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListActions' smart constructor.+data ListActions = ListActions'+ { -- | The maximum number of results to return with a single call. To retrieve+ -- the remaining results, make another call with the returned @nextToken@+ -- value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next page of results.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListActions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listActions_maxResults' - The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+--+-- 'nextToken', 'listActions_nextToken' - The token for the next page of results.+newListActions ::+ ListActions+newListActions =+ ListActions'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+listActions_maxResults :: Lens.Lens' ListActions (Prelude.Maybe Prelude.Natural)+listActions_maxResults = Lens.lens (\ListActions' {maxResults} -> maxResults) (\s@ListActions' {} a -> s {maxResults = a} :: ListActions)++-- | The token for the next page of results.+listActions_nextToken :: Lens.Lens' ListActions (Prelude.Maybe Prelude.Text)+listActions_nextToken = Lens.lens (\ListActions' {nextToken} -> nextToken) (\s@ListActions' {} a -> s {nextToken = a} :: ListActions)++instance Core.AWSRequest ListActions where+ type AWSResponse ListActions = ListActionsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListActionsResponse'+ Prelude.<$> (x Data..?> "actions" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListActions where+ hashWithSalt _salt ListActions' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListActions where+ rnf ListActions' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListActions where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListActions where+ toPath = Prelude.const "/actions"++instance Data.ToQuery ListActions where+ toQuery ListActions' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListActionsResponse' smart constructor.+data ListActionsResponse = ListActionsResponse'+ { -- | The actions.+ actions :: Prelude.Maybe [ActionSummary],+ -- | The token to use to retrieve the next page of results. This value is+ -- @null@ when there are no more results to return.+ 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 'ListActionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actions', 'listActionsResponse_actions' - The actions.+--+-- 'nextToken', 'listActionsResponse_nextToken' - The token to use to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+--+-- 'httpStatus', 'listActionsResponse_httpStatus' - The response's http status code.+newListActionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListActionsResponse+newListActionsResponse pHttpStatus_ =+ ListActionsResponse'+ { actions = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The actions.+listActionsResponse_actions :: Lens.Lens' ListActionsResponse (Prelude.Maybe [ActionSummary])+listActionsResponse_actions = Lens.lens (\ListActionsResponse' {actions} -> actions) (\s@ListActionsResponse' {} a -> s {actions = a} :: ListActionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token to use to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+listActionsResponse_nextToken :: Lens.Lens' ListActionsResponse (Prelude.Maybe Prelude.Text)+listActionsResponse_nextToken = Lens.lens (\ListActionsResponse' {nextToken} -> nextToken) (\s@ListActionsResponse' {} a -> s {nextToken = a} :: ListActionsResponse)++-- | The response's http status code.+listActionsResponse_httpStatus :: Lens.Lens' ListActionsResponse Prelude.Int+listActionsResponse_httpStatus = Lens.lens (\ListActionsResponse' {httpStatus} -> httpStatus) (\s@ListActionsResponse' {} a -> s {httpStatus = a} :: ListActionsResponse)++instance Prelude.NFData ListActionsResponse where+ rnf ListActionsResponse' {..} =+ Prelude.rnf actions+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FIS/ListExperimentTemplates.hs view
@@ -0,0 +1,203 @@+{-# 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.FIS.ListExperimentTemplates+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists your experiment templates.+module Amazonka.FIS.ListExperimentTemplates+ ( -- * Creating a Request+ ListExperimentTemplates (..),+ newListExperimentTemplates,++ -- * Request Lenses+ listExperimentTemplates_maxResults,+ listExperimentTemplates_nextToken,++ -- * Destructuring the Response+ ListExperimentTemplatesResponse (..),+ newListExperimentTemplatesResponse,++ -- * Response Lenses+ listExperimentTemplatesResponse_experimentTemplates,+ listExperimentTemplatesResponse_nextToken,+ listExperimentTemplatesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListExperimentTemplates' smart constructor.+data ListExperimentTemplates = ListExperimentTemplates'+ { -- | The maximum number of results to return with a single call. To retrieve+ -- the remaining results, make another call with the returned @nextToken@+ -- value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next page of results.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListExperimentTemplates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listExperimentTemplates_maxResults' - The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+--+-- 'nextToken', 'listExperimentTemplates_nextToken' - The token for the next page of results.+newListExperimentTemplates ::+ ListExperimentTemplates+newListExperimentTemplates =+ ListExperimentTemplates'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+listExperimentTemplates_maxResults :: Lens.Lens' ListExperimentTemplates (Prelude.Maybe Prelude.Natural)+listExperimentTemplates_maxResults = Lens.lens (\ListExperimentTemplates' {maxResults} -> maxResults) (\s@ListExperimentTemplates' {} a -> s {maxResults = a} :: ListExperimentTemplates)++-- | The token for the next page of results.+listExperimentTemplates_nextToken :: Lens.Lens' ListExperimentTemplates (Prelude.Maybe Prelude.Text)+listExperimentTemplates_nextToken = Lens.lens (\ListExperimentTemplates' {nextToken} -> nextToken) (\s@ListExperimentTemplates' {} a -> s {nextToken = a} :: ListExperimentTemplates)++instance Core.AWSRequest ListExperimentTemplates where+ type+ AWSResponse ListExperimentTemplates =+ ListExperimentTemplatesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListExperimentTemplatesResponse'+ Prelude.<$> ( x+ Data..?> "experimentTemplates"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListExperimentTemplates where+ hashWithSalt _salt ListExperimentTemplates' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListExperimentTemplates where+ rnf ListExperimentTemplates' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListExperimentTemplates where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListExperimentTemplates where+ toPath = Prelude.const "/experimentTemplates"++instance Data.ToQuery ListExperimentTemplates where+ toQuery ListExperimentTemplates' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListExperimentTemplatesResponse' smart constructor.+data ListExperimentTemplatesResponse = ListExperimentTemplatesResponse'+ { -- | The experiment templates.+ experimentTemplates :: Prelude.Maybe [ExperimentTemplateSummary],+ -- | The token to use to retrieve the next page of results. This value is+ -- @null@ when there are no more results to return.+ 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 'ListExperimentTemplatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'experimentTemplates', 'listExperimentTemplatesResponse_experimentTemplates' - The experiment templates.+--+-- 'nextToken', 'listExperimentTemplatesResponse_nextToken' - The token to use to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+--+-- 'httpStatus', 'listExperimentTemplatesResponse_httpStatus' - The response's http status code.+newListExperimentTemplatesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListExperimentTemplatesResponse+newListExperimentTemplatesResponse pHttpStatus_ =+ ListExperimentTemplatesResponse'+ { experimentTemplates =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The experiment templates.+listExperimentTemplatesResponse_experimentTemplates :: Lens.Lens' ListExperimentTemplatesResponse (Prelude.Maybe [ExperimentTemplateSummary])+listExperimentTemplatesResponse_experimentTemplates = Lens.lens (\ListExperimentTemplatesResponse' {experimentTemplates} -> experimentTemplates) (\s@ListExperimentTemplatesResponse' {} a -> s {experimentTemplates = a} :: ListExperimentTemplatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token to use to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+listExperimentTemplatesResponse_nextToken :: Lens.Lens' ListExperimentTemplatesResponse (Prelude.Maybe Prelude.Text)+listExperimentTemplatesResponse_nextToken = Lens.lens (\ListExperimentTemplatesResponse' {nextToken} -> nextToken) (\s@ListExperimentTemplatesResponse' {} a -> s {nextToken = a} :: ListExperimentTemplatesResponse)++-- | The response's http status code.+listExperimentTemplatesResponse_httpStatus :: Lens.Lens' ListExperimentTemplatesResponse Prelude.Int+listExperimentTemplatesResponse_httpStatus = Lens.lens (\ListExperimentTemplatesResponse' {httpStatus} -> httpStatus) (\s@ListExperimentTemplatesResponse' {} a -> s {httpStatus = a} :: ListExperimentTemplatesResponse)++instance+ Prelude.NFData+ ListExperimentTemplatesResponse+ where+ rnf ListExperimentTemplatesResponse' {..} =+ Prelude.rnf experimentTemplates+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FIS/ListExperiments.hs view
@@ -0,0 +1,196 @@+{-# 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.FIS.ListExperiments+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists your experiments.+module Amazonka.FIS.ListExperiments+ ( -- * Creating a Request+ ListExperiments (..),+ newListExperiments,++ -- * Request Lenses+ listExperiments_maxResults,+ listExperiments_nextToken,++ -- * Destructuring the Response+ ListExperimentsResponse (..),+ newListExperimentsResponse,++ -- * Response Lenses+ listExperimentsResponse_experiments,+ listExperimentsResponse_nextToken,+ listExperimentsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListExperiments' smart constructor.+data ListExperiments = ListExperiments'+ { -- | The maximum number of results to return with a single call. To retrieve+ -- the remaining results, make another call with the returned @nextToken@+ -- value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next page of results.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListExperiments' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listExperiments_maxResults' - The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+--+-- 'nextToken', 'listExperiments_nextToken' - The token for the next page of results.+newListExperiments ::+ ListExperiments+newListExperiments =+ ListExperiments'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+listExperiments_maxResults :: Lens.Lens' ListExperiments (Prelude.Maybe Prelude.Natural)+listExperiments_maxResults = Lens.lens (\ListExperiments' {maxResults} -> maxResults) (\s@ListExperiments' {} a -> s {maxResults = a} :: ListExperiments)++-- | The token for the next page of results.+listExperiments_nextToken :: Lens.Lens' ListExperiments (Prelude.Maybe Prelude.Text)+listExperiments_nextToken = Lens.lens (\ListExperiments' {nextToken} -> nextToken) (\s@ListExperiments' {} a -> s {nextToken = a} :: ListExperiments)++instance Core.AWSRequest ListExperiments where+ type+ AWSResponse ListExperiments =+ ListExperimentsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListExperimentsResponse'+ Prelude.<$> (x Data..?> "experiments" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListExperiments where+ hashWithSalt _salt ListExperiments' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListExperiments where+ rnf ListExperiments' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListExperiments where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListExperiments where+ toPath = Prelude.const "/experiments"++instance Data.ToQuery ListExperiments where+ toQuery ListExperiments' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListExperimentsResponse' smart constructor.+data ListExperimentsResponse = ListExperimentsResponse'+ { -- | The experiments.+ experiments :: Prelude.Maybe [ExperimentSummary],+ -- | The token to use to retrieve the next page of results. This value is+ -- @null@ when there are no more results to return.+ 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 'ListExperimentsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'experiments', 'listExperimentsResponse_experiments' - The experiments.+--+-- 'nextToken', 'listExperimentsResponse_nextToken' - The token to use to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+--+-- 'httpStatus', 'listExperimentsResponse_httpStatus' - The response's http status code.+newListExperimentsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListExperimentsResponse+newListExperimentsResponse pHttpStatus_ =+ ListExperimentsResponse'+ { experiments =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The experiments.+listExperimentsResponse_experiments :: Lens.Lens' ListExperimentsResponse (Prelude.Maybe [ExperimentSummary])+listExperimentsResponse_experiments = Lens.lens (\ListExperimentsResponse' {experiments} -> experiments) (\s@ListExperimentsResponse' {} a -> s {experiments = a} :: ListExperimentsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token to use to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+listExperimentsResponse_nextToken :: Lens.Lens' ListExperimentsResponse (Prelude.Maybe Prelude.Text)+listExperimentsResponse_nextToken = Lens.lens (\ListExperimentsResponse' {nextToken} -> nextToken) (\s@ListExperimentsResponse' {} a -> s {nextToken = a} :: ListExperimentsResponse)++-- | The response's http status code.+listExperimentsResponse_httpStatus :: Lens.Lens' ListExperimentsResponse Prelude.Int+listExperimentsResponse_httpStatus = Lens.lens (\ListExperimentsResponse' {httpStatus} -> httpStatus) (\s@ListExperimentsResponse' {} a -> s {httpStatus = a} :: ListExperimentsResponse)++instance Prelude.NFData ListExperimentsResponse where+ rnf ListExperimentsResponse' {..} =+ Prelude.rnf experiments+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FIS/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.FIS.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 the specified resource.+module Amazonka.FIS.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 Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+ { -- | The Amazon Resource Name (ARN) of the resource.+ 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) of the resource.+newListTagsForResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ ListTagsForResource+newListTagsForResource pResourceArn_ =+ ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) of the resource.+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 for 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 for 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 for 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/FIS/ListTargetResourceTypes.hs view
@@ -0,0 +1,203 @@+{-# 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.FIS.ListTargetResourceTypes+-- 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 target resource types.+module Amazonka.FIS.ListTargetResourceTypes+ ( -- * Creating a Request+ ListTargetResourceTypes (..),+ newListTargetResourceTypes,++ -- * Request Lenses+ listTargetResourceTypes_maxResults,+ listTargetResourceTypes_nextToken,++ -- * Destructuring the Response+ ListTargetResourceTypesResponse (..),+ newListTargetResourceTypesResponse,++ -- * Response Lenses+ listTargetResourceTypesResponse_nextToken,+ listTargetResourceTypesResponse_targetResourceTypes,+ listTargetResourceTypesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTargetResourceTypes' smart constructor.+data ListTargetResourceTypes = ListTargetResourceTypes'+ { -- | The maximum number of results to return with a single call. To retrieve+ -- the remaining results, make another call with the returned @nextToken@+ -- value.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next page of results.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTargetResourceTypes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listTargetResourceTypes_maxResults' - The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+--+-- 'nextToken', 'listTargetResourceTypes_nextToken' - The token for the next page of results.+newListTargetResourceTypes ::+ ListTargetResourceTypes+newListTargetResourceTypes =+ ListTargetResourceTypes'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | The maximum number of results to return with a single call. To retrieve+-- the remaining results, make another call with the returned @nextToken@+-- value.+listTargetResourceTypes_maxResults :: Lens.Lens' ListTargetResourceTypes (Prelude.Maybe Prelude.Natural)+listTargetResourceTypes_maxResults = Lens.lens (\ListTargetResourceTypes' {maxResults} -> maxResults) (\s@ListTargetResourceTypes' {} a -> s {maxResults = a} :: ListTargetResourceTypes)++-- | The token for the next page of results.+listTargetResourceTypes_nextToken :: Lens.Lens' ListTargetResourceTypes (Prelude.Maybe Prelude.Text)+listTargetResourceTypes_nextToken = Lens.lens (\ListTargetResourceTypes' {nextToken} -> nextToken) (\s@ListTargetResourceTypes' {} a -> s {nextToken = a} :: ListTargetResourceTypes)++instance Core.AWSRequest ListTargetResourceTypes where+ type+ AWSResponse ListTargetResourceTypes =+ ListTargetResourceTypesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListTargetResourceTypesResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> ( x+ Data..?> "targetResourceTypes"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListTargetResourceTypes where+ hashWithSalt _salt ListTargetResourceTypes' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListTargetResourceTypes where+ rnf ListTargetResourceTypes' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListTargetResourceTypes where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListTargetResourceTypes where+ toPath = Prelude.const "/targetResourceTypes"++instance Data.ToQuery ListTargetResourceTypes where+ toQuery ListTargetResourceTypes' {..} =+ Prelude.mconcat+ [ "maxResults" Data.=: maxResults,+ "nextToken" Data.=: nextToken+ ]++-- | /See:/ 'newListTargetResourceTypesResponse' smart constructor.+data ListTargetResourceTypesResponse = ListTargetResourceTypesResponse'+ { -- | The token to use to retrieve the next page of results. This value is+ -- @null@ when there are no more results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The target resource types.+ targetResourceTypes :: Prelude.Maybe [TargetResourceTypeSummary],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTargetResourceTypesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listTargetResourceTypesResponse_nextToken' - The token to use to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+--+-- 'targetResourceTypes', 'listTargetResourceTypesResponse_targetResourceTypes' - The target resource types.+--+-- 'httpStatus', 'listTargetResourceTypesResponse_httpStatus' - The response's http status code.+newListTargetResourceTypesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTargetResourceTypesResponse+newListTargetResourceTypesResponse pHttpStatus_ =+ ListTargetResourceTypesResponse'+ { nextToken =+ Prelude.Nothing,+ targetResourceTypes = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The token to use to retrieve the next page of results. This value is+-- @null@ when there are no more results to return.+listTargetResourceTypesResponse_nextToken :: Lens.Lens' ListTargetResourceTypesResponse (Prelude.Maybe Prelude.Text)+listTargetResourceTypesResponse_nextToken = Lens.lens (\ListTargetResourceTypesResponse' {nextToken} -> nextToken) (\s@ListTargetResourceTypesResponse' {} a -> s {nextToken = a} :: ListTargetResourceTypesResponse)++-- | The target resource types.+listTargetResourceTypesResponse_targetResourceTypes :: Lens.Lens' ListTargetResourceTypesResponse (Prelude.Maybe [TargetResourceTypeSummary])+listTargetResourceTypesResponse_targetResourceTypes = Lens.lens (\ListTargetResourceTypesResponse' {targetResourceTypes} -> targetResourceTypes) (\s@ListTargetResourceTypesResponse' {} a -> s {targetResourceTypes = a} :: ListTargetResourceTypesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTargetResourceTypesResponse_httpStatus :: Lens.Lens' ListTargetResourceTypesResponse Prelude.Int+listTargetResourceTypesResponse_httpStatus = Lens.lens (\ListTargetResourceTypesResponse' {httpStatus} -> httpStatus) (\s@ListTargetResourceTypesResponse' {} a -> s {httpStatus = a} :: ListTargetResourceTypesResponse)++instance+ Prelude.NFData+ ListTargetResourceTypesResponse+ where+ rnf ListTargetResourceTypesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf targetResourceTypes+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FIS/StartExperiment.hs view
@@ -0,0 +1,205 @@+{-# 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.FIS.StartExperiment+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts running an experiment from the specified experiment template.+module Amazonka.FIS.StartExperiment+ ( -- * Creating a Request+ StartExperiment (..),+ newStartExperiment,++ -- * Request Lenses+ startExperiment_tags,+ startExperiment_clientToken,+ startExperiment_experimentTemplateId,++ -- * Destructuring the Response+ StartExperimentResponse (..),+ newStartExperimentResponse,++ -- * Response Lenses+ startExperimentResponse_experiment,+ startExperimentResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartExperiment' smart constructor.+data StartExperiment = StartExperiment'+ { -- | The tags to apply to the experiment.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | Unique, case-sensitive identifier that you provide to ensure the+ -- idempotency of the request.+ clientToken :: Prelude.Text,+ -- | The ID of the experiment template.+ experimentTemplateId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartExperiment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'startExperiment_tags' - The tags to apply to the experiment.+--+-- 'clientToken', 'startExperiment_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+--+-- 'experimentTemplateId', 'startExperiment_experimentTemplateId' - The ID of the experiment template.+newStartExperiment ::+ -- | 'clientToken'+ Prelude.Text ->+ -- | 'experimentTemplateId'+ Prelude.Text ->+ StartExperiment+newStartExperiment+ pClientToken_+ pExperimentTemplateId_ =+ StartExperiment'+ { tags = Prelude.Nothing,+ clientToken = pClientToken_,+ experimentTemplateId = pExperimentTemplateId_+ }++-- | The tags to apply to the experiment.+startExperiment_tags :: Lens.Lens' StartExperiment (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+startExperiment_tags = Lens.lens (\StartExperiment' {tags} -> tags) (\s@StartExperiment' {} a -> s {tags = a} :: StartExperiment) Prelude.. Lens.mapping Lens.coerced++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request.+startExperiment_clientToken :: Lens.Lens' StartExperiment Prelude.Text+startExperiment_clientToken = Lens.lens (\StartExperiment' {clientToken} -> clientToken) (\s@StartExperiment' {} a -> s {clientToken = a} :: StartExperiment)++-- | The ID of the experiment template.+startExperiment_experimentTemplateId :: Lens.Lens' StartExperiment Prelude.Text+startExperiment_experimentTemplateId = Lens.lens (\StartExperiment' {experimentTemplateId} -> experimentTemplateId) (\s@StartExperiment' {} a -> s {experimentTemplateId = a} :: StartExperiment)++instance Core.AWSRequest StartExperiment where+ type+ AWSResponse StartExperiment =+ StartExperimentResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ StartExperimentResponse'+ Prelude.<$> (x Data..?> "experiment")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable StartExperiment where+ hashWithSalt _salt StartExperiment' {..} =+ _salt+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` clientToken+ `Prelude.hashWithSalt` experimentTemplateId++instance Prelude.NFData StartExperiment where+ rnf StartExperiment' {..} =+ Prelude.rnf tags+ `Prelude.seq` Prelude.rnf clientToken+ `Prelude.seq` Prelude.rnf experimentTemplateId++instance Data.ToHeaders StartExperiment where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON StartExperiment where+ toJSON StartExperiment' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("clientToken" Data..= clientToken),+ Prelude.Just+ ( "experimentTemplateId"+ Data..= experimentTemplateId+ )+ ]+ )++instance Data.ToPath StartExperiment where+ toPath = Prelude.const "/experiments"++instance Data.ToQuery StartExperiment where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartExperimentResponse' smart constructor.+data StartExperimentResponse = StartExperimentResponse'+ { -- | Information about the experiment.+ experiment :: Prelude.Maybe Experiment,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartExperimentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'experiment', 'startExperimentResponse_experiment' - Information about the experiment.+--+-- 'httpStatus', 'startExperimentResponse_httpStatus' - The response's http status code.+newStartExperimentResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ StartExperimentResponse+newStartExperimentResponse pHttpStatus_ =+ StartExperimentResponse'+ { experiment =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the experiment.+startExperimentResponse_experiment :: Lens.Lens' StartExperimentResponse (Prelude.Maybe Experiment)+startExperimentResponse_experiment = Lens.lens (\StartExperimentResponse' {experiment} -> experiment) (\s@StartExperimentResponse' {} a -> s {experiment = a} :: StartExperimentResponse)++-- | The response's http status code.+startExperimentResponse_httpStatus :: Lens.Lens' StartExperimentResponse Prelude.Int+startExperimentResponse_httpStatus = Lens.lens (\StartExperimentResponse' {httpStatus} -> httpStatus) (\s@StartExperimentResponse' {} a -> s {httpStatus = a} :: StartExperimentResponse)++instance Prelude.NFData StartExperimentResponse where+ rnf StartExperimentResponse' {..} =+ Prelude.rnf experiment+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FIS/StopExperiment.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.StopExperiment+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stops the specified experiment.+module Amazonka.FIS.StopExperiment+ ( -- * Creating a Request+ StopExperiment (..),+ newStopExperiment,++ -- * Request Lenses+ stopExperiment_id,++ -- * Destructuring the Response+ StopExperimentResponse (..),+ newStopExperimentResponse,++ -- * Response Lenses+ stopExperimentResponse_experiment,+ stopExperimentResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStopExperiment' smart constructor.+data StopExperiment = StopExperiment'+ { -- | The ID of the experiment.+ id :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopExperiment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'stopExperiment_id' - The ID of the experiment.+newStopExperiment ::+ -- | 'id'+ Prelude.Text ->+ StopExperiment+newStopExperiment pId_ = StopExperiment' {id = pId_}++-- | The ID of the experiment.+stopExperiment_id :: Lens.Lens' StopExperiment Prelude.Text+stopExperiment_id = Lens.lens (\StopExperiment' {id} -> id) (\s@StopExperiment' {} a -> s {id = a} :: StopExperiment)++instance Core.AWSRequest StopExperiment where+ type+ AWSResponse StopExperiment =+ StopExperimentResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ StopExperimentResponse'+ Prelude.<$> (x Data..?> "experiment")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable StopExperiment where+ hashWithSalt _salt StopExperiment' {..} =+ _salt `Prelude.hashWithSalt` id++instance Prelude.NFData StopExperiment where+ rnf StopExperiment' {..} = Prelude.rnf id++instance Data.ToHeaders StopExperiment where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath StopExperiment where+ toPath StopExperiment' {..} =+ Prelude.mconcat ["/experiments/", Data.toBS id]++instance Data.ToQuery StopExperiment where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStopExperimentResponse' smart constructor.+data StopExperimentResponse = StopExperimentResponse'+ { -- | Information about the experiment.+ experiment :: Prelude.Maybe Experiment,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopExperimentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'experiment', 'stopExperimentResponse_experiment' - Information about the experiment.+--+-- 'httpStatus', 'stopExperimentResponse_httpStatus' - The response's http status code.+newStopExperimentResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ StopExperimentResponse+newStopExperimentResponse pHttpStatus_ =+ StopExperimentResponse'+ { experiment =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the experiment.+stopExperimentResponse_experiment :: Lens.Lens' StopExperimentResponse (Prelude.Maybe Experiment)+stopExperimentResponse_experiment = Lens.lens (\StopExperimentResponse' {experiment} -> experiment) (\s@StopExperimentResponse' {} a -> s {experiment = a} :: StopExperimentResponse)++-- | The response's http status code.+stopExperimentResponse_httpStatus :: Lens.Lens' StopExperimentResponse Prelude.Int+stopExperimentResponse_httpStatus = Lens.lens (\StopExperimentResponse' {httpStatus} -> httpStatus) (\s@StopExperimentResponse' {} a -> s {httpStatus = a} :: StopExperimentResponse)++instance Prelude.NFData StopExperimentResponse where+ rnf StopExperimentResponse' {..} =+ Prelude.rnf experiment+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FIS/TagResource.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.FIS.TagResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Applies the specified tags to the specified resource.+module Amazonka.FIS.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 Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+ { -- | The Amazon Resource Name (ARN) of the resource.+ resourceArn :: Prelude.Text,+ -- | The tags for 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) of the resource.+--+-- 'tags', 'tagResource_tags' - The tags for the resource.+newTagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ TagResource+newTagResource pResourceArn_ =+ TagResource'+ { resourceArn = pResourceArn_,+ tags = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the resource.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The tags for 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/FIS/Types.hs view
@@ -0,0 +1,469 @@+{-# 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.FIS.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.FIS.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _ConflictException,+ _ResourceNotFoundException,+ _ServiceQuotaExceededException,+ _ValidationException,++ -- * ExperimentActionStatus+ ExperimentActionStatus (..),++ -- * ExperimentStatus+ ExperimentStatus (..),++ -- * Action+ Action (..),+ newAction,+ action_description,+ action_id,+ action_parameters,+ action_tags,+ action_targets,++ -- * ActionParameter+ ActionParameter (..),+ newActionParameter,+ actionParameter_description,+ actionParameter_required,++ -- * ActionSummary+ ActionSummary (..),+ newActionSummary,+ actionSummary_description,+ actionSummary_id,+ actionSummary_tags,+ actionSummary_targets,++ -- * ActionTarget+ ActionTarget (..),+ newActionTarget,+ actionTarget_resourceType,++ -- * CreateExperimentTemplateActionInput+ CreateExperimentTemplateActionInput (..),+ newCreateExperimentTemplateActionInput,+ createExperimentTemplateActionInput_description,+ createExperimentTemplateActionInput_parameters,+ createExperimentTemplateActionInput_startAfter,+ createExperimentTemplateActionInput_targets,+ createExperimentTemplateActionInput_actionId,++ -- * CreateExperimentTemplateLogConfigurationInput+ CreateExperimentTemplateLogConfigurationInput (..),+ newCreateExperimentTemplateLogConfigurationInput,+ createExperimentTemplateLogConfigurationInput_cloudWatchLogsConfiguration,+ createExperimentTemplateLogConfigurationInput_s3Configuration,+ createExperimentTemplateLogConfigurationInput_logSchemaVersion,++ -- * CreateExperimentTemplateStopConditionInput+ CreateExperimentTemplateStopConditionInput (..),+ newCreateExperimentTemplateStopConditionInput,+ createExperimentTemplateStopConditionInput_value,+ createExperimentTemplateStopConditionInput_source,++ -- * CreateExperimentTemplateTargetInput+ CreateExperimentTemplateTargetInput (..),+ newCreateExperimentTemplateTargetInput,+ createExperimentTemplateTargetInput_filters,+ createExperimentTemplateTargetInput_parameters,+ createExperimentTemplateTargetInput_resourceArns,+ createExperimentTemplateTargetInput_resourceTags,+ createExperimentTemplateTargetInput_resourceType,+ createExperimentTemplateTargetInput_selectionMode,++ -- * Experiment+ Experiment (..),+ newExperiment,+ experiment_actions,+ experiment_creationTime,+ experiment_endTime,+ experiment_experimentTemplateId,+ experiment_id,+ experiment_logConfiguration,+ experiment_roleArn,+ experiment_startTime,+ experiment_state,+ experiment_stopConditions,+ experiment_tags,+ experiment_targets,++ -- * ExperimentAction+ ExperimentAction (..),+ newExperimentAction,+ experimentAction_actionId,+ experimentAction_description,+ experimentAction_endTime,+ experimentAction_parameters,+ experimentAction_startAfter,+ experimentAction_startTime,+ experimentAction_state,+ experimentAction_targets,++ -- * ExperimentActionState+ ExperimentActionState (..),+ newExperimentActionState,+ experimentActionState_reason,+ experimentActionState_status,++ -- * ExperimentCloudWatchLogsLogConfiguration+ ExperimentCloudWatchLogsLogConfiguration (..),+ newExperimentCloudWatchLogsLogConfiguration,+ experimentCloudWatchLogsLogConfiguration_logGroupArn,++ -- * ExperimentLogConfiguration+ ExperimentLogConfiguration (..),+ newExperimentLogConfiguration,+ experimentLogConfiguration_cloudWatchLogsConfiguration,+ experimentLogConfiguration_logSchemaVersion,+ experimentLogConfiguration_s3Configuration,++ -- * ExperimentS3LogConfiguration+ ExperimentS3LogConfiguration (..),+ newExperimentS3LogConfiguration,+ experimentS3LogConfiguration_bucketName,+ experimentS3LogConfiguration_prefix,++ -- * ExperimentState+ ExperimentState (..),+ newExperimentState,+ experimentState_reason,+ experimentState_status,++ -- * ExperimentStopCondition+ ExperimentStopCondition (..),+ newExperimentStopCondition,+ experimentStopCondition_source,+ experimentStopCondition_value,++ -- * ExperimentSummary+ ExperimentSummary (..),+ newExperimentSummary,+ experimentSummary_creationTime,+ experimentSummary_experimentTemplateId,+ experimentSummary_id,+ experimentSummary_state,+ experimentSummary_tags,++ -- * ExperimentTarget+ ExperimentTarget (..),+ newExperimentTarget,+ experimentTarget_filters,+ experimentTarget_parameters,+ experimentTarget_resourceArns,+ experimentTarget_resourceTags,+ experimentTarget_resourceType,+ experimentTarget_selectionMode,++ -- * ExperimentTargetFilter+ ExperimentTargetFilter (..),+ newExperimentTargetFilter,+ experimentTargetFilter_path,+ experimentTargetFilter_values,++ -- * ExperimentTemplate+ ExperimentTemplate (..),+ newExperimentTemplate,+ experimentTemplate_actions,+ experimentTemplate_creationTime,+ experimentTemplate_description,+ experimentTemplate_id,+ experimentTemplate_lastUpdateTime,+ experimentTemplate_logConfiguration,+ experimentTemplate_roleArn,+ experimentTemplate_stopConditions,+ experimentTemplate_tags,+ experimentTemplate_targets,++ -- * ExperimentTemplateAction+ ExperimentTemplateAction (..),+ newExperimentTemplateAction,+ experimentTemplateAction_actionId,+ experimentTemplateAction_description,+ experimentTemplateAction_parameters,+ experimentTemplateAction_startAfter,+ experimentTemplateAction_targets,++ -- * ExperimentTemplateCloudWatchLogsLogConfiguration+ ExperimentTemplateCloudWatchLogsLogConfiguration (..),+ newExperimentTemplateCloudWatchLogsLogConfiguration,+ experimentTemplateCloudWatchLogsLogConfiguration_logGroupArn,++ -- * ExperimentTemplateCloudWatchLogsLogConfigurationInput+ ExperimentTemplateCloudWatchLogsLogConfigurationInput (..),+ newExperimentTemplateCloudWatchLogsLogConfigurationInput,+ experimentTemplateCloudWatchLogsLogConfigurationInput_logGroupArn,++ -- * ExperimentTemplateLogConfiguration+ ExperimentTemplateLogConfiguration (..),+ newExperimentTemplateLogConfiguration,+ experimentTemplateLogConfiguration_cloudWatchLogsConfiguration,+ experimentTemplateLogConfiguration_logSchemaVersion,+ experimentTemplateLogConfiguration_s3Configuration,++ -- * ExperimentTemplateS3LogConfiguration+ ExperimentTemplateS3LogConfiguration (..),+ newExperimentTemplateS3LogConfiguration,+ experimentTemplateS3LogConfiguration_bucketName,+ experimentTemplateS3LogConfiguration_prefix,++ -- * ExperimentTemplateS3LogConfigurationInput+ ExperimentTemplateS3LogConfigurationInput (..),+ newExperimentTemplateS3LogConfigurationInput,+ experimentTemplateS3LogConfigurationInput_prefix,+ experimentTemplateS3LogConfigurationInput_bucketName,++ -- * ExperimentTemplateStopCondition+ ExperimentTemplateStopCondition (..),+ newExperimentTemplateStopCondition,+ experimentTemplateStopCondition_source,+ experimentTemplateStopCondition_value,++ -- * ExperimentTemplateSummary+ ExperimentTemplateSummary (..),+ newExperimentTemplateSummary,+ experimentTemplateSummary_creationTime,+ experimentTemplateSummary_description,+ experimentTemplateSummary_id,+ experimentTemplateSummary_lastUpdateTime,+ experimentTemplateSummary_tags,++ -- * ExperimentTemplateTarget+ ExperimentTemplateTarget (..),+ newExperimentTemplateTarget,+ experimentTemplateTarget_filters,+ experimentTemplateTarget_parameters,+ experimentTemplateTarget_resourceArns,+ experimentTemplateTarget_resourceTags,+ experimentTemplateTarget_resourceType,+ experimentTemplateTarget_selectionMode,++ -- * ExperimentTemplateTargetFilter+ ExperimentTemplateTargetFilter (..),+ newExperimentTemplateTargetFilter,+ experimentTemplateTargetFilter_path,+ experimentTemplateTargetFilter_values,++ -- * ExperimentTemplateTargetInputFilter+ ExperimentTemplateTargetInputFilter (..),+ newExperimentTemplateTargetInputFilter,+ experimentTemplateTargetInputFilter_path,+ experimentTemplateTargetInputFilter_values,++ -- * TargetResourceType+ TargetResourceType (..),+ newTargetResourceType,+ targetResourceType_description,+ targetResourceType_parameters,+ targetResourceType_resourceType,++ -- * TargetResourceTypeParameter+ TargetResourceTypeParameter (..),+ newTargetResourceTypeParameter,+ targetResourceTypeParameter_description,+ targetResourceTypeParameter_required,++ -- * TargetResourceTypeSummary+ TargetResourceTypeSummary (..),+ newTargetResourceTypeSummary,+ targetResourceTypeSummary_description,+ targetResourceTypeSummary_resourceType,++ -- * UpdateExperimentTemplateActionInputItem+ UpdateExperimentTemplateActionInputItem (..),+ newUpdateExperimentTemplateActionInputItem,+ updateExperimentTemplateActionInputItem_actionId,+ updateExperimentTemplateActionInputItem_description,+ updateExperimentTemplateActionInputItem_parameters,+ updateExperimentTemplateActionInputItem_startAfter,+ updateExperimentTemplateActionInputItem_targets,++ -- * UpdateExperimentTemplateLogConfigurationInput+ UpdateExperimentTemplateLogConfigurationInput (..),+ newUpdateExperimentTemplateLogConfigurationInput,+ updateExperimentTemplateLogConfigurationInput_cloudWatchLogsConfiguration,+ updateExperimentTemplateLogConfigurationInput_logSchemaVersion,+ updateExperimentTemplateLogConfigurationInput_s3Configuration,++ -- * UpdateExperimentTemplateStopConditionInput+ UpdateExperimentTemplateStopConditionInput (..),+ newUpdateExperimentTemplateStopConditionInput,+ updateExperimentTemplateStopConditionInput_value,+ updateExperimentTemplateStopConditionInput_source,++ -- * UpdateExperimentTemplateTargetInput+ UpdateExperimentTemplateTargetInput (..),+ newUpdateExperimentTemplateTargetInput,+ updateExperimentTemplateTargetInput_filters,+ updateExperimentTemplateTargetInput_parameters,+ updateExperimentTemplateTargetInput_resourceArns,+ updateExperimentTemplateTargetInput_resourceTags,+ updateExperimentTemplateTargetInput_resourceType,+ updateExperimentTemplateTargetInput_selectionMode,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.FIS.Types.Action+import Amazonka.FIS.Types.ActionParameter+import Amazonka.FIS.Types.ActionSummary+import Amazonka.FIS.Types.ActionTarget+import Amazonka.FIS.Types.CreateExperimentTemplateActionInput+import Amazonka.FIS.Types.CreateExperimentTemplateLogConfigurationInput+import Amazonka.FIS.Types.CreateExperimentTemplateStopConditionInput+import Amazonka.FIS.Types.CreateExperimentTemplateTargetInput+import Amazonka.FIS.Types.Experiment+import Amazonka.FIS.Types.ExperimentAction+import Amazonka.FIS.Types.ExperimentActionState+import Amazonka.FIS.Types.ExperimentActionStatus+import Amazonka.FIS.Types.ExperimentCloudWatchLogsLogConfiguration+import Amazonka.FIS.Types.ExperimentLogConfiguration+import Amazonka.FIS.Types.ExperimentS3LogConfiguration+import Amazonka.FIS.Types.ExperimentState+import Amazonka.FIS.Types.ExperimentStatus+import Amazonka.FIS.Types.ExperimentStopCondition+import Amazonka.FIS.Types.ExperimentSummary+import Amazonka.FIS.Types.ExperimentTarget+import Amazonka.FIS.Types.ExperimentTargetFilter+import Amazonka.FIS.Types.ExperimentTemplate+import Amazonka.FIS.Types.ExperimentTemplateAction+import Amazonka.FIS.Types.ExperimentTemplateCloudWatchLogsLogConfiguration+import Amazonka.FIS.Types.ExperimentTemplateCloudWatchLogsLogConfigurationInput+import Amazonka.FIS.Types.ExperimentTemplateLogConfiguration+import Amazonka.FIS.Types.ExperimentTemplateS3LogConfiguration+import Amazonka.FIS.Types.ExperimentTemplateS3LogConfigurationInput+import Amazonka.FIS.Types.ExperimentTemplateStopCondition+import Amazonka.FIS.Types.ExperimentTemplateSummary+import Amazonka.FIS.Types.ExperimentTemplateTarget+import Amazonka.FIS.Types.ExperimentTemplateTargetFilter+import Amazonka.FIS.Types.ExperimentTemplateTargetInputFilter+import Amazonka.FIS.Types.TargetResourceType+import Amazonka.FIS.Types.TargetResourceTypeParameter+import Amazonka.FIS.Types.TargetResourceTypeSummary+import Amazonka.FIS.Types.UpdateExperimentTemplateActionInputItem+import Amazonka.FIS.Types.UpdateExperimentTemplateLogConfigurationInput+import Amazonka.FIS.Types.UpdateExperimentTemplateStopConditionInput+import Amazonka.FIS.Types.UpdateExperimentTemplateTargetInput+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-12-01@ of the Amazon Fault Injection Simulator SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "FIS",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "fis",+ Core.signingName = "fis",+ Core.version = "2020-12-01",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "FIS",+ 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++-- | The request could not be processed because of a conflict.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+ Core._MatchServiceError+ defaultService+ "ConflictException"+ Prelude.. Core.hasStatus 409++-- | The specified resource cannot be found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+ Core._MatchServiceError+ defaultService+ "ResourceNotFoundException"+ Prelude.. Core.hasStatus 404++-- | You have exceeded your service quota.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+ Core._MatchServiceError+ defaultService+ "ServiceQuotaExceededException"+ Prelude.. Core.hasStatus 402++-- | The specified input is not valid, or fails to satisfy the constraints+-- for the request.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+ Core._MatchServiceError+ defaultService+ "ValidationException"+ Prelude.. Core.hasStatus 400
+ gen/Amazonka/FIS/Types/Action.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.FIS.Types.Action+-- 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.FIS.Types.Action where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ActionParameter+import Amazonka.FIS.Types.ActionTarget+import qualified Amazonka.Prelude as Prelude++-- | Describes an action. For more information, see+-- <https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html FIS actions>+-- in the /Fault Injection Simulator User Guide/.+--+-- /See:/ 'newAction' smart constructor.+data Action = Action'+ { -- | The description for the action.+ description :: Prelude.Maybe Prelude.Text,+ -- | The ID of the action.+ id :: Prelude.Maybe Prelude.Text,+ -- | The action parameters, if applicable.+ parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text ActionParameter),+ -- | The tags for the action.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The supported targets for the action.+ targets :: Prelude.Maybe (Prelude.HashMap Prelude.Text ActionTarget)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Action' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'action_description' - The description for the action.+--+-- 'id', 'action_id' - The ID of the action.+--+-- 'parameters', 'action_parameters' - The action parameters, if applicable.+--+-- 'tags', 'action_tags' - The tags for the action.+--+-- 'targets', 'action_targets' - The supported targets for the action.+newAction ::+ Action+newAction =+ Action'+ { description = Prelude.Nothing,+ id = Prelude.Nothing,+ parameters = Prelude.Nothing,+ tags = Prelude.Nothing,+ targets = Prelude.Nothing+ }++-- | The description for the action.+action_description :: Lens.Lens' Action (Prelude.Maybe Prelude.Text)+action_description = Lens.lens (\Action' {description} -> description) (\s@Action' {} a -> s {description = a} :: Action)++-- | The ID of the action.+action_id :: Lens.Lens' Action (Prelude.Maybe Prelude.Text)+action_id = Lens.lens (\Action' {id} -> id) (\s@Action' {} a -> s {id = a} :: Action)++-- | The action parameters, if applicable.+action_parameters :: Lens.Lens' Action (Prelude.Maybe (Prelude.HashMap Prelude.Text ActionParameter))+action_parameters = Lens.lens (\Action' {parameters} -> parameters) (\s@Action' {} a -> s {parameters = a} :: Action) Prelude.. Lens.mapping Lens.coerced++-- | The tags for the action.+action_tags :: Lens.Lens' Action (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+action_tags = Lens.lens (\Action' {tags} -> tags) (\s@Action' {} a -> s {tags = a} :: Action) Prelude.. Lens.mapping Lens.coerced++-- | The supported targets for the action.+action_targets :: Lens.Lens' Action (Prelude.Maybe (Prelude.HashMap Prelude.Text ActionTarget))+action_targets = Lens.lens (\Action' {targets} -> targets) (\s@Action' {} a -> s {targets = a} :: Action) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Action where+ parseJSON =+ Data.withObject+ "Action"+ ( \x ->+ Action'+ Prelude.<$> (x Data..:? "description")+ Prelude.<*> (x Data..:? "id")+ Prelude.<*> (x Data..:? "parameters" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "targets" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable Action where+ hashWithSalt _salt Action' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` parameters+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` targets++instance Prelude.NFData Action where+ rnf Action' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf parameters+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf targets
+ gen/Amazonka/FIS/Types/ActionParameter.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.Types.ActionParameter+-- 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.FIS.Types.ActionParameter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes a parameter for an action.+--+-- /See:/ 'newActionParameter' smart constructor.+data ActionParameter = ActionParameter'+ { -- | The parameter description.+ description :: Prelude.Maybe Prelude.Text,+ -- | Indicates whether the parameter is required.+ required :: Prelude.Maybe Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ActionParameter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'actionParameter_description' - The parameter description.+--+-- 'required', 'actionParameter_required' - Indicates whether the parameter is required.+newActionParameter ::+ ActionParameter+newActionParameter =+ ActionParameter'+ { description = Prelude.Nothing,+ required = Prelude.Nothing+ }++-- | The parameter description.+actionParameter_description :: Lens.Lens' ActionParameter (Prelude.Maybe Prelude.Text)+actionParameter_description = Lens.lens (\ActionParameter' {description} -> description) (\s@ActionParameter' {} a -> s {description = a} :: ActionParameter)++-- | Indicates whether the parameter is required.+actionParameter_required :: Lens.Lens' ActionParameter (Prelude.Maybe Prelude.Bool)+actionParameter_required = Lens.lens (\ActionParameter' {required} -> required) (\s@ActionParameter' {} a -> s {required = a} :: ActionParameter)++instance Data.FromJSON ActionParameter where+ parseJSON =+ Data.withObject+ "ActionParameter"+ ( \x ->+ ActionParameter'+ Prelude.<$> (x Data..:? "description")+ Prelude.<*> (x Data..:? "required")+ )++instance Prelude.Hashable ActionParameter where+ hashWithSalt _salt ActionParameter' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` required++instance Prelude.NFData ActionParameter where+ rnf ActionParameter' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf required
+ gen/Amazonka/FIS/Types/ActionSummary.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.Types.ActionSummary+-- 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.FIS.Types.ActionSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ActionTarget+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of an action.+--+-- /See:/ 'newActionSummary' smart constructor.+data ActionSummary = ActionSummary'+ { -- | The description for the action.+ description :: Prelude.Maybe Prelude.Text,+ -- | The ID of the action.+ id :: Prelude.Maybe Prelude.Text,+ -- | The tags for the action.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The targets for the action.+ targets :: Prelude.Maybe (Prelude.HashMap Prelude.Text ActionTarget)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ActionSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'actionSummary_description' - The description for the action.+--+-- 'id', 'actionSummary_id' - The ID of the action.+--+-- 'tags', 'actionSummary_tags' - The tags for the action.+--+-- 'targets', 'actionSummary_targets' - The targets for the action.+newActionSummary ::+ ActionSummary+newActionSummary =+ ActionSummary'+ { description = Prelude.Nothing,+ id = Prelude.Nothing,+ tags = Prelude.Nothing,+ targets = Prelude.Nothing+ }++-- | The description for the action.+actionSummary_description :: Lens.Lens' ActionSummary (Prelude.Maybe Prelude.Text)+actionSummary_description = Lens.lens (\ActionSummary' {description} -> description) (\s@ActionSummary' {} a -> s {description = a} :: ActionSummary)++-- | The ID of the action.+actionSummary_id :: Lens.Lens' ActionSummary (Prelude.Maybe Prelude.Text)+actionSummary_id = Lens.lens (\ActionSummary' {id} -> id) (\s@ActionSummary' {} a -> s {id = a} :: ActionSummary)++-- | The tags for the action.+actionSummary_tags :: Lens.Lens' ActionSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+actionSummary_tags = Lens.lens (\ActionSummary' {tags} -> tags) (\s@ActionSummary' {} a -> s {tags = a} :: ActionSummary) Prelude.. Lens.mapping Lens.coerced++-- | The targets for the action.+actionSummary_targets :: Lens.Lens' ActionSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text ActionTarget))+actionSummary_targets = Lens.lens (\ActionSummary' {targets} -> targets) (\s@ActionSummary' {} a -> s {targets = a} :: ActionSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ActionSummary where+ parseJSON =+ Data.withObject+ "ActionSummary"+ ( \x ->+ ActionSummary'+ Prelude.<$> (x Data..:? "description")+ Prelude.<*> (x Data..:? "id")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "targets" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ActionSummary where+ hashWithSalt _salt ActionSummary' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` targets++instance Prelude.NFData ActionSummary where+ rnf ActionSummary' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf targets
+ gen/Amazonka/FIS/Types/ActionTarget.hs view
@@ -0,0 +1,68 @@+{-# 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.FIS.Types.ActionTarget+-- 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.FIS.Types.ActionTarget where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes a target for an action.+--+-- /See:/ 'newActionTarget' smart constructor.+data ActionTarget = ActionTarget'+ { -- | The resource type of the target.+ resourceType :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ActionTarget' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceType', 'actionTarget_resourceType' - The resource type of the target.+newActionTarget ::+ ActionTarget+newActionTarget =+ ActionTarget' {resourceType = Prelude.Nothing}++-- | The resource type of the target.+actionTarget_resourceType :: Lens.Lens' ActionTarget (Prelude.Maybe Prelude.Text)+actionTarget_resourceType = Lens.lens (\ActionTarget' {resourceType} -> resourceType) (\s@ActionTarget' {} a -> s {resourceType = a} :: ActionTarget)++instance Data.FromJSON ActionTarget where+ parseJSON =+ Data.withObject+ "ActionTarget"+ ( \x ->+ ActionTarget'+ Prelude.<$> (x Data..:? "resourceType")+ )++instance Prelude.Hashable ActionTarget where+ hashWithSalt _salt ActionTarget' {..} =+ _salt `Prelude.hashWithSalt` resourceType++instance Prelude.NFData ActionTarget where+ rnf ActionTarget' {..} = Prelude.rnf resourceType
+ gen/Amazonka/FIS/Types/CreateExperimentTemplateActionInput.hs view
@@ -0,0 +1,146 @@+{-# 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.FIS.Types.CreateExperimentTemplateActionInput+-- 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.FIS.Types.CreateExperimentTemplateActionInput 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++-- | Specifies an action for an experiment template.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fis/latest/userguide/actions.html Actions>+-- in the /Fault Injection Simulator User Guide/.+--+-- /See:/ 'newCreateExperimentTemplateActionInput' smart constructor.+data CreateExperimentTemplateActionInput = CreateExperimentTemplateActionInput'+ { -- | A description for the action.+ description :: Prelude.Maybe Prelude.Text,+ -- | The parameters for the action, if applicable.+ parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The name of the action that must be completed before the current action+ -- starts. Omit this parameter to run the action at the start of the+ -- experiment.+ startAfter :: Prelude.Maybe [Prelude.Text],+ -- | The targets for the action.+ targets :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The ID of the action. The format of the action ID is:+ -- aws:/service-name/:/action-type/.+ actionId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateExperimentTemplateActionInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createExperimentTemplateActionInput_description' - A description for the action.+--+-- 'parameters', 'createExperimentTemplateActionInput_parameters' - The parameters for the action, if applicable.+--+-- 'startAfter', 'createExperimentTemplateActionInput_startAfter' - The name of the action that must be completed before the current action+-- starts. Omit this parameter to run the action at the start of the+-- experiment.+--+-- 'targets', 'createExperimentTemplateActionInput_targets' - The targets for the action.+--+-- 'actionId', 'createExperimentTemplateActionInput_actionId' - The ID of the action. The format of the action ID is:+-- aws:/service-name/:/action-type/.+newCreateExperimentTemplateActionInput ::+ -- | 'actionId'+ Prelude.Text ->+ CreateExperimentTemplateActionInput+newCreateExperimentTemplateActionInput pActionId_ =+ CreateExperimentTemplateActionInput'+ { description =+ Prelude.Nothing,+ parameters = Prelude.Nothing,+ startAfter = Prelude.Nothing,+ targets = Prelude.Nothing,+ actionId = pActionId_+ }++-- | A description for the action.+createExperimentTemplateActionInput_description :: Lens.Lens' CreateExperimentTemplateActionInput (Prelude.Maybe Prelude.Text)+createExperimentTemplateActionInput_description = Lens.lens (\CreateExperimentTemplateActionInput' {description} -> description) (\s@CreateExperimentTemplateActionInput' {} a -> s {description = a} :: CreateExperimentTemplateActionInput)++-- | The parameters for the action, if applicable.+createExperimentTemplateActionInput_parameters :: Lens.Lens' CreateExperimentTemplateActionInput (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createExperimentTemplateActionInput_parameters = Lens.lens (\CreateExperimentTemplateActionInput' {parameters} -> parameters) (\s@CreateExperimentTemplateActionInput' {} a -> s {parameters = a} :: CreateExperimentTemplateActionInput) Prelude.. Lens.mapping Lens.coerced++-- | The name of the action that must be completed before the current action+-- starts. Omit this parameter to run the action at the start of the+-- experiment.+createExperimentTemplateActionInput_startAfter :: Lens.Lens' CreateExperimentTemplateActionInput (Prelude.Maybe [Prelude.Text])+createExperimentTemplateActionInput_startAfter = Lens.lens (\CreateExperimentTemplateActionInput' {startAfter} -> startAfter) (\s@CreateExperimentTemplateActionInput' {} a -> s {startAfter = a} :: CreateExperimentTemplateActionInput) Prelude.. Lens.mapping Lens.coerced++-- | The targets for the action.+createExperimentTemplateActionInput_targets :: Lens.Lens' CreateExperimentTemplateActionInput (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createExperimentTemplateActionInput_targets = Lens.lens (\CreateExperimentTemplateActionInput' {targets} -> targets) (\s@CreateExperimentTemplateActionInput' {} a -> s {targets = a} :: CreateExperimentTemplateActionInput) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the action. The format of the action ID is:+-- aws:/service-name/:/action-type/.+createExperimentTemplateActionInput_actionId :: Lens.Lens' CreateExperimentTemplateActionInput Prelude.Text+createExperimentTemplateActionInput_actionId = Lens.lens (\CreateExperimentTemplateActionInput' {actionId} -> actionId) (\s@CreateExperimentTemplateActionInput' {} a -> s {actionId = a} :: CreateExperimentTemplateActionInput)++instance+ Prelude.Hashable+ CreateExperimentTemplateActionInput+ where+ hashWithSalt+ _salt+ CreateExperimentTemplateActionInput' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` parameters+ `Prelude.hashWithSalt` startAfter+ `Prelude.hashWithSalt` targets+ `Prelude.hashWithSalt` actionId++instance+ Prelude.NFData+ CreateExperimentTemplateActionInput+ where+ rnf CreateExperimentTemplateActionInput' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf parameters+ `Prelude.seq` Prelude.rnf startAfter+ `Prelude.seq` Prelude.rnf targets+ `Prelude.seq` Prelude.rnf actionId++instance+ Data.ToJSON+ CreateExperimentTemplateActionInput+ where+ toJSON CreateExperimentTemplateActionInput' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("description" Data..=) Prelude.<$> description,+ ("parameters" Data..=) Prelude.<$> parameters,+ ("startAfter" Data..=) Prelude.<$> startAfter,+ ("targets" Data..=) Prelude.<$> targets,+ Prelude.Just ("actionId" Data..= actionId)+ ]+ )
+ gen/Amazonka/FIS/Types/CreateExperimentTemplateLogConfigurationInput.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.FIS.Types.CreateExperimentTemplateLogConfigurationInput+-- 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.FIS.Types.CreateExperimentTemplateLogConfigurationInput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ExperimentTemplateCloudWatchLogsLogConfigurationInput+import Amazonka.FIS.Types.ExperimentTemplateS3LogConfigurationInput+import qualified Amazonka.Prelude as Prelude++-- | Specifies the configuration for experiment logging.+--+-- /See:/ 'newCreateExperimentTemplateLogConfigurationInput' smart constructor.+data CreateExperimentTemplateLogConfigurationInput = CreateExperimentTemplateLogConfigurationInput'+ { -- | The configuration for experiment logging to Amazon CloudWatch Logs.+ cloudWatchLogsConfiguration :: Prelude.Maybe ExperimentTemplateCloudWatchLogsLogConfigurationInput,+ -- | The configuration for experiment logging to Amazon S3.+ s3Configuration :: Prelude.Maybe ExperimentTemplateS3LogConfigurationInput,+ -- | The schema version.+ logSchemaVersion :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateExperimentTemplateLogConfigurationInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudWatchLogsConfiguration', 'createExperimentTemplateLogConfigurationInput_cloudWatchLogsConfiguration' - The configuration for experiment logging to Amazon CloudWatch Logs.+--+-- 's3Configuration', 'createExperimentTemplateLogConfigurationInput_s3Configuration' - The configuration for experiment logging to Amazon S3.+--+-- 'logSchemaVersion', 'createExperimentTemplateLogConfigurationInput_logSchemaVersion' - The schema version.+newCreateExperimentTemplateLogConfigurationInput ::+ -- | 'logSchemaVersion'+ Prelude.Int ->+ CreateExperimentTemplateLogConfigurationInput+newCreateExperimentTemplateLogConfigurationInput+ pLogSchemaVersion_ =+ CreateExperimentTemplateLogConfigurationInput'+ { cloudWatchLogsConfiguration =+ Prelude.Nothing,+ s3Configuration =+ Prelude.Nothing,+ logSchemaVersion =+ pLogSchemaVersion_+ }++-- | The configuration for experiment logging to Amazon CloudWatch Logs.+createExperimentTemplateLogConfigurationInput_cloudWatchLogsConfiguration :: Lens.Lens' CreateExperimentTemplateLogConfigurationInput (Prelude.Maybe ExperimentTemplateCloudWatchLogsLogConfigurationInput)+createExperimentTemplateLogConfigurationInput_cloudWatchLogsConfiguration = Lens.lens (\CreateExperimentTemplateLogConfigurationInput' {cloudWatchLogsConfiguration} -> cloudWatchLogsConfiguration) (\s@CreateExperimentTemplateLogConfigurationInput' {} a -> s {cloudWatchLogsConfiguration = a} :: CreateExperimentTemplateLogConfigurationInput)++-- | The configuration for experiment logging to Amazon S3.+createExperimentTemplateLogConfigurationInput_s3Configuration :: Lens.Lens' CreateExperimentTemplateLogConfigurationInput (Prelude.Maybe ExperimentTemplateS3LogConfigurationInput)+createExperimentTemplateLogConfigurationInput_s3Configuration = Lens.lens (\CreateExperimentTemplateLogConfigurationInput' {s3Configuration} -> s3Configuration) (\s@CreateExperimentTemplateLogConfigurationInput' {} a -> s {s3Configuration = a} :: CreateExperimentTemplateLogConfigurationInput)++-- | The schema version.+createExperimentTemplateLogConfigurationInput_logSchemaVersion :: Lens.Lens' CreateExperimentTemplateLogConfigurationInput Prelude.Int+createExperimentTemplateLogConfigurationInput_logSchemaVersion = Lens.lens (\CreateExperimentTemplateLogConfigurationInput' {logSchemaVersion} -> logSchemaVersion) (\s@CreateExperimentTemplateLogConfigurationInput' {} a -> s {logSchemaVersion = a} :: CreateExperimentTemplateLogConfigurationInput)++instance+ Prelude.Hashable+ CreateExperimentTemplateLogConfigurationInput+ where+ hashWithSalt+ _salt+ CreateExperimentTemplateLogConfigurationInput' {..} =+ _salt+ `Prelude.hashWithSalt` cloudWatchLogsConfiguration+ `Prelude.hashWithSalt` s3Configuration+ `Prelude.hashWithSalt` logSchemaVersion++instance+ Prelude.NFData+ CreateExperimentTemplateLogConfigurationInput+ where+ rnf+ CreateExperimentTemplateLogConfigurationInput' {..} =+ Prelude.rnf cloudWatchLogsConfiguration+ `Prelude.seq` Prelude.rnf s3Configuration+ `Prelude.seq` Prelude.rnf logSchemaVersion++instance+ Data.ToJSON+ CreateExperimentTemplateLogConfigurationInput+ where+ toJSON+ CreateExperimentTemplateLogConfigurationInput' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("cloudWatchLogsConfiguration" Data..=)+ Prelude.<$> cloudWatchLogsConfiguration,+ ("s3Configuration" Data..=)+ Prelude.<$> s3Configuration,+ Prelude.Just+ ("logSchemaVersion" Data..= logSchemaVersion)+ ]+ )
+ gen/Amazonka/FIS/Types/CreateExperimentTemplateStopConditionInput.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.Types.CreateExperimentTemplateStopConditionInput+-- 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.FIS.Types.CreateExperimentTemplateStopConditionInput 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++-- | Specifies a stop condition for an experiment template.+--+-- /See:/ 'newCreateExperimentTemplateStopConditionInput' smart constructor.+data CreateExperimentTemplateStopConditionInput = CreateExperimentTemplateStopConditionInput'+ { -- | The Amazon Resource Name (ARN) of the CloudWatch alarm. This is required+ -- if the source is a CloudWatch alarm.+ value :: Prelude.Maybe Prelude.Text,+ -- | The source for the stop condition. Specify @aws:cloudwatch:alarm@ if the+ -- stop condition is defined by a CloudWatch alarm. Specify @none@ if there+ -- is no stop condition.+ source :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateExperimentTemplateStopConditionInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'value', 'createExperimentTemplateStopConditionInput_value' - The Amazon Resource Name (ARN) of the CloudWatch alarm. This is required+-- if the source is a CloudWatch alarm.+--+-- 'source', 'createExperimentTemplateStopConditionInput_source' - The source for the stop condition. Specify @aws:cloudwatch:alarm@ if the+-- stop condition is defined by a CloudWatch alarm. Specify @none@ if there+-- is no stop condition.+newCreateExperimentTemplateStopConditionInput ::+ -- | 'source'+ Prelude.Text ->+ CreateExperimentTemplateStopConditionInput+newCreateExperimentTemplateStopConditionInput+ pSource_ =+ CreateExperimentTemplateStopConditionInput'+ { value =+ Prelude.Nothing,+ source = pSource_+ }++-- | The Amazon Resource Name (ARN) of the CloudWatch alarm. This is required+-- if the source is a CloudWatch alarm.+createExperimentTemplateStopConditionInput_value :: Lens.Lens' CreateExperimentTemplateStopConditionInput (Prelude.Maybe Prelude.Text)+createExperimentTemplateStopConditionInput_value = Lens.lens (\CreateExperimentTemplateStopConditionInput' {value} -> value) (\s@CreateExperimentTemplateStopConditionInput' {} a -> s {value = a} :: CreateExperimentTemplateStopConditionInput)++-- | The source for the stop condition. Specify @aws:cloudwatch:alarm@ if the+-- stop condition is defined by a CloudWatch alarm. Specify @none@ if there+-- is no stop condition.+createExperimentTemplateStopConditionInput_source :: Lens.Lens' CreateExperimentTemplateStopConditionInput Prelude.Text+createExperimentTemplateStopConditionInput_source = Lens.lens (\CreateExperimentTemplateStopConditionInput' {source} -> source) (\s@CreateExperimentTemplateStopConditionInput' {} a -> s {source = a} :: CreateExperimentTemplateStopConditionInput)++instance+ Prelude.Hashable+ CreateExperimentTemplateStopConditionInput+ where+ hashWithSalt+ _salt+ CreateExperimentTemplateStopConditionInput' {..} =+ _salt+ `Prelude.hashWithSalt` value+ `Prelude.hashWithSalt` source++instance+ Prelude.NFData+ CreateExperimentTemplateStopConditionInput+ where+ rnf CreateExperimentTemplateStopConditionInput' {..} =+ Prelude.rnf value `Prelude.seq` Prelude.rnf source++instance+ Data.ToJSON+ CreateExperimentTemplateStopConditionInput+ where+ toJSON+ CreateExperimentTemplateStopConditionInput' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("value" Data..=) Prelude.<$> value,+ Prelude.Just ("source" Data..= source)+ ]+ )
+ gen/Amazonka/FIS/Types/CreateExperimentTemplateTargetInput.hs view
@@ -0,0 +1,199 @@+{-# 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.FIS.Types.CreateExperimentTemplateTargetInput+-- 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.FIS.Types.CreateExperimentTemplateTargetInput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ExperimentTemplateTargetInputFilter+import qualified Amazonka.Prelude as Prelude++-- | Specifies a target for an experiment. You must specify at least one+-- Amazon Resource Name (ARN) or at least one resource tag. You cannot+-- specify both ARNs and tags.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fis/latest/userguide/targets.html Targets>+-- in the /Fault Injection Simulator User Guide/.+--+-- /See:/ 'newCreateExperimentTemplateTargetInput' smart constructor.+data CreateExperimentTemplateTargetInput = CreateExperimentTemplateTargetInput'+ { -- | The filters to apply to identify target resources using specific+ -- attributes.+ filters :: Prelude.Maybe [ExperimentTemplateTargetInputFilter],+ -- | The resource type parameters.+ parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The Amazon Resource Names (ARNs) of the resources.+ resourceArns :: Prelude.Maybe [Prelude.Text],+ -- | The tags for the target resources.+ resourceTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The resource type. The resource type must be supported for the specified+ -- action.+ resourceType :: Prelude.Text,+ -- | Scopes the identified resources to a specific count of the resources at+ -- random, or a percentage of the resources. All identified resources are+ -- included in the target.+ --+ -- - ALL - Run the action on all identified targets. This is the default.+ --+ -- - COUNT(n) - Run the action on the specified number of targets, chosen+ -- from the identified targets at random. For example, COUNT(1) selects+ -- one of the targets.+ --+ -- - PERCENT(n) - Run the action on the specified percentage of targets,+ -- chosen from the identified targets at random. For example,+ -- PERCENT(25) selects 25% of the targets.+ selectionMode :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateExperimentTemplateTargetInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'createExperimentTemplateTargetInput_filters' - The filters to apply to identify target resources using specific+-- attributes.+--+-- 'parameters', 'createExperimentTemplateTargetInput_parameters' - The resource type parameters.+--+-- 'resourceArns', 'createExperimentTemplateTargetInput_resourceArns' - The Amazon Resource Names (ARNs) of the resources.+--+-- 'resourceTags', 'createExperimentTemplateTargetInput_resourceTags' - The tags for the target resources.+--+-- 'resourceType', 'createExperimentTemplateTargetInput_resourceType' - The resource type. The resource type must be supported for the specified+-- action.+--+-- 'selectionMode', 'createExperimentTemplateTargetInput_selectionMode' - Scopes the identified resources to a specific count of the resources at+-- random, or a percentage of the resources. All identified resources are+-- included in the target.+--+-- - ALL - Run the action on all identified targets. This is the default.+--+-- - COUNT(n) - Run the action on the specified number of targets, chosen+-- from the identified targets at random. For example, COUNT(1) selects+-- one of the targets.+--+-- - PERCENT(n) - Run the action on the specified percentage of targets,+-- chosen from the identified targets at random. For example,+-- PERCENT(25) selects 25% of the targets.+newCreateExperimentTemplateTargetInput ::+ -- | 'resourceType'+ Prelude.Text ->+ -- | 'selectionMode'+ Prelude.Text ->+ CreateExperimentTemplateTargetInput+newCreateExperimentTemplateTargetInput+ pResourceType_+ pSelectionMode_ =+ CreateExperimentTemplateTargetInput'+ { filters =+ Prelude.Nothing,+ parameters = Prelude.Nothing,+ resourceArns = Prelude.Nothing,+ resourceTags = Prelude.Nothing,+ resourceType = pResourceType_,+ selectionMode = pSelectionMode_+ }++-- | The filters to apply to identify target resources using specific+-- attributes.+createExperimentTemplateTargetInput_filters :: Lens.Lens' CreateExperimentTemplateTargetInput (Prelude.Maybe [ExperimentTemplateTargetInputFilter])+createExperimentTemplateTargetInput_filters = Lens.lens (\CreateExperimentTemplateTargetInput' {filters} -> filters) (\s@CreateExperimentTemplateTargetInput' {} a -> s {filters = a} :: CreateExperimentTemplateTargetInput) Prelude.. Lens.mapping Lens.coerced++-- | The resource type parameters.+createExperimentTemplateTargetInput_parameters :: Lens.Lens' CreateExperimentTemplateTargetInput (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createExperimentTemplateTargetInput_parameters = Lens.lens (\CreateExperimentTemplateTargetInput' {parameters} -> parameters) (\s@CreateExperimentTemplateTargetInput' {} a -> s {parameters = a} :: CreateExperimentTemplateTargetInput) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Names (ARNs) of the resources.+createExperimentTemplateTargetInput_resourceArns :: Lens.Lens' CreateExperimentTemplateTargetInput (Prelude.Maybe [Prelude.Text])+createExperimentTemplateTargetInput_resourceArns = Lens.lens (\CreateExperimentTemplateTargetInput' {resourceArns} -> resourceArns) (\s@CreateExperimentTemplateTargetInput' {} a -> s {resourceArns = a} :: CreateExperimentTemplateTargetInput) Prelude.. Lens.mapping Lens.coerced++-- | The tags for the target resources.+createExperimentTemplateTargetInput_resourceTags :: Lens.Lens' CreateExperimentTemplateTargetInput (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createExperimentTemplateTargetInput_resourceTags = Lens.lens (\CreateExperimentTemplateTargetInput' {resourceTags} -> resourceTags) (\s@CreateExperimentTemplateTargetInput' {} a -> s {resourceTags = a} :: CreateExperimentTemplateTargetInput) Prelude.. Lens.mapping Lens.coerced++-- | The resource type. The resource type must be supported for the specified+-- action.+createExperimentTemplateTargetInput_resourceType :: Lens.Lens' CreateExperimentTemplateTargetInput Prelude.Text+createExperimentTemplateTargetInput_resourceType = Lens.lens (\CreateExperimentTemplateTargetInput' {resourceType} -> resourceType) (\s@CreateExperimentTemplateTargetInput' {} a -> s {resourceType = a} :: CreateExperimentTemplateTargetInput)++-- | Scopes the identified resources to a specific count of the resources at+-- random, or a percentage of the resources. All identified resources are+-- included in the target.+--+-- - ALL - Run the action on all identified targets. This is the default.+--+-- - COUNT(n) - Run the action on the specified number of targets, chosen+-- from the identified targets at random. For example, COUNT(1) selects+-- one of the targets.+--+-- - PERCENT(n) - Run the action on the specified percentage of targets,+-- chosen from the identified targets at random. For example,+-- PERCENT(25) selects 25% of the targets.+createExperimentTemplateTargetInput_selectionMode :: Lens.Lens' CreateExperimentTemplateTargetInput Prelude.Text+createExperimentTemplateTargetInput_selectionMode = Lens.lens (\CreateExperimentTemplateTargetInput' {selectionMode} -> selectionMode) (\s@CreateExperimentTemplateTargetInput' {} a -> s {selectionMode = a} :: CreateExperimentTemplateTargetInput)++instance+ Prelude.Hashable+ CreateExperimentTemplateTargetInput+ where+ hashWithSalt+ _salt+ CreateExperimentTemplateTargetInput' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` parameters+ `Prelude.hashWithSalt` resourceArns+ `Prelude.hashWithSalt` resourceTags+ `Prelude.hashWithSalt` resourceType+ `Prelude.hashWithSalt` selectionMode++instance+ Prelude.NFData+ CreateExperimentTemplateTargetInput+ where+ rnf CreateExperimentTemplateTargetInput' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf parameters+ `Prelude.seq` Prelude.rnf resourceArns+ `Prelude.seq` Prelude.rnf resourceTags+ `Prelude.seq` Prelude.rnf resourceType+ `Prelude.seq` Prelude.rnf selectionMode++instance+ Data.ToJSON+ CreateExperimentTemplateTargetInput+ where+ toJSON CreateExperimentTemplateTargetInput' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("filters" Data..=) Prelude.<$> filters,+ ("parameters" Data..=) Prelude.<$> parameters,+ ("resourceArns" Data..=) Prelude.<$> resourceArns,+ ("resourceTags" Data..=) Prelude.<$> resourceTags,+ Prelude.Just ("resourceType" Data..= resourceType),+ Prelude.Just+ ("selectionMode" Data..= selectionMode)+ ]+ )
+ gen/Amazonka/FIS/Types/Experiment.hs view
@@ -0,0 +1,212 @@+{-# 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.FIS.Types.Experiment+-- 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.FIS.Types.Experiment where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ExperimentAction+import Amazonka.FIS.Types.ExperimentLogConfiguration+import Amazonka.FIS.Types.ExperimentState+import Amazonka.FIS.Types.ExperimentStopCondition+import Amazonka.FIS.Types.ExperimentTarget+import qualified Amazonka.Prelude as Prelude++-- | Describes an experiment.+--+-- /See:/ 'newExperiment' smart constructor.+data Experiment = Experiment'+ { -- | The actions for the experiment.+ actions :: Prelude.Maybe (Prelude.HashMap Prelude.Text ExperimentAction),+ -- | The time that the experiment was created.+ creationTime :: Prelude.Maybe Data.POSIX,+ -- | The time that the experiment ended.+ endTime :: Prelude.Maybe Data.POSIX,+ -- | The ID of the experiment template.+ experimentTemplateId :: Prelude.Maybe Prelude.Text,+ -- | The ID of the experiment.+ id :: Prelude.Maybe Prelude.Text,+ -- | The configuration for experiment logging.+ logConfiguration :: Prelude.Maybe ExperimentLogConfiguration,+ -- | The Amazon Resource Name (ARN) of an IAM role that grants the FIS+ -- service permission to perform service actions on your behalf.+ roleArn :: Prelude.Maybe Prelude.Text,+ -- | The time that the experiment started.+ startTime :: Prelude.Maybe Data.POSIX,+ -- | The state of the experiment.+ state :: Prelude.Maybe ExperimentState,+ -- | The stop conditions for the experiment.+ stopConditions :: Prelude.Maybe [ExperimentStopCondition],+ -- | The tags for the experiment.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The targets for the experiment.+ targets :: Prelude.Maybe (Prelude.HashMap Prelude.Text ExperimentTarget)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Experiment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actions', 'experiment_actions' - The actions for the experiment.+--+-- 'creationTime', 'experiment_creationTime' - The time that the experiment was created.+--+-- 'endTime', 'experiment_endTime' - The time that the experiment ended.+--+-- 'experimentTemplateId', 'experiment_experimentTemplateId' - The ID of the experiment template.+--+-- 'id', 'experiment_id' - The ID of the experiment.+--+-- 'logConfiguration', 'experiment_logConfiguration' - The configuration for experiment logging.+--+-- 'roleArn', 'experiment_roleArn' - The Amazon Resource Name (ARN) of an IAM role that grants the FIS+-- service permission to perform service actions on your behalf.+--+-- 'startTime', 'experiment_startTime' - The time that the experiment started.+--+-- 'state', 'experiment_state' - The state of the experiment.+--+-- 'stopConditions', 'experiment_stopConditions' - The stop conditions for the experiment.+--+-- 'tags', 'experiment_tags' - The tags for the experiment.+--+-- 'targets', 'experiment_targets' - The targets for the experiment.+newExperiment ::+ Experiment+newExperiment =+ Experiment'+ { actions = Prelude.Nothing,+ creationTime = Prelude.Nothing,+ endTime = Prelude.Nothing,+ experimentTemplateId = Prelude.Nothing,+ id = Prelude.Nothing,+ logConfiguration = Prelude.Nothing,+ roleArn = Prelude.Nothing,+ startTime = Prelude.Nothing,+ state = Prelude.Nothing,+ stopConditions = Prelude.Nothing,+ tags = Prelude.Nothing,+ targets = Prelude.Nothing+ }++-- | The actions for the experiment.+experiment_actions :: Lens.Lens' Experiment (Prelude.Maybe (Prelude.HashMap Prelude.Text ExperimentAction))+experiment_actions = Lens.lens (\Experiment' {actions} -> actions) (\s@Experiment' {} a -> s {actions = a} :: Experiment) Prelude.. Lens.mapping Lens.coerced++-- | The time that the experiment was created.+experiment_creationTime :: Lens.Lens' Experiment (Prelude.Maybe Prelude.UTCTime)+experiment_creationTime = Lens.lens (\Experiment' {creationTime} -> creationTime) (\s@Experiment' {} a -> s {creationTime = a} :: Experiment) Prelude.. Lens.mapping Data._Time++-- | The time that the experiment ended.+experiment_endTime :: Lens.Lens' Experiment (Prelude.Maybe Prelude.UTCTime)+experiment_endTime = Lens.lens (\Experiment' {endTime} -> endTime) (\s@Experiment' {} a -> s {endTime = a} :: Experiment) Prelude.. Lens.mapping Data._Time++-- | The ID of the experiment template.+experiment_experimentTemplateId :: Lens.Lens' Experiment (Prelude.Maybe Prelude.Text)+experiment_experimentTemplateId = Lens.lens (\Experiment' {experimentTemplateId} -> experimentTemplateId) (\s@Experiment' {} a -> s {experimentTemplateId = a} :: Experiment)++-- | The ID of the experiment.+experiment_id :: Lens.Lens' Experiment (Prelude.Maybe Prelude.Text)+experiment_id = Lens.lens (\Experiment' {id} -> id) (\s@Experiment' {} a -> s {id = a} :: Experiment)++-- | The configuration for experiment logging.+experiment_logConfiguration :: Lens.Lens' Experiment (Prelude.Maybe ExperimentLogConfiguration)+experiment_logConfiguration = Lens.lens (\Experiment' {logConfiguration} -> logConfiguration) (\s@Experiment' {} a -> s {logConfiguration = a} :: Experiment)++-- | The Amazon Resource Name (ARN) of an IAM role that grants the FIS+-- service permission to perform service actions on your behalf.+experiment_roleArn :: Lens.Lens' Experiment (Prelude.Maybe Prelude.Text)+experiment_roleArn = Lens.lens (\Experiment' {roleArn} -> roleArn) (\s@Experiment' {} a -> s {roleArn = a} :: Experiment)++-- | The time that the experiment started.+experiment_startTime :: Lens.Lens' Experiment (Prelude.Maybe Prelude.UTCTime)+experiment_startTime = Lens.lens (\Experiment' {startTime} -> startTime) (\s@Experiment' {} a -> s {startTime = a} :: Experiment) Prelude.. Lens.mapping Data._Time++-- | The state of the experiment.+experiment_state :: Lens.Lens' Experiment (Prelude.Maybe ExperimentState)+experiment_state = Lens.lens (\Experiment' {state} -> state) (\s@Experiment' {} a -> s {state = a} :: Experiment)++-- | The stop conditions for the experiment.+experiment_stopConditions :: Lens.Lens' Experiment (Prelude.Maybe [ExperimentStopCondition])+experiment_stopConditions = Lens.lens (\Experiment' {stopConditions} -> stopConditions) (\s@Experiment' {} a -> s {stopConditions = a} :: Experiment) Prelude.. Lens.mapping Lens.coerced++-- | The tags for the experiment.+experiment_tags :: Lens.Lens' Experiment (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+experiment_tags = Lens.lens (\Experiment' {tags} -> tags) (\s@Experiment' {} a -> s {tags = a} :: Experiment) Prelude.. Lens.mapping Lens.coerced++-- | The targets for the experiment.+experiment_targets :: Lens.Lens' Experiment (Prelude.Maybe (Prelude.HashMap Prelude.Text ExperimentTarget))+experiment_targets = Lens.lens (\Experiment' {targets} -> targets) (\s@Experiment' {} a -> s {targets = a} :: Experiment) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Experiment where+ parseJSON =+ Data.withObject+ "Experiment"+ ( \x ->+ Experiment'+ Prelude.<$> (x Data..:? "actions" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "creationTime")+ Prelude.<*> (x Data..:? "endTime")+ Prelude.<*> (x Data..:? "experimentTemplateId")+ Prelude.<*> (x Data..:? "id")+ Prelude.<*> (x Data..:? "logConfiguration")+ Prelude.<*> (x Data..:? "roleArn")+ Prelude.<*> (x Data..:? "startTime")+ Prelude.<*> (x Data..:? "state")+ Prelude.<*> (x Data..:? "stopConditions" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "targets" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable Experiment where+ hashWithSalt _salt Experiment' {..} =+ _salt+ `Prelude.hashWithSalt` actions+ `Prelude.hashWithSalt` creationTime+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` experimentTemplateId+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` logConfiguration+ `Prelude.hashWithSalt` roleArn+ `Prelude.hashWithSalt` startTime+ `Prelude.hashWithSalt` state+ `Prelude.hashWithSalt` stopConditions+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` targets++instance Prelude.NFData Experiment where+ rnf Experiment' {..} =+ Prelude.rnf actions+ `Prelude.seq` Prelude.rnf creationTime+ `Prelude.seq` Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf experimentTemplateId+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf logConfiguration+ `Prelude.seq` Prelude.rnf roleArn+ `Prelude.seq` Prelude.rnf startTime+ `Prelude.seq` Prelude.rnf state+ `Prelude.seq` Prelude.rnf stopConditions+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf targets
+ gen/Amazonka/FIS/Types/ExperimentAction.hs view
@@ -0,0 +1,157 @@+{-# 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.FIS.Types.ExperimentAction+-- 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.FIS.Types.ExperimentAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ExperimentActionState+import qualified Amazonka.Prelude as Prelude++-- | Describes the action for an experiment.+--+-- /See:/ 'newExperimentAction' smart constructor.+data ExperimentAction = ExperimentAction'+ { -- | The ID of the action.+ actionId :: Prelude.Maybe Prelude.Text,+ -- | The description for the action.+ description :: Prelude.Maybe Prelude.Text,+ -- | The time that the action ended.+ endTime :: Prelude.Maybe Data.POSIX,+ -- | The parameters for the action.+ parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The name of the action that must be completed before this action starts.+ startAfter :: Prelude.Maybe [Prelude.Text],+ -- | The time that the action started.+ startTime :: Prelude.Maybe Data.POSIX,+ -- | The state of the action.+ state :: Prelude.Maybe ExperimentActionState,+ -- | The targets for the action.+ targets :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actionId', 'experimentAction_actionId' - The ID of the action.+--+-- 'description', 'experimentAction_description' - The description for the action.+--+-- 'endTime', 'experimentAction_endTime' - The time that the action ended.+--+-- 'parameters', 'experimentAction_parameters' - The parameters for the action.+--+-- 'startAfter', 'experimentAction_startAfter' - The name of the action that must be completed before this action starts.+--+-- 'startTime', 'experimentAction_startTime' - The time that the action started.+--+-- 'state', 'experimentAction_state' - The state of the action.+--+-- 'targets', 'experimentAction_targets' - The targets for the action.+newExperimentAction ::+ ExperimentAction+newExperimentAction =+ ExperimentAction'+ { actionId = Prelude.Nothing,+ description = Prelude.Nothing,+ endTime = Prelude.Nothing,+ parameters = Prelude.Nothing,+ startAfter = Prelude.Nothing,+ startTime = Prelude.Nothing,+ state = Prelude.Nothing,+ targets = Prelude.Nothing+ }++-- | The ID of the action.+experimentAction_actionId :: Lens.Lens' ExperimentAction (Prelude.Maybe Prelude.Text)+experimentAction_actionId = Lens.lens (\ExperimentAction' {actionId} -> actionId) (\s@ExperimentAction' {} a -> s {actionId = a} :: ExperimentAction)++-- | The description for the action.+experimentAction_description :: Lens.Lens' ExperimentAction (Prelude.Maybe Prelude.Text)+experimentAction_description = Lens.lens (\ExperimentAction' {description} -> description) (\s@ExperimentAction' {} a -> s {description = a} :: ExperimentAction)++-- | The time that the action ended.+experimentAction_endTime :: Lens.Lens' ExperimentAction (Prelude.Maybe Prelude.UTCTime)+experimentAction_endTime = Lens.lens (\ExperimentAction' {endTime} -> endTime) (\s@ExperimentAction' {} a -> s {endTime = a} :: ExperimentAction) Prelude.. Lens.mapping Data._Time++-- | The parameters for the action.+experimentAction_parameters :: Lens.Lens' ExperimentAction (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+experimentAction_parameters = Lens.lens (\ExperimentAction' {parameters} -> parameters) (\s@ExperimentAction' {} a -> s {parameters = a} :: ExperimentAction) Prelude.. Lens.mapping Lens.coerced++-- | The name of the action that must be completed before this action starts.+experimentAction_startAfter :: Lens.Lens' ExperimentAction (Prelude.Maybe [Prelude.Text])+experimentAction_startAfter = Lens.lens (\ExperimentAction' {startAfter} -> startAfter) (\s@ExperimentAction' {} a -> s {startAfter = a} :: ExperimentAction) Prelude.. Lens.mapping Lens.coerced++-- | The time that the action started.+experimentAction_startTime :: Lens.Lens' ExperimentAction (Prelude.Maybe Prelude.UTCTime)+experimentAction_startTime = Lens.lens (\ExperimentAction' {startTime} -> startTime) (\s@ExperimentAction' {} a -> s {startTime = a} :: ExperimentAction) Prelude.. Lens.mapping Data._Time++-- | The state of the action.+experimentAction_state :: Lens.Lens' ExperimentAction (Prelude.Maybe ExperimentActionState)+experimentAction_state = Lens.lens (\ExperimentAction' {state} -> state) (\s@ExperimentAction' {} a -> s {state = a} :: ExperimentAction)++-- | The targets for the action.+experimentAction_targets :: Lens.Lens' ExperimentAction (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+experimentAction_targets = Lens.lens (\ExperimentAction' {targets} -> targets) (\s@ExperimentAction' {} a -> s {targets = a} :: ExperimentAction) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ExperimentAction where+ parseJSON =+ Data.withObject+ "ExperimentAction"+ ( \x ->+ ExperimentAction'+ Prelude.<$> (x Data..:? "actionId")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "endTime")+ Prelude.<*> (x Data..:? "parameters" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "startAfter" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "startTime")+ Prelude.<*> (x Data..:? "state")+ Prelude.<*> (x Data..:? "targets" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ExperimentAction where+ hashWithSalt _salt ExperimentAction' {..} =+ _salt+ `Prelude.hashWithSalt` actionId+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` parameters+ `Prelude.hashWithSalt` startAfter+ `Prelude.hashWithSalt` startTime+ `Prelude.hashWithSalt` state+ `Prelude.hashWithSalt` targets++instance Prelude.NFData ExperimentAction where+ rnf ExperimentAction' {..} =+ Prelude.rnf actionId+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf parameters+ `Prelude.seq` Prelude.rnf startAfter+ `Prelude.seq` Prelude.rnf startTime+ `Prelude.seq` Prelude.rnf state+ `Prelude.seq` Prelude.rnf targets
+ gen/Amazonka/FIS/Types/ExperimentActionState.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.Types.ExperimentActionState+-- 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.FIS.Types.ExperimentActionState where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ExperimentActionStatus+import qualified Amazonka.Prelude as Prelude++-- | Describes the state of an action.+--+-- /See:/ 'newExperimentActionState' smart constructor.+data ExperimentActionState = ExperimentActionState'+ { -- | The reason for the state.+ reason :: Prelude.Maybe Prelude.Text,+ -- | The state of the action.+ status :: Prelude.Maybe ExperimentActionStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentActionState' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'reason', 'experimentActionState_reason' - The reason for the state.+--+-- 'status', 'experimentActionState_status' - The state of the action.+newExperimentActionState ::+ ExperimentActionState+newExperimentActionState =+ ExperimentActionState'+ { reason = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The reason for the state.+experimentActionState_reason :: Lens.Lens' ExperimentActionState (Prelude.Maybe Prelude.Text)+experimentActionState_reason = Lens.lens (\ExperimentActionState' {reason} -> reason) (\s@ExperimentActionState' {} a -> s {reason = a} :: ExperimentActionState)++-- | The state of the action.+experimentActionState_status :: Lens.Lens' ExperimentActionState (Prelude.Maybe ExperimentActionStatus)+experimentActionState_status = Lens.lens (\ExperimentActionState' {status} -> status) (\s@ExperimentActionState' {} a -> s {status = a} :: ExperimentActionState)++instance Data.FromJSON ExperimentActionState where+ parseJSON =+ Data.withObject+ "ExperimentActionState"+ ( \x ->+ ExperimentActionState'+ Prelude.<$> (x Data..:? "reason")+ Prelude.<*> (x Data..:? "status")+ )++instance Prelude.Hashable ExperimentActionState where+ hashWithSalt _salt ExperimentActionState' {..} =+ _salt+ `Prelude.hashWithSalt` reason+ `Prelude.hashWithSalt` status++instance Prelude.NFData ExperimentActionState where+ rnf ExperimentActionState' {..} =+ Prelude.rnf reason `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/FIS/Types/ExperimentActionStatus.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.Types.ExperimentActionStatus+-- 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.FIS.Types.ExperimentActionStatus+ ( ExperimentActionStatus+ ( ..,+ ExperimentActionStatus_Cancelled,+ ExperimentActionStatus_Completed,+ ExperimentActionStatus_Failed,+ ExperimentActionStatus_Initiating,+ ExperimentActionStatus_Pending,+ ExperimentActionStatus_Running,+ ExperimentActionStatus_Stopped,+ ExperimentActionStatus_Stopping+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ExperimentActionStatus = ExperimentActionStatus'+ { fromExperimentActionStatus ::+ 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 ExperimentActionStatus_Cancelled :: ExperimentActionStatus+pattern ExperimentActionStatus_Cancelled = ExperimentActionStatus' "cancelled"++pattern ExperimentActionStatus_Completed :: ExperimentActionStatus+pattern ExperimentActionStatus_Completed = ExperimentActionStatus' "completed"++pattern ExperimentActionStatus_Failed :: ExperimentActionStatus+pattern ExperimentActionStatus_Failed = ExperimentActionStatus' "failed"++pattern ExperimentActionStatus_Initiating :: ExperimentActionStatus+pattern ExperimentActionStatus_Initiating = ExperimentActionStatus' "initiating"++pattern ExperimentActionStatus_Pending :: ExperimentActionStatus+pattern ExperimentActionStatus_Pending = ExperimentActionStatus' "pending"++pattern ExperimentActionStatus_Running :: ExperimentActionStatus+pattern ExperimentActionStatus_Running = ExperimentActionStatus' "running"++pattern ExperimentActionStatus_Stopped :: ExperimentActionStatus+pattern ExperimentActionStatus_Stopped = ExperimentActionStatus' "stopped"++pattern ExperimentActionStatus_Stopping :: ExperimentActionStatus+pattern ExperimentActionStatus_Stopping = ExperimentActionStatus' "stopping"++{-# COMPLETE+ ExperimentActionStatus_Cancelled,+ ExperimentActionStatus_Completed,+ ExperimentActionStatus_Failed,+ ExperimentActionStatus_Initiating,+ ExperimentActionStatus_Pending,+ ExperimentActionStatus_Running,+ ExperimentActionStatus_Stopped,+ ExperimentActionStatus_Stopping,+ ExperimentActionStatus'+ #-}
+ gen/Amazonka/FIS/Types/ExperimentCloudWatchLogsLogConfiguration.hs view
@@ -0,0 +1,87 @@+{-# 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.FIS.Types.ExperimentCloudWatchLogsLogConfiguration+-- 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.FIS.Types.ExperimentCloudWatchLogsLogConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes the configuration for experiment logging to Amazon CloudWatch+-- Logs.+--+-- /See:/ 'newExperimentCloudWatchLogsLogConfiguration' smart constructor.+data ExperimentCloudWatchLogsLogConfiguration = ExperimentCloudWatchLogsLogConfiguration'+ { -- | The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs+ -- log group.+ logGroupArn :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentCloudWatchLogsLogConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logGroupArn', 'experimentCloudWatchLogsLogConfiguration_logGroupArn' - The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs+-- log group.+newExperimentCloudWatchLogsLogConfiguration ::+ ExperimentCloudWatchLogsLogConfiguration+newExperimentCloudWatchLogsLogConfiguration =+ ExperimentCloudWatchLogsLogConfiguration'+ { logGroupArn =+ Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs+-- log group.+experimentCloudWatchLogsLogConfiguration_logGroupArn :: Lens.Lens' ExperimentCloudWatchLogsLogConfiguration (Prelude.Maybe Prelude.Text)+experimentCloudWatchLogsLogConfiguration_logGroupArn = Lens.lens (\ExperimentCloudWatchLogsLogConfiguration' {logGroupArn} -> logGroupArn) (\s@ExperimentCloudWatchLogsLogConfiguration' {} a -> s {logGroupArn = a} :: ExperimentCloudWatchLogsLogConfiguration)++instance+ Data.FromJSON+ ExperimentCloudWatchLogsLogConfiguration+ where+ parseJSON =+ Data.withObject+ "ExperimentCloudWatchLogsLogConfiguration"+ ( \x ->+ ExperimentCloudWatchLogsLogConfiguration'+ Prelude.<$> (x Data..:? "logGroupArn")+ )++instance+ Prelude.Hashable+ ExperimentCloudWatchLogsLogConfiguration+ where+ hashWithSalt+ _salt+ ExperimentCloudWatchLogsLogConfiguration' {..} =+ _salt `Prelude.hashWithSalt` logGroupArn++instance+ Prelude.NFData+ ExperimentCloudWatchLogsLogConfiguration+ where+ rnf ExperimentCloudWatchLogsLogConfiguration' {..} =+ Prelude.rnf logGroupArn
+ gen/Amazonka/FIS/Types/ExperimentLogConfiguration.hs view
@@ -0,0 +1,99 @@+{-# 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.FIS.Types.ExperimentLogConfiguration+-- 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.FIS.Types.ExperimentLogConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ExperimentCloudWatchLogsLogConfiguration+import Amazonka.FIS.Types.ExperimentS3LogConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Describes the configuration for experiment logging.+--+-- /See:/ 'newExperimentLogConfiguration' smart constructor.+data ExperimentLogConfiguration = ExperimentLogConfiguration'+ { -- | The configuration for experiment logging to Amazon CloudWatch Logs.+ cloudWatchLogsConfiguration :: Prelude.Maybe ExperimentCloudWatchLogsLogConfiguration,+ -- | The schema version.+ logSchemaVersion :: Prelude.Maybe Prelude.Int,+ -- | The configuration for experiment logging to Amazon S3.+ s3Configuration :: Prelude.Maybe ExperimentS3LogConfiguration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentLogConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudWatchLogsConfiguration', 'experimentLogConfiguration_cloudWatchLogsConfiguration' - The configuration for experiment logging to Amazon CloudWatch Logs.+--+-- 'logSchemaVersion', 'experimentLogConfiguration_logSchemaVersion' - The schema version.+--+-- 's3Configuration', 'experimentLogConfiguration_s3Configuration' - The configuration for experiment logging to Amazon S3.+newExperimentLogConfiguration ::+ ExperimentLogConfiguration+newExperimentLogConfiguration =+ ExperimentLogConfiguration'+ { cloudWatchLogsConfiguration =+ Prelude.Nothing,+ logSchemaVersion = Prelude.Nothing,+ s3Configuration = Prelude.Nothing+ }++-- | The configuration for experiment logging to Amazon CloudWatch Logs.+experimentLogConfiguration_cloudWatchLogsConfiguration :: Lens.Lens' ExperimentLogConfiguration (Prelude.Maybe ExperimentCloudWatchLogsLogConfiguration)+experimentLogConfiguration_cloudWatchLogsConfiguration = Lens.lens (\ExperimentLogConfiguration' {cloudWatchLogsConfiguration} -> cloudWatchLogsConfiguration) (\s@ExperimentLogConfiguration' {} a -> s {cloudWatchLogsConfiguration = a} :: ExperimentLogConfiguration)++-- | The schema version.+experimentLogConfiguration_logSchemaVersion :: Lens.Lens' ExperimentLogConfiguration (Prelude.Maybe Prelude.Int)+experimentLogConfiguration_logSchemaVersion = Lens.lens (\ExperimentLogConfiguration' {logSchemaVersion} -> logSchemaVersion) (\s@ExperimentLogConfiguration' {} a -> s {logSchemaVersion = a} :: ExperimentLogConfiguration)++-- | The configuration for experiment logging to Amazon S3.+experimentLogConfiguration_s3Configuration :: Lens.Lens' ExperimentLogConfiguration (Prelude.Maybe ExperimentS3LogConfiguration)+experimentLogConfiguration_s3Configuration = Lens.lens (\ExperimentLogConfiguration' {s3Configuration} -> s3Configuration) (\s@ExperimentLogConfiguration' {} a -> s {s3Configuration = a} :: ExperimentLogConfiguration)++instance Data.FromJSON ExperimentLogConfiguration where+ parseJSON =+ Data.withObject+ "ExperimentLogConfiguration"+ ( \x ->+ ExperimentLogConfiguration'+ Prelude.<$> (x Data..:? "cloudWatchLogsConfiguration")+ Prelude.<*> (x Data..:? "logSchemaVersion")+ Prelude.<*> (x Data..:? "s3Configuration")+ )++instance Prelude.Hashable ExperimentLogConfiguration where+ hashWithSalt _salt ExperimentLogConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` cloudWatchLogsConfiguration+ `Prelude.hashWithSalt` logSchemaVersion+ `Prelude.hashWithSalt` s3Configuration++instance Prelude.NFData ExperimentLogConfiguration where+ rnf ExperimentLogConfiguration' {..} =+ Prelude.rnf cloudWatchLogsConfiguration+ `Prelude.seq` Prelude.rnf logSchemaVersion+ `Prelude.seq` Prelude.rnf s3Configuration
+ gen/Amazonka/FIS/Types/ExperimentS3LogConfiguration.hs view
@@ -0,0 +1,88 @@+{-# 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.FIS.Types.ExperimentS3LogConfiguration+-- 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.FIS.Types.ExperimentS3LogConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes the configuration for experiment logging to Amazon S3.+--+-- /See:/ 'newExperimentS3LogConfiguration' smart constructor.+data ExperimentS3LogConfiguration = ExperimentS3LogConfiguration'+ { -- | The name of the destination bucket.+ bucketName :: Prelude.Maybe Prelude.Text,+ -- | The bucket prefix.+ prefix :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentS3LogConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucketName', 'experimentS3LogConfiguration_bucketName' - The name of the destination bucket.+--+-- 'prefix', 'experimentS3LogConfiguration_prefix' - The bucket prefix.+newExperimentS3LogConfiguration ::+ ExperimentS3LogConfiguration+newExperimentS3LogConfiguration =+ ExperimentS3LogConfiguration'+ { bucketName =+ Prelude.Nothing,+ prefix = Prelude.Nothing+ }++-- | The name of the destination bucket.+experimentS3LogConfiguration_bucketName :: Lens.Lens' ExperimentS3LogConfiguration (Prelude.Maybe Prelude.Text)+experimentS3LogConfiguration_bucketName = Lens.lens (\ExperimentS3LogConfiguration' {bucketName} -> bucketName) (\s@ExperimentS3LogConfiguration' {} a -> s {bucketName = a} :: ExperimentS3LogConfiguration)++-- | The bucket prefix.+experimentS3LogConfiguration_prefix :: Lens.Lens' ExperimentS3LogConfiguration (Prelude.Maybe Prelude.Text)+experimentS3LogConfiguration_prefix = Lens.lens (\ExperimentS3LogConfiguration' {prefix} -> prefix) (\s@ExperimentS3LogConfiguration' {} a -> s {prefix = a} :: ExperimentS3LogConfiguration)++instance Data.FromJSON ExperimentS3LogConfiguration where+ parseJSON =+ Data.withObject+ "ExperimentS3LogConfiguration"+ ( \x ->+ ExperimentS3LogConfiguration'+ Prelude.<$> (x Data..:? "bucketName")+ Prelude.<*> (x Data..:? "prefix")+ )++instance+ Prelude.Hashable+ ExperimentS3LogConfiguration+ where+ hashWithSalt _salt ExperimentS3LogConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` bucketName+ `Prelude.hashWithSalt` prefix++instance Prelude.NFData ExperimentS3LogConfiguration where+ rnf ExperimentS3LogConfiguration' {..} =+ Prelude.rnf bucketName+ `Prelude.seq` Prelude.rnf prefix
+ gen/Amazonka/FIS/Types/ExperimentState.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.Types.ExperimentState+-- 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.FIS.Types.ExperimentState where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ExperimentStatus+import qualified Amazonka.Prelude as Prelude++-- | Describes the state of an experiment.+--+-- /See:/ 'newExperimentState' smart constructor.+data ExperimentState = ExperimentState'+ { -- | The reason for the state.+ reason :: Prelude.Maybe Prelude.Text,+ -- | The state of the experiment.+ status :: Prelude.Maybe ExperimentStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentState' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'reason', 'experimentState_reason' - The reason for the state.+--+-- 'status', 'experimentState_status' - The state of the experiment.+newExperimentState ::+ ExperimentState+newExperimentState =+ ExperimentState'+ { reason = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The reason for the state.+experimentState_reason :: Lens.Lens' ExperimentState (Prelude.Maybe Prelude.Text)+experimentState_reason = Lens.lens (\ExperimentState' {reason} -> reason) (\s@ExperimentState' {} a -> s {reason = a} :: ExperimentState)++-- | The state of the experiment.+experimentState_status :: Lens.Lens' ExperimentState (Prelude.Maybe ExperimentStatus)+experimentState_status = Lens.lens (\ExperimentState' {status} -> status) (\s@ExperimentState' {} a -> s {status = a} :: ExperimentState)++instance Data.FromJSON ExperimentState where+ parseJSON =+ Data.withObject+ "ExperimentState"+ ( \x ->+ ExperimentState'+ Prelude.<$> (x Data..:? "reason")+ Prelude.<*> (x Data..:? "status")+ )++instance Prelude.Hashable ExperimentState where+ hashWithSalt _salt ExperimentState' {..} =+ _salt+ `Prelude.hashWithSalt` reason+ `Prelude.hashWithSalt` status++instance Prelude.NFData ExperimentState where+ rnf ExperimentState' {..} =+ Prelude.rnf reason `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/FIS/Types/ExperimentStatus.hs view
@@ -0,0 +1,96 @@+{-# 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.FIS.Types.ExperimentStatus+-- 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.FIS.Types.ExperimentStatus+ ( ExperimentStatus+ ( ..,+ ExperimentStatus_Completed,+ ExperimentStatus_Failed,+ ExperimentStatus_Initiating,+ ExperimentStatus_Pending,+ ExperimentStatus_Running,+ ExperimentStatus_Stopped,+ ExperimentStatus_Stopping+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ExperimentStatus = ExperimentStatus'+ { fromExperimentStatus ::+ 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 ExperimentStatus_Completed :: ExperimentStatus+pattern ExperimentStatus_Completed = ExperimentStatus' "completed"++pattern ExperimentStatus_Failed :: ExperimentStatus+pattern ExperimentStatus_Failed = ExperimentStatus' "failed"++pattern ExperimentStatus_Initiating :: ExperimentStatus+pattern ExperimentStatus_Initiating = ExperimentStatus' "initiating"++pattern ExperimentStatus_Pending :: ExperimentStatus+pattern ExperimentStatus_Pending = ExperimentStatus' "pending"++pattern ExperimentStatus_Running :: ExperimentStatus+pattern ExperimentStatus_Running = ExperimentStatus' "running"++pattern ExperimentStatus_Stopped :: ExperimentStatus+pattern ExperimentStatus_Stopped = ExperimentStatus' "stopped"++pattern ExperimentStatus_Stopping :: ExperimentStatus+pattern ExperimentStatus_Stopping = ExperimentStatus' "stopping"++{-# COMPLETE+ ExperimentStatus_Completed,+ ExperimentStatus_Failed,+ ExperimentStatus_Initiating,+ ExperimentStatus_Pending,+ ExperimentStatus_Running,+ ExperimentStatus_Stopped,+ ExperimentStatus_Stopping,+ ExperimentStatus'+ #-}
+ gen/Amazonka/FIS/Types/ExperimentStopCondition.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.Types.ExperimentStopCondition+-- 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.FIS.Types.ExperimentStopCondition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes the stop condition for an experiment.+--+-- /See:/ 'newExperimentStopCondition' smart constructor.+data ExperimentStopCondition = ExperimentStopCondition'+ { -- | The source for the stop condition.+ source :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable.+ value :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentStopCondition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'source', 'experimentStopCondition_source' - The source for the stop condition.+--+-- 'value', 'experimentStopCondition_value' - The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable.+newExperimentStopCondition ::+ ExperimentStopCondition+newExperimentStopCondition =+ ExperimentStopCondition'+ { source = Prelude.Nothing,+ value = Prelude.Nothing+ }++-- | The source for the stop condition.+experimentStopCondition_source :: Lens.Lens' ExperimentStopCondition (Prelude.Maybe Prelude.Text)+experimentStopCondition_source = Lens.lens (\ExperimentStopCondition' {source} -> source) (\s@ExperimentStopCondition' {} a -> s {source = a} :: ExperimentStopCondition)++-- | The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable.+experimentStopCondition_value :: Lens.Lens' ExperimentStopCondition (Prelude.Maybe Prelude.Text)+experimentStopCondition_value = Lens.lens (\ExperimentStopCondition' {value} -> value) (\s@ExperimentStopCondition' {} a -> s {value = a} :: ExperimentStopCondition)++instance Data.FromJSON ExperimentStopCondition where+ parseJSON =+ Data.withObject+ "ExperimentStopCondition"+ ( \x ->+ ExperimentStopCondition'+ Prelude.<$> (x Data..:? "source")+ Prelude.<*> (x Data..:? "value")+ )++instance Prelude.Hashable ExperimentStopCondition where+ hashWithSalt _salt ExperimentStopCondition' {..} =+ _salt+ `Prelude.hashWithSalt` source+ `Prelude.hashWithSalt` value++instance Prelude.NFData ExperimentStopCondition where+ rnf ExperimentStopCondition' {..} =+ Prelude.rnf source `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/FIS/Types/ExperimentSummary.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.Types.ExperimentSummary+-- 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.FIS.Types.ExperimentSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ExperimentState+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of an experiment.+--+-- /See:/ 'newExperimentSummary' smart constructor.+data ExperimentSummary = ExperimentSummary'+ { -- | The time that the experiment was created.+ creationTime :: Prelude.Maybe Data.POSIX,+ -- | The ID of the experiment template.+ experimentTemplateId :: Prelude.Maybe Prelude.Text,+ -- | The ID of the experiment.+ id :: Prelude.Maybe Prelude.Text,+ -- | The state of the experiment.+ state :: Prelude.Maybe ExperimentState,+ -- | The tags for the experiment.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTime', 'experimentSummary_creationTime' - The time that the experiment was created.+--+-- 'experimentTemplateId', 'experimentSummary_experimentTemplateId' - The ID of the experiment template.+--+-- 'id', 'experimentSummary_id' - The ID of the experiment.+--+-- 'state', 'experimentSummary_state' - The state of the experiment.+--+-- 'tags', 'experimentSummary_tags' - The tags for the experiment.+newExperimentSummary ::+ ExperimentSummary+newExperimentSummary =+ ExperimentSummary'+ { creationTime = Prelude.Nothing,+ experimentTemplateId = Prelude.Nothing,+ id = Prelude.Nothing,+ state = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | The time that the experiment was created.+experimentSummary_creationTime :: Lens.Lens' ExperimentSummary (Prelude.Maybe Prelude.UTCTime)+experimentSummary_creationTime = Lens.lens (\ExperimentSummary' {creationTime} -> creationTime) (\s@ExperimentSummary' {} a -> s {creationTime = a} :: ExperimentSummary) Prelude.. Lens.mapping Data._Time++-- | The ID of the experiment template.+experimentSummary_experimentTemplateId :: Lens.Lens' ExperimentSummary (Prelude.Maybe Prelude.Text)+experimentSummary_experimentTemplateId = Lens.lens (\ExperimentSummary' {experimentTemplateId} -> experimentTemplateId) (\s@ExperimentSummary' {} a -> s {experimentTemplateId = a} :: ExperimentSummary)++-- | The ID of the experiment.+experimentSummary_id :: Lens.Lens' ExperimentSummary (Prelude.Maybe Prelude.Text)+experimentSummary_id = Lens.lens (\ExperimentSummary' {id} -> id) (\s@ExperimentSummary' {} a -> s {id = a} :: ExperimentSummary)++-- | The state of the experiment.+experimentSummary_state :: Lens.Lens' ExperimentSummary (Prelude.Maybe ExperimentState)+experimentSummary_state = Lens.lens (\ExperimentSummary' {state} -> state) (\s@ExperimentSummary' {} a -> s {state = a} :: ExperimentSummary)++-- | The tags for the experiment.+experimentSummary_tags :: Lens.Lens' ExperimentSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+experimentSummary_tags = Lens.lens (\ExperimentSummary' {tags} -> tags) (\s@ExperimentSummary' {} a -> s {tags = a} :: ExperimentSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ExperimentSummary where+ parseJSON =+ Data.withObject+ "ExperimentSummary"+ ( \x ->+ ExperimentSummary'+ Prelude.<$> (x Data..:? "creationTime")+ Prelude.<*> (x Data..:? "experimentTemplateId")+ Prelude.<*> (x Data..:? "id")+ Prelude.<*> (x Data..:? "state")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ExperimentSummary where+ hashWithSalt _salt ExperimentSummary' {..} =+ _salt+ `Prelude.hashWithSalt` creationTime+ `Prelude.hashWithSalt` experimentTemplateId+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` state+ `Prelude.hashWithSalt` tags++instance Prelude.NFData ExperimentSummary where+ rnf ExperimentSummary' {..} =+ Prelude.rnf creationTime+ `Prelude.seq` Prelude.rnf experimentTemplateId+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf state+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/FIS/Types/ExperimentTarget.hs view
@@ -0,0 +1,136 @@+{-# 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.FIS.Types.ExperimentTarget+-- 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.FIS.Types.ExperimentTarget where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ExperimentTargetFilter+import qualified Amazonka.Prelude as Prelude++-- | Describes a target for an experiment.+--+-- /See:/ 'newExperimentTarget' smart constructor.+data ExperimentTarget = ExperimentTarget'+ { -- | The filters to apply to identify target resources using specific+ -- attributes.+ filters :: Prelude.Maybe [ExperimentTargetFilter],+ -- | The resource type parameters.+ parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The Amazon Resource Names (ARNs) of the resources.+ resourceArns :: Prelude.Maybe [Prelude.Text],+ -- | The tags for the target resources.+ resourceTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The resource type.+ resourceType :: Prelude.Maybe Prelude.Text,+ -- | Scopes the identified resources to a specific count or percentage.+ selectionMode :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentTarget' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'experimentTarget_filters' - The filters to apply to identify target resources using specific+-- attributes.+--+-- 'parameters', 'experimentTarget_parameters' - The resource type parameters.+--+-- 'resourceArns', 'experimentTarget_resourceArns' - The Amazon Resource Names (ARNs) of the resources.+--+-- 'resourceTags', 'experimentTarget_resourceTags' - The tags for the target resources.+--+-- 'resourceType', 'experimentTarget_resourceType' - The resource type.+--+-- 'selectionMode', 'experimentTarget_selectionMode' - Scopes the identified resources to a specific count or percentage.+newExperimentTarget ::+ ExperimentTarget+newExperimentTarget =+ ExperimentTarget'+ { filters = Prelude.Nothing,+ parameters = Prelude.Nothing,+ resourceArns = Prelude.Nothing,+ resourceTags = Prelude.Nothing,+ resourceType = Prelude.Nothing,+ selectionMode = Prelude.Nothing+ }++-- | The filters to apply to identify target resources using specific+-- attributes.+experimentTarget_filters :: Lens.Lens' ExperimentTarget (Prelude.Maybe [ExperimentTargetFilter])+experimentTarget_filters = Lens.lens (\ExperimentTarget' {filters} -> filters) (\s@ExperimentTarget' {} a -> s {filters = a} :: ExperimentTarget) Prelude.. Lens.mapping Lens.coerced++-- | The resource type parameters.+experimentTarget_parameters :: Lens.Lens' ExperimentTarget (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+experimentTarget_parameters = Lens.lens (\ExperimentTarget' {parameters} -> parameters) (\s@ExperimentTarget' {} a -> s {parameters = a} :: ExperimentTarget) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Names (ARNs) of the resources.+experimentTarget_resourceArns :: Lens.Lens' ExperimentTarget (Prelude.Maybe [Prelude.Text])+experimentTarget_resourceArns = Lens.lens (\ExperimentTarget' {resourceArns} -> resourceArns) (\s@ExperimentTarget' {} a -> s {resourceArns = a} :: ExperimentTarget) Prelude.. Lens.mapping Lens.coerced++-- | The tags for the target resources.+experimentTarget_resourceTags :: Lens.Lens' ExperimentTarget (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+experimentTarget_resourceTags = Lens.lens (\ExperimentTarget' {resourceTags} -> resourceTags) (\s@ExperimentTarget' {} a -> s {resourceTags = a} :: ExperimentTarget) Prelude.. Lens.mapping Lens.coerced++-- | The resource type.+experimentTarget_resourceType :: Lens.Lens' ExperimentTarget (Prelude.Maybe Prelude.Text)+experimentTarget_resourceType = Lens.lens (\ExperimentTarget' {resourceType} -> resourceType) (\s@ExperimentTarget' {} a -> s {resourceType = a} :: ExperimentTarget)++-- | Scopes the identified resources to a specific count or percentage.+experimentTarget_selectionMode :: Lens.Lens' ExperimentTarget (Prelude.Maybe Prelude.Text)+experimentTarget_selectionMode = Lens.lens (\ExperimentTarget' {selectionMode} -> selectionMode) (\s@ExperimentTarget' {} a -> s {selectionMode = a} :: ExperimentTarget)++instance Data.FromJSON ExperimentTarget where+ parseJSON =+ Data.withObject+ "ExperimentTarget"+ ( \x ->+ ExperimentTarget'+ Prelude.<$> (x Data..:? "filters" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "parameters" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "resourceArns" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "resourceTags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "resourceType")+ Prelude.<*> (x Data..:? "selectionMode")+ )++instance Prelude.Hashable ExperimentTarget where+ hashWithSalt _salt ExperimentTarget' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` parameters+ `Prelude.hashWithSalt` resourceArns+ `Prelude.hashWithSalt` resourceTags+ `Prelude.hashWithSalt` resourceType+ `Prelude.hashWithSalt` selectionMode++instance Prelude.NFData ExperimentTarget where+ rnf ExperimentTarget' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf parameters+ `Prelude.seq` Prelude.rnf resourceArns+ `Prelude.seq` Prelude.rnf resourceTags+ `Prelude.seq` Prelude.rnf resourceType+ `Prelude.seq` Prelude.rnf selectionMode
+ gen/Amazonka/FIS/Types/ExperimentTargetFilter.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.Types.ExperimentTargetFilter+-- 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.FIS.Types.ExperimentTargetFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes a filter used for the target resources in an experiment.+--+-- /See:/ 'newExperimentTargetFilter' smart constructor.+data ExperimentTargetFilter = ExperimentTargetFilter'+ { -- | The attribute path for the filter.+ path :: Prelude.Maybe Prelude.Text,+ -- | The attribute values for the filter.+ values :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentTargetFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'path', 'experimentTargetFilter_path' - The attribute path for the filter.+--+-- 'values', 'experimentTargetFilter_values' - The attribute values for the filter.+newExperimentTargetFilter ::+ ExperimentTargetFilter+newExperimentTargetFilter =+ ExperimentTargetFilter'+ { path = Prelude.Nothing,+ values = Prelude.Nothing+ }++-- | The attribute path for the filter.+experimentTargetFilter_path :: Lens.Lens' ExperimentTargetFilter (Prelude.Maybe Prelude.Text)+experimentTargetFilter_path = Lens.lens (\ExperimentTargetFilter' {path} -> path) (\s@ExperimentTargetFilter' {} a -> s {path = a} :: ExperimentTargetFilter)++-- | The attribute values for the filter.+experimentTargetFilter_values :: Lens.Lens' ExperimentTargetFilter (Prelude.Maybe [Prelude.Text])+experimentTargetFilter_values = Lens.lens (\ExperimentTargetFilter' {values} -> values) (\s@ExperimentTargetFilter' {} a -> s {values = a} :: ExperimentTargetFilter) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ExperimentTargetFilter where+ parseJSON =+ Data.withObject+ "ExperimentTargetFilter"+ ( \x ->+ ExperimentTargetFilter'+ Prelude.<$> (x Data..:? "path")+ Prelude.<*> (x Data..:? "values" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ExperimentTargetFilter where+ hashWithSalt _salt ExperimentTargetFilter' {..} =+ _salt+ `Prelude.hashWithSalt` path+ `Prelude.hashWithSalt` values++instance Prelude.NFData ExperimentTargetFilter where+ rnf ExperimentTargetFilter' {..} =+ Prelude.rnf path `Prelude.seq` Prelude.rnf values
+ gen/Amazonka/FIS/Types/ExperimentTemplate.hs view
@@ -0,0 +1,184 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.Types.ExperimentTemplate+-- 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.FIS.Types.ExperimentTemplate where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ExperimentTemplateAction+import Amazonka.FIS.Types.ExperimentTemplateLogConfiguration+import Amazonka.FIS.Types.ExperimentTemplateStopCondition+import Amazonka.FIS.Types.ExperimentTemplateTarget+import qualified Amazonka.Prelude as Prelude++-- | Describes an experiment template.+--+-- /See:/ 'newExperimentTemplate' smart constructor.+data ExperimentTemplate = ExperimentTemplate'+ { -- | The actions for the experiment.+ actions :: Prelude.Maybe (Prelude.HashMap Prelude.Text ExperimentTemplateAction),+ -- | The time the experiment template was created.+ creationTime :: Prelude.Maybe Data.POSIX,+ -- | The description for the experiment template.+ description :: Prelude.Maybe Prelude.Text,+ -- | The ID of the experiment template.+ id :: Prelude.Maybe Prelude.Text,+ -- | The time the experiment template was last updated.+ lastUpdateTime :: Prelude.Maybe Data.POSIX,+ -- | The configuration for experiment logging.+ logConfiguration :: Prelude.Maybe ExperimentTemplateLogConfiguration,+ -- | The Amazon Resource Name (ARN) of an IAM role.+ roleArn :: Prelude.Maybe Prelude.Text,+ -- | The stop conditions for the experiment.+ stopConditions :: Prelude.Maybe [ExperimentTemplateStopCondition],+ -- | The tags for the experiment template.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The targets for the experiment.+ targets :: Prelude.Maybe (Prelude.HashMap Prelude.Text ExperimentTemplateTarget)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actions', 'experimentTemplate_actions' - The actions for the experiment.+--+-- 'creationTime', 'experimentTemplate_creationTime' - The time the experiment template was created.+--+-- 'description', 'experimentTemplate_description' - The description for the experiment template.+--+-- 'id', 'experimentTemplate_id' - The ID of the experiment template.+--+-- 'lastUpdateTime', 'experimentTemplate_lastUpdateTime' - The time the experiment template was last updated.+--+-- 'logConfiguration', 'experimentTemplate_logConfiguration' - The configuration for experiment logging.+--+-- 'roleArn', 'experimentTemplate_roleArn' - The Amazon Resource Name (ARN) of an IAM role.+--+-- 'stopConditions', 'experimentTemplate_stopConditions' - The stop conditions for the experiment.+--+-- 'tags', 'experimentTemplate_tags' - The tags for the experiment template.+--+-- 'targets', 'experimentTemplate_targets' - The targets for the experiment.+newExperimentTemplate ::+ ExperimentTemplate+newExperimentTemplate =+ ExperimentTemplate'+ { actions = Prelude.Nothing,+ creationTime = Prelude.Nothing,+ description = Prelude.Nothing,+ id = Prelude.Nothing,+ lastUpdateTime = Prelude.Nothing,+ logConfiguration = Prelude.Nothing,+ roleArn = Prelude.Nothing,+ stopConditions = Prelude.Nothing,+ tags = Prelude.Nothing,+ targets = Prelude.Nothing+ }++-- | The actions for the experiment.+experimentTemplate_actions :: Lens.Lens' ExperimentTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text ExperimentTemplateAction))+experimentTemplate_actions = Lens.lens (\ExperimentTemplate' {actions} -> actions) (\s@ExperimentTemplate' {} a -> s {actions = a} :: ExperimentTemplate) Prelude.. Lens.mapping Lens.coerced++-- | The time the experiment template was created.+experimentTemplate_creationTime :: Lens.Lens' ExperimentTemplate (Prelude.Maybe Prelude.UTCTime)+experimentTemplate_creationTime = Lens.lens (\ExperimentTemplate' {creationTime} -> creationTime) (\s@ExperimentTemplate' {} a -> s {creationTime = a} :: ExperimentTemplate) Prelude.. Lens.mapping Data._Time++-- | The description for the experiment template.+experimentTemplate_description :: Lens.Lens' ExperimentTemplate (Prelude.Maybe Prelude.Text)+experimentTemplate_description = Lens.lens (\ExperimentTemplate' {description} -> description) (\s@ExperimentTemplate' {} a -> s {description = a} :: ExperimentTemplate)++-- | The ID of the experiment template.+experimentTemplate_id :: Lens.Lens' ExperimentTemplate (Prelude.Maybe Prelude.Text)+experimentTemplate_id = Lens.lens (\ExperimentTemplate' {id} -> id) (\s@ExperimentTemplate' {} a -> s {id = a} :: ExperimentTemplate)++-- | The time the experiment template was last updated.+experimentTemplate_lastUpdateTime :: Lens.Lens' ExperimentTemplate (Prelude.Maybe Prelude.UTCTime)+experimentTemplate_lastUpdateTime = Lens.lens (\ExperimentTemplate' {lastUpdateTime} -> lastUpdateTime) (\s@ExperimentTemplate' {} a -> s {lastUpdateTime = a} :: ExperimentTemplate) Prelude.. Lens.mapping Data._Time++-- | The configuration for experiment logging.+experimentTemplate_logConfiguration :: Lens.Lens' ExperimentTemplate (Prelude.Maybe ExperimentTemplateLogConfiguration)+experimentTemplate_logConfiguration = Lens.lens (\ExperimentTemplate' {logConfiguration} -> logConfiguration) (\s@ExperimentTemplate' {} a -> s {logConfiguration = a} :: ExperimentTemplate)++-- | The Amazon Resource Name (ARN) of an IAM role.+experimentTemplate_roleArn :: Lens.Lens' ExperimentTemplate (Prelude.Maybe Prelude.Text)+experimentTemplate_roleArn = Lens.lens (\ExperimentTemplate' {roleArn} -> roleArn) (\s@ExperimentTemplate' {} a -> s {roleArn = a} :: ExperimentTemplate)++-- | The stop conditions for the experiment.+experimentTemplate_stopConditions :: Lens.Lens' ExperimentTemplate (Prelude.Maybe [ExperimentTemplateStopCondition])+experimentTemplate_stopConditions = Lens.lens (\ExperimentTemplate' {stopConditions} -> stopConditions) (\s@ExperimentTemplate' {} a -> s {stopConditions = a} :: ExperimentTemplate) Prelude.. Lens.mapping Lens.coerced++-- | The tags for the experiment template.+experimentTemplate_tags :: Lens.Lens' ExperimentTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+experimentTemplate_tags = Lens.lens (\ExperimentTemplate' {tags} -> tags) (\s@ExperimentTemplate' {} a -> s {tags = a} :: ExperimentTemplate) Prelude.. Lens.mapping Lens.coerced++-- | The targets for the experiment.+experimentTemplate_targets :: Lens.Lens' ExperimentTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text ExperimentTemplateTarget))+experimentTemplate_targets = Lens.lens (\ExperimentTemplate' {targets} -> targets) (\s@ExperimentTemplate' {} a -> s {targets = a} :: ExperimentTemplate) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ExperimentTemplate where+ parseJSON =+ Data.withObject+ "ExperimentTemplate"+ ( \x ->+ ExperimentTemplate'+ Prelude.<$> (x Data..:? "actions" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "creationTime")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "id")+ Prelude.<*> (x Data..:? "lastUpdateTime")+ Prelude.<*> (x Data..:? "logConfiguration")+ Prelude.<*> (x Data..:? "roleArn")+ Prelude.<*> (x Data..:? "stopConditions" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "targets" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ExperimentTemplate where+ hashWithSalt _salt ExperimentTemplate' {..} =+ _salt+ `Prelude.hashWithSalt` actions+ `Prelude.hashWithSalt` creationTime+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` lastUpdateTime+ `Prelude.hashWithSalt` logConfiguration+ `Prelude.hashWithSalt` roleArn+ `Prelude.hashWithSalt` stopConditions+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` targets++instance Prelude.NFData ExperimentTemplate where+ rnf ExperimentTemplate' {..} =+ Prelude.rnf actions+ `Prelude.seq` Prelude.rnf creationTime+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf lastUpdateTime+ `Prelude.seq` Prelude.rnf logConfiguration+ `Prelude.seq` Prelude.rnf roleArn+ `Prelude.seq` Prelude.rnf stopConditions+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf targets
+ gen/Amazonka/FIS/Types/ExperimentTemplateAction.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.FIS.Types.ExperimentTemplateAction+-- 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.FIS.Types.ExperimentTemplateAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes an action for an experiment template.+--+-- /See:/ 'newExperimentTemplateAction' smart constructor.+data ExperimentTemplateAction = ExperimentTemplateAction'+ { -- | The ID of the action.+ actionId :: Prelude.Maybe Prelude.Text,+ -- | A description for the action.+ description :: Prelude.Maybe Prelude.Text,+ -- | The parameters for the action.+ parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The name of the action that must be completed before the current action+ -- starts.+ startAfter :: Prelude.Maybe [Prelude.Text],+ -- | The targets for the action.+ targets :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentTemplateAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actionId', 'experimentTemplateAction_actionId' - The ID of the action.+--+-- 'description', 'experimentTemplateAction_description' - A description for the action.+--+-- 'parameters', 'experimentTemplateAction_parameters' - The parameters for the action.+--+-- 'startAfter', 'experimentTemplateAction_startAfter' - The name of the action that must be completed before the current action+-- starts.+--+-- 'targets', 'experimentTemplateAction_targets' - The targets for the action.+newExperimentTemplateAction ::+ ExperimentTemplateAction+newExperimentTemplateAction =+ ExperimentTemplateAction'+ { actionId =+ Prelude.Nothing,+ description = Prelude.Nothing,+ parameters = Prelude.Nothing,+ startAfter = Prelude.Nothing,+ targets = Prelude.Nothing+ }++-- | The ID of the action.+experimentTemplateAction_actionId :: Lens.Lens' ExperimentTemplateAction (Prelude.Maybe Prelude.Text)+experimentTemplateAction_actionId = Lens.lens (\ExperimentTemplateAction' {actionId} -> actionId) (\s@ExperimentTemplateAction' {} a -> s {actionId = a} :: ExperimentTemplateAction)++-- | A description for the action.+experimentTemplateAction_description :: Lens.Lens' ExperimentTemplateAction (Prelude.Maybe Prelude.Text)+experimentTemplateAction_description = Lens.lens (\ExperimentTemplateAction' {description} -> description) (\s@ExperimentTemplateAction' {} a -> s {description = a} :: ExperimentTemplateAction)++-- | The parameters for the action.+experimentTemplateAction_parameters :: Lens.Lens' ExperimentTemplateAction (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+experimentTemplateAction_parameters = Lens.lens (\ExperimentTemplateAction' {parameters} -> parameters) (\s@ExperimentTemplateAction' {} a -> s {parameters = a} :: ExperimentTemplateAction) Prelude.. Lens.mapping Lens.coerced++-- | The name of the action that must be completed before the current action+-- starts.+experimentTemplateAction_startAfter :: Lens.Lens' ExperimentTemplateAction (Prelude.Maybe [Prelude.Text])+experimentTemplateAction_startAfter = Lens.lens (\ExperimentTemplateAction' {startAfter} -> startAfter) (\s@ExperimentTemplateAction' {} a -> s {startAfter = a} :: ExperimentTemplateAction) Prelude.. Lens.mapping Lens.coerced++-- | The targets for the action.+experimentTemplateAction_targets :: Lens.Lens' ExperimentTemplateAction (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+experimentTemplateAction_targets = Lens.lens (\ExperimentTemplateAction' {targets} -> targets) (\s@ExperimentTemplateAction' {} a -> s {targets = a} :: ExperimentTemplateAction) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ExperimentTemplateAction where+ parseJSON =+ Data.withObject+ "ExperimentTemplateAction"+ ( \x ->+ ExperimentTemplateAction'+ Prelude.<$> (x Data..:? "actionId")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "parameters" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "startAfter" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "targets" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ExperimentTemplateAction where+ hashWithSalt _salt ExperimentTemplateAction' {..} =+ _salt+ `Prelude.hashWithSalt` actionId+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` parameters+ `Prelude.hashWithSalt` startAfter+ `Prelude.hashWithSalt` targets++instance Prelude.NFData ExperimentTemplateAction where+ rnf ExperimentTemplateAction' {..} =+ Prelude.rnf actionId+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf parameters+ `Prelude.seq` Prelude.rnf startAfter+ `Prelude.seq` Prelude.rnf targets
+ gen/Amazonka/FIS/Types/ExperimentTemplateCloudWatchLogsLogConfiguration.hs view
@@ -0,0 +1,88 @@+{-# 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.FIS.Types.ExperimentTemplateCloudWatchLogsLogConfiguration+-- 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.FIS.Types.ExperimentTemplateCloudWatchLogsLogConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes the configuration for experiment logging to Amazon CloudWatch+-- Logs.+--+-- /See:/ 'newExperimentTemplateCloudWatchLogsLogConfiguration' smart constructor.+data ExperimentTemplateCloudWatchLogsLogConfiguration = ExperimentTemplateCloudWatchLogsLogConfiguration'+ { -- | The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs+ -- log group.+ logGroupArn :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentTemplateCloudWatchLogsLogConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logGroupArn', 'experimentTemplateCloudWatchLogsLogConfiguration_logGroupArn' - The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs+-- log group.+newExperimentTemplateCloudWatchLogsLogConfiguration ::+ ExperimentTemplateCloudWatchLogsLogConfiguration+newExperimentTemplateCloudWatchLogsLogConfiguration =+ ExperimentTemplateCloudWatchLogsLogConfiguration'+ { logGroupArn =+ Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs+-- log group.+experimentTemplateCloudWatchLogsLogConfiguration_logGroupArn :: Lens.Lens' ExperimentTemplateCloudWatchLogsLogConfiguration (Prelude.Maybe Prelude.Text)+experimentTemplateCloudWatchLogsLogConfiguration_logGroupArn = Lens.lens (\ExperimentTemplateCloudWatchLogsLogConfiguration' {logGroupArn} -> logGroupArn) (\s@ExperimentTemplateCloudWatchLogsLogConfiguration' {} a -> s {logGroupArn = a} :: ExperimentTemplateCloudWatchLogsLogConfiguration)++instance+ Data.FromJSON+ ExperimentTemplateCloudWatchLogsLogConfiguration+ where+ parseJSON =+ Data.withObject+ "ExperimentTemplateCloudWatchLogsLogConfiguration"+ ( \x ->+ ExperimentTemplateCloudWatchLogsLogConfiguration'+ Prelude.<$> (x Data..:? "logGroupArn")+ )++instance+ Prelude.Hashable+ ExperimentTemplateCloudWatchLogsLogConfiguration+ where+ hashWithSalt+ _salt+ ExperimentTemplateCloudWatchLogsLogConfiguration' {..} =+ _salt `Prelude.hashWithSalt` logGroupArn++instance+ Prelude.NFData+ ExperimentTemplateCloudWatchLogsLogConfiguration+ where+ rnf+ ExperimentTemplateCloudWatchLogsLogConfiguration' {..} =+ Prelude.rnf logGroupArn
+ gen/Amazonka/FIS/Types/ExperimentTemplateCloudWatchLogsLogConfigurationInput.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.Types.ExperimentTemplateCloudWatchLogsLogConfigurationInput+-- 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.FIS.Types.ExperimentTemplateCloudWatchLogsLogConfigurationInput 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++-- | Specifies the configuration for experiment logging to Amazon CloudWatch+-- Logs.+--+-- /See:/ 'newExperimentTemplateCloudWatchLogsLogConfigurationInput' smart constructor.+data ExperimentTemplateCloudWatchLogsLogConfigurationInput = ExperimentTemplateCloudWatchLogsLogConfigurationInput'+ { -- | The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs+ -- log group.+ logGroupArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentTemplateCloudWatchLogsLogConfigurationInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logGroupArn', 'experimentTemplateCloudWatchLogsLogConfigurationInput_logGroupArn' - The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs+-- log group.+newExperimentTemplateCloudWatchLogsLogConfigurationInput ::+ -- | 'logGroupArn'+ Prelude.Text ->+ ExperimentTemplateCloudWatchLogsLogConfigurationInput+newExperimentTemplateCloudWatchLogsLogConfigurationInput+ pLogGroupArn_ =+ ExperimentTemplateCloudWatchLogsLogConfigurationInput'+ { logGroupArn =+ pLogGroupArn_+ }++-- | The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs+-- log group.+experimentTemplateCloudWatchLogsLogConfigurationInput_logGroupArn :: Lens.Lens' ExperimentTemplateCloudWatchLogsLogConfigurationInput Prelude.Text+experimentTemplateCloudWatchLogsLogConfigurationInput_logGroupArn = Lens.lens (\ExperimentTemplateCloudWatchLogsLogConfigurationInput' {logGroupArn} -> logGroupArn) (\s@ExperimentTemplateCloudWatchLogsLogConfigurationInput' {} a -> s {logGroupArn = a} :: ExperimentTemplateCloudWatchLogsLogConfigurationInput)++instance+ Prelude.Hashable+ ExperimentTemplateCloudWatchLogsLogConfigurationInput+ where+ hashWithSalt+ _salt+ ExperimentTemplateCloudWatchLogsLogConfigurationInput' {..} =+ _salt `Prelude.hashWithSalt` logGroupArn++instance+ Prelude.NFData+ ExperimentTemplateCloudWatchLogsLogConfigurationInput+ where+ rnf+ ExperimentTemplateCloudWatchLogsLogConfigurationInput' {..} =+ Prelude.rnf logGroupArn++instance+ Data.ToJSON+ ExperimentTemplateCloudWatchLogsLogConfigurationInput+ where+ toJSON+ ExperimentTemplateCloudWatchLogsLogConfigurationInput' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("logGroupArn" Data..= logGroupArn)]+ )
+ gen/Amazonka/FIS/Types/ExperimentTemplateLogConfiguration.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.Types.ExperimentTemplateLogConfiguration+-- 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.FIS.Types.ExperimentTemplateLogConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ExperimentTemplateCloudWatchLogsLogConfiguration+import Amazonka.FIS.Types.ExperimentTemplateS3LogConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Describes the configuration for experiment logging.+--+-- /See:/ 'newExperimentTemplateLogConfiguration' smart constructor.+data ExperimentTemplateLogConfiguration = ExperimentTemplateLogConfiguration'+ { -- | The configuration for experiment logging to Amazon CloudWatch Logs.+ cloudWatchLogsConfiguration :: Prelude.Maybe ExperimentTemplateCloudWatchLogsLogConfiguration,+ -- | The schema version.+ logSchemaVersion :: Prelude.Maybe Prelude.Int,+ -- | The configuration for experiment logging to Amazon S3.+ s3Configuration :: Prelude.Maybe ExperimentTemplateS3LogConfiguration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentTemplateLogConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudWatchLogsConfiguration', 'experimentTemplateLogConfiguration_cloudWatchLogsConfiguration' - The configuration for experiment logging to Amazon CloudWatch Logs.+--+-- 'logSchemaVersion', 'experimentTemplateLogConfiguration_logSchemaVersion' - The schema version.+--+-- 's3Configuration', 'experimentTemplateLogConfiguration_s3Configuration' - The configuration for experiment logging to Amazon S3.+newExperimentTemplateLogConfiguration ::+ ExperimentTemplateLogConfiguration+newExperimentTemplateLogConfiguration =+ ExperimentTemplateLogConfiguration'+ { cloudWatchLogsConfiguration =+ Prelude.Nothing,+ logSchemaVersion = Prelude.Nothing,+ s3Configuration = Prelude.Nothing+ }++-- | The configuration for experiment logging to Amazon CloudWatch Logs.+experimentTemplateLogConfiguration_cloudWatchLogsConfiguration :: Lens.Lens' ExperimentTemplateLogConfiguration (Prelude.Maybe ExperimentTemplateCloudWatchLogsLogConfiguration)+experimentTemplateLogConfiguration_cloudWatchLogsConfiguration = Lens.lens (\ExperimentTemplateLogConfiguration' {cloudWatchLogsConfiguration} -> cloudWatchLogsConfiguration) (\s@ExperimentTemplateLogConfiguration' {} a -> s {cloudWatchLogsConfiguration = a} :: ExperimentTemplateLogConfiguration)++-- | The schema version.+experimentTemplateLogConfiguration_logSchemaVersion :: Lens.Lens' ExperimentTemplateLogConfiguration (Prelude.Maybe Prelude.Int)+experimentTemplateLogConfiguration_logSchemaVersion = Lens.lens (\ExperimentTemplateLogConfiguration' {logSchemaVersion} -> logSchemaVersion) (\s@ExperimentTemplateLogConfiguration' {} a -> s {logSchemaVersion = a} :: ExperimentTemplateLogConfiguration)++-- | The configuration for experiment logging to Amazon S3.+experimentTemplateLogConfiguration_s3Configuration :: Lens.Lens' ExperimentTemplateLogConfiguration (Prelude.Maybe ExperimentTemplateS3LogConfiguration)+experimentTemplateLogConfiguration_s3Configuration = Lens.lens (\ExperimentTemplateLogConfiguration' {s3Configuration} -> s3Configuration) (\s@ExperimentTemplateLogConfiguration' {} a -> s {s3Configuration = a} :: ExperimentTemplateLogConfiguration)++instance+ Data.FromJSON+ ExperimentTemplateLogConfiguration+ where+ parseJSON =+ Data.withObject+ "ExperimentTemplateLogConfiguration"+ ( \x ->+ ExperimentTemplateLogConfiguration'+ Prelude.<$> (x Data..:? "cloudWatchLogsConfiguration")+ Prelude.<*> (x Data..:? "logSchemaVersion")+ Prelude.<*> (x Data..:? "s3Configuration")+ )++instance+ Prelude.Hashable+ ExperimentTemplateLogConfiguration+ where+ hashWithSalt+ _salt+ ExperimentTemplateLogConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` cloudWatchLogsConfiguration+ `Prelude.hashWithSalt` logSchemaVersion+ `Prelude.hashWithSalt` s3Configuration++instance+ Prelude.NFData+ ExperimentTemplateLogConfiguration+ where+ rnf ExperimentTemplateLogConfiguration' {..} =+ Prelude.rnf cloudWatchLogsConfiguration+ `Prelude.seq` Prelude.rnf logSchemaVersion+ `Prelude.seq` Prelude.rnf s3Configuration
+ gen/Amazonka/FIS/Types/ExperimentTemplateS3LogConfiguration.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.Types.ExperimentTemplateS3LogConfiguration+-- 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.FIS.Types.ExperimentTemplateS3LogConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes the configuration for experiment logging to Amazon S3.+--+-- /See:/ 'newExperimentTemplateS3LogConfiguration' smart constructor.+data ExperimentTemplateS3LogConfiguration = ExperimentTemplateS3LogConfiguration'+ { -- | The name of the destination bucket.+ bucketName :: Prelude.Maybe Prelude.Text,+ -- | The bucket prefix.+ prefix :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentTemplateS3LogConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucketName', 'experimentTemplateS3LogConfiguration_bucketName' - The name of the destination bucket.+--+-- 'prefix', 'experimentTemplateS3LogConfiguration_prefix' - The bucket prefix.+newExperimentTemplateS3LogConfiguration ::+ ExperimentTemplateS3LogConfiguration+newExperimentTemplateS3LogConfiguration =+ ExperimentTemplateS3LogConfiguration'+ { bucketName =+ Prelude.Nothing,+ prefix = Prelude.Nothing+ }++-- | The name of the destination bucket.+experimentTemplateS3LogConfiguration_bucketName :: Lens.Lens' ExperimentTemplateS3LogConfiguration (Prelude.Maybe Prelude.Text)+experimentTemplateS3LogConfiguration_bucketName = Lens.lens (\ExperimentTemplateS3LogConfiguration' {bucketName} -> bucketName) (\s@ExperimentTemplateS3LogConfiguration' {} a -> s {bucketName = a} :: ExperimentTemplateS3LogConfiguration)++-- | The bucket prefix.+experimentTemplateS3LogConfiguration_prefix :: Lens.Lens' ExperimentTemplateS3LogConfiguration (Prelude.Maybe Prelude.Text)+experimentTemplateS3LogConfiguration_prefix = Lens.lens (\ExperimentTemplateS3LogConfiguration' {prefix} -> prefix) (\s@ExperimentTemplateS3LogConfiguration' {} a -> s {prefix = a} :: ExperimentTemplateS3LogConfiguration)++instance+ Data.FromJSON+ ExperimentTemplateS3LogConfiguration+ where+ parseJSON =+ Data.withObject+ "ExperimentTemplateS3LogConfiguration"+ ( \x ->+ ExperimentTemplateS3LogConfiguration'+ Prelude.<$> (x Data..:? "bucketName")+ Prelude.<*> (x Data..:? "prefix")+ )++instance+ Prelude.Hashable+ ExperimentTemplateS3LogConfiguration+ where+ hashWithSalt+ _salt+ ExperimentTemplateS3LogConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` bucketName+ `Prelude.hashWithSalt` prefix++instance+ Prelude.NFData+ ExperimentTemplateS3LogConfiguration+ where+ rnf ExperimentTemplateS3LogConfiguration' {..} =+ Prelude.rnf bucketName+ `Prelude.seq` Prelude.rnf prefix
+ gen/Amazonka/FIS/Types/ExperimentTemplateS3LogConfigurationInput.hs view
@@ -0,0 +1,98 @@+{-# 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.FIS.Types.ExperimentTemplateS3LogConfigurationInput+-- 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.FIS.Types.ExperimentTemplateS3LogConfigurationInput 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++-- | Specifies the configuration for experiment logging to Amazon S3.+--+-- /See:/ 'newExperimentTemplateS3LogConfigurationInput' smart constructor.+data ExperimentTemplateS3LogConfigurationInput = ExperimentTemplateS3LogConfigurationInput'+ { -- | The bucket prefix.+ prefix :: Prelude.Maybe Prelude.Text,+ -- | The name of the destination bucket.+ bucketName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentTemplateS3LogConfigurationInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'prefix', 'experimentTemplateS3LogConfigurationInput_prefix' - The bucket prefix.+--+-- 'bucketName', 'experimentTemplateS3LogConfigurationInput_bucketName' - The name of the destination bucket.+newExperimentTemplateS3LogConfigurationInput ::+ -- | 'bucketName'+ Prelude.Text ->+ ExperimentTemplateS3LogConfigurationInput+newExperimentTemplateS3LogConfigurationInput+ pBucketName_ =+ ExperimentTemplateS3LogConfigurationInput'+ { prefix =+ Prelude.Nothing,+ bucketName = pBucketName_+ }++-- | The bucket prefix.+experimentTemplateS3LogConfigurationInput_prefix :: Lens.Lens' ExperimentTemplateS3LogConfigurationInput (Prelude.Maybe Prelude.Text)+experimentTemplateS3LogConfigurationInput_prefix = Lens.lens (\ExperimentTemplateS3LogConfigurationInput' {prefix} -> prefix) (\s@ExperimentTemplateS3LogConfigurationInput' {} a -> s {prefix = a} :: ExperimentTemplateS3LogConfigurationInput)++-- | The name of the destination bucket.+experimentTemplateS3LogConfigurationInput_bucketName :: Lens.Lens' ExperimentTemplateS3LogConfigurationInput Prelude.Text+experimentTemplateS3LogConfigurationInput_bucketName = Lens.lens (\ExperimentTemplateS3LogConfigurationInput' {bucketName} -> bucketName) (\s@ExperimentTemplateS3LogConfigurationInput' {} a -> s {bucketName = a} :: ExperimentTemplateS3LogConfigurationInput)++instance+ Prelude.Hashable+ ExperimentTemplateS3LogConfigurationInput+ where+ hashWithSalt+ _salt+ ExperimentTemplateS3LogConfigurationInput' {..} =+ _salt+ `Prelude.hashWithSalt` prefix+ `Prelude.hashWithSalt` bucketName++instance+ Prelude.NFData+ ExperimentTemplateS3LogConfigurationInput+ where+ rnf ExperimentTemplateS3LogConfigurationInput' {..} =+ Prelude.rnf prefix+ `Prelude.seq` Prelude.rnf bucketName++instance+ Data.ToJSON+ ExperimentTemplateS3LogConfigurationInput+ where+ toJSON ExperimentTemplateS3LogConfigurationInput' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("prefix" Data..=) Prelude.<$> prefix,+ Prelude.Just ("bucketName" Data..= bucketName)+ ]+ )
+ gen/Amazonka/FIS/Types/ExperimentTemplateStopCondition.hs view
@@ -0,0 +1,95 @@+{-# 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.FIS.Types.ExperimentTemplateStopCondition+-- 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.FIS.Types.ExperimentTemplateStopCondition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes a stop condition for an experiment template.+--+-- /See:/ 'newExperimentTemplateStopCondition' smart constructor.+data ExperimentTemplateStopCondition = ExperimentTemplateStopCondition'+ { -- | The source for the stop condition.+ source :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable.+ value :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentTemplateStopCondition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'source', 'experimentTemplateStopCondition_source' - The source for the stop condition.+--+-- 'value', 'experimentTemplateStopCondition_value' - The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable.+newExperimentTemplateStopCondition ::+ ExperimentTemplateStopCondition+newExperimentTemplateStopCondition =+ ExperimentTemplateStopCondition'+ { source =+ Prelude.Nothing,+ value = Prelude.Nothing+ }++-- | The source for the stop condition.+experimentTemplateStopCondition_source :: Lens.Lens' ExperimentTemplateStopCondition (Prelude.Maybe Prelude.Text)+experimentTemplateStopCondition_source = Lens.lens (\ExperimentTemplateStopCondition' {source} -> source) (\s@ExperimentTemplateStopCondition' {} a -> s {source = a} :: ExperimentTemplateStopCondition)++-- | The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable.+experimentTemplateStopCondition_value :: Lens.Lens' ExperimentTemplateStopCondition (Prelude.Maybe Prelude.Text)+experimentTemplateStopCondition_value = Lens.lens (\ExperimentTemplateStopCondition' {value} -> value) (\s@ExperimentTemplateStopCondition' {} a -> s {value = a} :: ExperimentTemplateStopCondition)++instance+ Data.FromJSON+ ExperimentTemplateStopCondition+ where+ parseJSON =+ Data.withObject+ "ExperimentTemplateStopCondition"+ ( \x ->+ ExperimentTemplateStopCondition'+ Prelude.<$> (x Data..:? "source")+ Prelude.<*> (x Data..:? "value")+ )++instance+ Prelude.Hashable+ ExperimentTemplateStopCondition+ where+ hashWithSalt+ _salt+ ExperimentTemplateStopCondition' {..} =+ _salt+ `Prelude.hashWithSalt` source+ `Prelude.hashWithSalt` value++instance+ Prelude.NFData+ ExperimentTemplateStopCondition+ where+ rnf ExperimentTemplateStopCondition' {..} =+ Prelude.rnf source `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/FIS/Types/ExperimentTemplateSummary.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.Types.ExperimentTemplateSummary+-- 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.FIS.Types.ExperimentTemplateSummary 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++-- | Provides a summary of an experiment template.+--+-- /See:/ 'newExperimentTemplateSummary' smart constructor.+data ExperimentTemplateSummary = ExperimentTemplateSummary'+ { -- | The time that the experiment template was created.+ creationTime :: Prelude.Maybe Data.POSIX,+ -- | The description of the experiment template.+ description :: Prelude.Maybe Prelude.Text,+ -- | The ID of the experiment template.+ id :: Prelude.Maybe Prelude.Text,+ -- | The time that the experiment template was last updated.+ lastUpdateTime :: Prelude.Maybe Data.POSIX,+ -- | The tags for the experiment template.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentTemplateSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTime', 'experimentTemplateSummary_creationTime' - The time that the experiment template was created.+--+-- 'description', 'experimentTemplateSummary_description' - The description of the experiment template.+--+-- 'id', 'experimentTemplateSummary_id' - The ID of the experiment template.+--+-- 'lastUpdateTime', 'experimentTemplateSummary_lastUpdateTime' - The time that the experiment template was last updated.+--+-- 'tags', 'experimentTemplateSummary_tags' - The tags for the experiment template.+newExperimentTemplateSummary ::+ ExperimentTemplateSummary+newExperimentTemplateSummary =+ ExperimentTemplateSummary'+ { creationTime =+ Prelude.Nothing,+ description = Prelude.Nothing,+ id = Prelude.Nothing,+ lastUpdateTime = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | The time that the experiment template was created.+experimentTemplateSummary_creationTime :: Lens.Lens' ExperimentTemplateSummary (Prelude.Maybe Prelude.UTCTime)+experimentTemplateSummary_creationTime = Lens.lens (\ExperimentTemplateSummary' {creationTime} -> creationTime) (\s@ExperimentTemplateSummary' {} a -> s {creationTime = a} :: ExperimentTemplateSummary) Prelude.. Lens.mapping Data._Time++-- | The description of the experiment template.+experimentTemplateSummary_description :: Lens.Lens' ExperimentTemplateSummary (Prelude.Maybe Prelude.Text)+experimentTemplateSummary_description = Lens.lens (\ExperimentTemplateSummary' {description} -> description) (\s@ExperimentTemplateSummary' {} a -> s {description = a} :: ExperimentTemplateSummary)++-- | The ID of the experiment template.+experimentTemplateSummary_id :: Lens.Lens' ExperimentTemplateSummary (Prelude.Maybe Prelude.Text)+experimentTemplateSummary_id = Lens.lens (\ExperimentTemplateSummary' {id} -> id) (\s@ExperimentTemplateSummary' {} a -> s {id = a} :: ExperimentTemplateSummary)++-- | The time that the experiment template was last updated.+experimentTemplateSummary_lastUpdateTime :: Lens.Lens' ExperimentTemplateSummary (Prelude.Maybe Prelude.UTCTime)+experimentTemplateSummary_lastUpdateTime = Lens.lens (\ExperimentTemplateSummary' {lastUpdateTime} -> lastUpdateTime) (\s@ExperimentTemplateSummary' {} a -> s {lastUpdateTime = a} :: ExperimentTemplateSummary) Prelude.. Lens.mapping Data._Time++-- | The tags for the experiment template.+experimentTemplateSummary_tags :: Lens.Lens' ExperimentTemplateSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+experimentTemplateSummary_tags = Lens.lens (\ExperimentTemplateSummary' {tags} -> tags) (\s@ExperimentTemplateSummary' {} a -> s {tags = a} :: ExperimentTemplateSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ExperimentTemplateSummary where+ parseJSON =+ Data.withObject+ "ExperimentTemplateSummary"+ ( \x ->+ ExperimentTemplateSummary'+ Prelude.<$> (x Data..:? "creationTime")+ Prelude.<*> (x Data..:? "description")+ Prelude.<*> (x Data..:? "id")+ Prelude.<*> (x Data..:? "lastUpdateTime")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ExperimentTemplateSummary where+ hashWithSalt _salt ExperimentTemplateSummary' {..} =+ _salt+ `Prelude.hashWithSalt` creationTime+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` lastUpdateTime+ `Prelude.hashWithSalt` tags++instance Prelude.NFData ExperimentTemplateSummary where+ rnf ExperimentTemplateSummary' {..} =+ Prelude.rnf creationTime+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf lastUpdateTime+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/FIS/Types/ExperimentTemplateTarget.hs view
@@ -0,0 +1,137 @@+{-# 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.FIS.Types.ExperimentTemplateTarget+-- 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.FIS.Types.ExperimentTemplateTarget where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ExperimentTemplateTargetFilter+import qualified Amazonka.Prelude as Prelude++-- | Describes a target for an experiment template.+--+-- /See:/ 'newExperimentTemplateTarget' smart constructor.+data ExperimentTemplateTarget = ExperimentTemplateTarget'+ { -- | The filters to apply to identify target resources using specific+ -- attributes.+ filters :: Prelude.Maybe [ExperimentTemplateTargetFilter],+ -- | The resource type parameters.+ parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The Amazon Resource Names (ARNs) of the targets.+ resourceArns :: Prelude.Maybe [Prelude.Text],+ -- | The tags for the target resources.+ resourceTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The resource type.+ resourceType :: Prelude.Maybe Prelude.Text,+ -- | Scopes the identified resources to a specific count or percentage.+ selectionMode :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentTemplateTarget' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'experimentTemplateTarget_filters' - The filters to apply to identify target resources using specific+-- attributes.+--+-- 'parameters', 'experimentTemplateTarget_parameters' - The resource type parameters.+--+-- 'resourceArns', 'experimentTemplateTarget_resourceArns' - The Amazon Resource Names (ARNs) of the targets.+--+-- 'resourceTags', 'experimentTemplateTarget_resourceTags' - The tags for the target resources.+--+-- 'resourceType', 'experimentTemplateTarget_resourceType' - The resource type.+--+-- 'selectionMode', 'experimentTemplateTarget_selectionMode' - Scopes the identified resources to a specific count or percentage.+newExperimentTemplateTarget ::+ ExperimentTemplateTarget+newExperimentTemplateTarget =+ ExperimentTemplateTarget'+ { filters =+ Prelude.Nothing,+ parameters = Prelude.Nothing,+ resourceArns = Prelude.Nothing,+ resourceTags = Prelude.Nothing,+ resourceType = Prelude.Nothing,+ selectionMode = Prelude.Nothing+ }++-- | The filters to apply to identify target resources using specific+-- attributes.+experimentTemplateTarget_filters :: Lens.Lens' ExperimentTemplateTarget (Prelude.Maybe [ExperimentTemplateTargetFilter])+experimentTemplateTarget_filters = Lens.lens (\ExperimentTemplateTarget' {filters} -> filters) (\s@ExperimentTemplateTarget' {} a -> s {filters = a} :: ExperimentTemplateTarget) Prelude.. Lens.mapping Lens.coerced++-- | The resource type parameters.+experimentTemplateTarget_parameters :: Lens.Lens' ExperimentTemplateTarget (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+experimentTemplateTarget_parameters = Lens.lens (\ExperimentTemplateTarget' {parameters} -> parameters) (\s@ExperimentTemplateTarget' {} a -> s {parameters = a} :: ExperimentTemplateTarget) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Names (ARNs) of the targets.+experimentTemplateTarget_resourceArns :: Lens.Lens' ExperimentTemplateTarget (Prelude.Maybe [Prelude.Text])+experimentTemplateTarget_resourceArns = Lens.lens (\ExperimentTemplateTarget' {resourceArns} -> resourceArns) (\s@ExperimentTemplateTarget' {} a -> s {resourceArns = a} :: ExperimentTemplateTarget) Prelude.. Lens.mapping Lens.coerced++-- | The tags for the target resources.+experimentTemplateTarget_resourceTags :: Lens.Lens' ExperimentTemplateTarget (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+experimentTemplateTarget_resourceTags = Lens.lens (\ExperimentTemplateTarget' {resourceTags} -> resourceTags) (\s@ExperimentTemplateTarget' {} a -> s {resourceTags = a} :: ExperimentTemplateTarget) Prelude.. Lens.mapping Lens.coerced++-- | The resource type.+experimentTemplateTarget_resourceType :: Lens.Lens' ExperimentTemplateTarget (Prelude.Maybe Prelude.Text)+experimentTemplateTarget_resourceType = Lens.lens (\ExperimentTemplateTarget' {resourceType} -> resourceType) (\s@ExperimentTemplateTarget' {} a -> s {resourceType = a} :: ExperimentTemplateTarget)++-- | Scopes the identified resources to a specific count or percentage.+experimentTemplateTarget_selectionMode :: Lens.Lens' ExperimentTemplateTarget (Prelude.Maybe Prelude.Text)+experimentTemplateTarget_selectionMode = Lens.lens (\ExperimentTemplateTarget' {selectionMode} -> selectionMode) (\s@ExperimentTemplateTarget' {} a -> s {selectionMode = a} :: ExperimentTemplateTarget)++instance Data.FromJSON ExperimentTemplateTarget where+ parseJSON =+ Data.withObject+ "ExperimentTemplateTarget"+ ( \x ->+ ExperimentTemplateTarget'+ Prelude.<$> (x Data..:? "filters" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "parameters" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "resourceArns" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "resourceTags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "resourceType")+ Prelude.<*> (x Data..:? "selectionMode")+ )++instance Prelude.Hashable ExperimentTemplateTarget where+ hashWithSalt _salt ExperimentTemplateTarget' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` parameters+ `Prelude.hashWithSalt` resourceArns+ `Prelude.hashWithSalt` resourceTags+ `Prelude.hashWithSalt` resourceType+ `Prelude.hashWithSalt` selectionMode++instance Prelude.NFData ExperimentTemplateTarget where+ rnf ExperimentTemplateTarget' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf parameters+ `Prelude.seq` Prelude.rnf resourceArns+ `Prelude.seq` Prelude.rnf resourceTags+ `Prelude.seq` Prelude.rnf resourceType+ `Prelude.seq` Prelude.rnf selectionMode
+ gen/Amazonka/FIS/Types/ExperimentTemplateTargetFilter.hs view
@@ -0,0 +1,93 @@+{-# 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.FIS.Types.ExperimentTemplateTargetFilter+-- 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.FIS.Types.ExperimentTemplateTargetFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes a filter used for the target resources in an experiment+-- template.+--+-- /See:/ 'newExperimentTemplateTargetFilter' smart constructor.+data ExperimentTemplateTargetFilter = ExperimentTemplateTargetFilter'+ { -- | The attribute path for the filter.+ path :: Prelude.Maybe Prelude.Text,+ -- | The attribute values for the filter.+ values :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentTemplateTargetFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'path', 'experimentTemplateTargetFilter_path' - The attribute path for the filter.+--+-- 'values', 'experimentTemplateTargetFilter_values' - The attribute values for the filter.+newExperimentTemplateTargetFilter ::+ ExperimentTemplateTargetFilter+newExperimentTemplateTargetFilter =+ ExperimentTemplateTargetFilter'+ { path =+ Prelude.Nothing,+ values = Prelude.Nothing+ }++-- | The attribute path for the filter.+experimentTemplateTargetFilter_path :: Lens.Lens' ExperimentTemplateTargetFilter (Prelude.Maybe Prelude.Text)+experimentTemplateTargetFilter_path = Lens.lens (\ExperimentTemplateTargetFilter' {path} -> path) (\s@ExperimentTemplateTargetFilter' {} a -> s {path = a} :: ExperimentTemplateTargetFilter)++-- | The attribute values for the filter.+experimentTemplateTargetFilter_values :: Lens.Lens' ExperimentTemplateTargetFilter (Prelude.Maybe [Prelude.Text])+experimentTemplateTargetFilter_values = Lens.lens (\ExperimentTemplateTargetFilter' {values} -> values) (\s@ExperimentTemplateTargetFilter' {} a -> s {values = a} :: ExperimentTemplateTargetFilter) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ExperimentTemplateTargetFilter where+ parseJSON =+ Data.withObject+ "ExperimentTemplateTargetFilter"+ ( \x ->+ ExperimentTemplateTargetFilter'+ Prelude.<$> (x Data..:? "path")+ Prelude.<*> (x Data..:? "values" Data..!= Prelude.mempty)+ )++instance+ Prelude.Hashable+ ExperimentTemplateTargetFilter+ where+ hashWithSalt+ _salt+ ExperimentTemplateTargetFilter' {..} =+ _salt+ `Prelude.hashWithSalt` path+ `Prelude.hashWithSalt` values++instance+ Prelude.NFData+ ExperimentTemplateTargetFilter+ where+ rnf ExperimentTemplateTargetFilter' {..} =+ Prelude.rnf path `Prelude.seq` Prelude.rnf values
+ gen/Amazonka/FIS/Types/ExperimentTemplateTargetInputFilter.hs view
@@ -0,0 +1,100 @@+{-# 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.FIS.Types.ExperimentTemplateTargetInputFilter+-- 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.FIS.Types.ExperimentTemplateTargetInputFilter 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++-- | Specifies a filter used for the target resource input in an experiment+-- template.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fis/latest/userguide/targets.html#target-filters Resource filters>+-- in the /Fault Injection Simulator User Guide/.+--+-- /See:/ 'newExperimentTemplateTargetInputFilter' smart constructor.+data ExperimentTemplateTargetInputFilter = ExperimentTemplateTargetInputFilter'+ { -- | The attribute path for the filter.+ path :: Prelude.Text,+ -- | The attribute values for the filter.+ values :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperimentTemplateTargetInputFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'path', 'experimentTemplateTargetInputFilter_path' - The attribute path for the filter.+--+-- 'values', 'experimentTemplateTargetInputFilter_values' - The attribute values for the filter.+newExperimentTemplateTargetInputFilter ::+ -- | 'path'+ Prelude.Text ->+ ExperimentTemplateTargetInputFilter+newExperimentTemplateTargetInputFilter pPath_ =+ ExperimentTemplateTargetInputFilter'+ { path = pPath_,+ values = Prelude.mempty+ }++-- | The attribute path for the filter.+experimentTemplateTargetInputFilter_path :: Lens.Lens' ExperimentTemplateTargetInputFilter Prelude.Text+experimentTemplateTargetInputFilter_path = Lens.lens (\ExperimentTemplateTargetInputFilter' {path} -> path) (\s@ExperimentTemplateTargetInputFilter' {} a -> s {path = a} :: ExperimentTemplateTargetInputFilter)++-- | The attribute values for the filter.+experimentTemplateTargetInputFilter_values :: Lens.Lens' ExperimentTemplateTargetInputFilter [Prelude.Text]+experimentTemplateTargetInputFilter_values = Lens.lens (\ExperimentTemplateTargetInputFilter' {values} -> values) (\s@ExperimentTemplateTargetInputFilter' {} a -> s {values = a} :: ExperimentTemplateTargetInputFilter) Prelude.. Lens.coerced++instance+ Prelude.Hashable+ ExperimentTemplateTargetInputFilter+ where+ hashWithSalt+ _salt+ ExperimentTemplateTargetInputFilter' {..} =+ _salt+ `Prelude.hashWithSalt` path+ `Prelude.hashWithSalt` values++instance+ Prelude.NFData+ ExperimentTemplateTargetInputFilter+ where+ rnf ExperimentTemplateTargetInputFilter' {..} =+ Prelude.rnf path `Prelude.seq` Prelude.rnf values++instance+ Data.ToJSON+ ExperimentTemplateTargetInputFilter+ where+ toJSON ExperimentTemplateTargetInputFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("path" Data..= path),+ Prelude.Just ("values" Data..= values)+ ]+ )
+ gen/Amazonka/FIS/Types/TargetResourceType.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.FIS.Types.TargetResourceType+-- 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.FIS.Types.TargetResourceType where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.TargetResourceTypeParameter+import qualified Amazonka.Prelude as Prelude++-- | Describes a resource type.+--+-- /See:/ 'newTargetResourceType' smart constructor.+data TargetResourceType = TargetResourceType'+ { -- | A description of the resource type.+ description :: Prelude.Maybe Prelude.Text,+ -- | The parameters for the resource type.+ parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text TargetResourceTypeParameter),+ -- | The resource type.+ resourceType :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TargetResourceType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'targetResourceType_description' - A description of the resource type.+--+-- 'parameters', 'targetResourceType_parameters' - The parameters for the resource type.+--+-- 'resourceType', 'targetResourceType_resourceType' - The resource type.+newTargetResourceType ::+ TargetResourceType+newTargetResourceType =+ TargetResourceType'+ { description = Prelude.Nothing,+ parameters = Prelude.Nothing,+ resourceType = Prelude.Nothing+ }++-- | A description of the resource type.+targetResourceType_description :: Lens.Lens' TargetResourceType (Prelude.Maybe Prelude.Text)+targetResourceType_description = Lens.lens (\TargetResourceType' {description} -> description) (\s@TargetResourceType' {} a -> s {description = a} :: TargetResourceType)++-- | The parameters for the resource type.+targetResourceType_parameters :: Lens.Lens' TargetResourceType (Prelude.Maybe (Prelude.HashMap Prelude.Text TargetResourceTypeParameter))+targetResourceType_parameters = Lens.lens (\TargetResourceType' {parameters} -> parameters) (\s@TargetResourceType' {} a -> s {parameters = a} :: TargetResourceType) Prelude.. Lens.mapping Lens.coerced++-- | The resource type.+targetResourceType_resourceType :: Lens.Lens' TargetResourceType (Prelude.Maybe Prelude.Text)+targetResourceType_resourceType = Lens.lens (\TargetResourceType' {resourceType} -> resourceType) (\s@TargetResourceType' {} a -> s {resourceType = a} :: TargetResourceType)++instance Data.FromJSON TargetResourceType where+ parseJSON =+ Data.withObject+ "TargetResourceType"+ ( \x ->+ TargetResourceType'+ Prelude.<$> (x Data..:? "description")+ Prelude.<*> (x Data..:? "parameters" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "resourceType")+ )++instance Prelude.Hashable TargetResourceType where+ hashWithSalt _salt TargetResourceType' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` parameters+ `Prelude.hashWithSalt` resourceType++instance Prelude.NFData TargetResourceType where+ rnf TargetResourceType' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf parameters+ `Prelude.seq` Prelude.rnf resourceType
+ gen/Amazonka/FIS/Types/TargetResourceTypeParameter.hs view
@@ -0,0 +1,86 @@+{-# 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.FIS.Types.TargetResourceTypeParameter+-- 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.FIS.Types.TargetResourceTypeParameter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes the parameters for a resource type. Use parameters to+-- determine which tasks are identified during target resolution.+--+-- /See:/ 'newTargetResourceTypeParameter' smart constructor.+data TargetResourceTypeParameter = TargetResourceTypeParameter'+ { -- | A description of the parameter.+ description :: Prelude.Maybe Prelude.Text,+ -- | Indicates whether the parameter is required.+ required :: Prelude.Maybe Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TargetResourceTypeParameter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'targetResourceTypeParameter_description' - A description of the parameter.+--+-- 'required', 'targetResourceTypeParameter_required' - Indicates whether the parameter is required.+newTargetResourceTypeParameter ::+ TargetResourceTypeParameter+newTargetResourceTypeParameter =+ TargetResourceTypeParameter'+ { description =+ Prelude.Nothing,+ required = Prelude.Nothing+ }++-- | A description of the parameter.+targetResourceTypeParameter_description :: Lens.Lens' TargetResourceTypeParameter (Prelude.Maybe Prelude.Text)+targetResourceTypeParameter_description = Lens.lens (\TargetResourceTypeParameter' {description} -> description) (\s@TargetResourceTypeParameter' {} a -> s {description = a} :: TargetResourceTypeParameter)++-- | Indicates whether the parameter is required.+targetResourceTypeParameter_required :: Lens.Lens' TargetResourceTypeParameter (Prelude.Maybe Prelude.Bool)+targetResourceTypeParameter_required = Lens.lens (\TargetResourceTypeParameter' {required} -> required) (\s@TargetResourceTypeParameter' {} a -> s {required = a} :: TargetResourceTypeParameter)++instance Data.FromJSON TargetResourceTypeParameter where+ parseJSON =+ Data.withObject+ "TargetResourceTypeParameter"+ ( \x ->+ TargetResourceTypeParameter'+ Prelude.<$> (x Data..:? "description")+ Prelude.<*> (x Data..:? "required")+ )++instance Prelude.Hashable TargetResourceTypeParameter where+ hashWithSalt _salt TargetResourceTypeParameter' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` required++instance Prelude.NFData TargetResourceTypeParameter where+ rnf TargetResourceTypeParameter' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf required
+ gen/Amazonka/FIS/Types/TargetResourceTypeSummary.hs view
@@ -0,0 +1,85 @@+{-# 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.FIS.Types.TargetResourceTypeSummary+-- 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.FIS.Types.TargetResourceTypeSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes a resource type.+--+-- /See:/ 'newTargetResourceTypeSummary' smart constructor.+data TargetResourceTypeSummary = TargetResourceTypeSummary'+ { -- | A description of the resource type.+ description :: Prelude.Maybe Prelude.Text,+ -- | The resource type.+ resourceType :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TargetResourceTypeSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'targetResourceTypeSummary_description' - A description of the resource type.+--+-- 'resourceType', 'targetResourceTypeSummary_resourceType' - The resource type.+newTargetResourceTypeSummary ::+ TargetResourceTypeSummary+newTargetResourceTypeSummary =+ TargetResourceTypeSummary'+ { description =+ Prelude.Nothing,+ resourceType = Prelude.Nothing+ }++-- | A description of the resource type.+targetResourceTypeSummary_description :: Lens.Lens' TargetResourceTypeSummary (Prelude.Maybe Prelude.Text)+targetResourceTypeSummary_description = Lens.lens (\TargetResourceTypeSummary' {description} -> description) (\s@TargetResourceTypeSummary' {} a -> s {description = a} :: TargetResourceTypeSummary)++-- | The resource type.+targetResourceTypeSummary_resourceType :: Lens.Lens' TargetResourceTypeSummary (Prelude.Maybe Prelude.Text)+targetResourceTypeSummary_resourceType = Lens.lens (\TargetResourceTypeSummary' {resourceType} -> resourceType) (\s@TargetResourceTypeSummary' {} a -> s {resourceType = a} :: TargetResourceTypeSummary)++instance Data.FromJSON TargetResourceTypeSummary where+ parseJSON =+ Data.withObject+ "TargetResourceTypeSummary"+ ( \x ->+ TargetResourceTypeSummary'+ Prelude.<$> (x Data..:? "description")+ Prelude.<*> (x Data..:? "resourceType")+ )++instance Prelude.Hashable TargetResourceTypeSummary where+ hashWithSalt _salt TargetResourceTypeSummary' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` resourceType++instance Prelude.NFData TargetResourceTypeSummary where+ rnf TargetResourceTypeSummary' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf resourceType
+ gen/Amazonka/FIS/Types/UpdateExperimentTemplateActionInputItem.hs view
@@ -0,0 +1,137 @@+{-# 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.FIS.Types.UpdateExperimentTemplateActionInputItem+-- 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.FIS.Types.UpdateExperimentTemplateActionInputItem 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++-- | Specifies an action for an experiment template.+--+-- /See:/ 'newUpdateExperimentTemplateActionInputItem' smart constructor.+data UpdateExperimentTemplateActionInputItem = UpdateExperimentTemplateActionInputItem'+ { -- | The ID of the action.+ actionId :: Prelude.Maybe Prelude.Text,+ -- | A description for the action.+ description :: Prelude.Maybe Prelude.Text,+ -- | The parameters for the action, if applicable.+ parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The name of the action that must be completed before the current action+ -- starts. Omit this parameter to run the action at the start of the+ -- experiment.+ startAfter :: Prelude.Maybe [Prelude.Text],+ -- | The targets for the action.+ targets :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateExperimentTemplateActionInputItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actionId', 'updateExperimentTemplateActionInputItem_actionId' - The ID of the action.+--+-- 'description', 'updateExperimentTemplateActionInputItem_description' - A description for the action.+--+-- 'parameters', 'updateExperimentTemplateActionInputItem_parameters' - The parameters for the action, if applicable.+--+-- 'startAfter', 'updateExperimentTemplateActionInputItem_startAfter' - The name of the action that must be completed before the current action+-- starts. Omit this parameter to run the action at the start of the+-- experiment.+--+-- 'targets', 'updateExperimentTemplateActionInputItem_targets' - The targets for the action.+newUpdateExperimentTemplateActionInputItem ::+ UpdateExperimentTemplateActionInputItem+newUpdateExperimentTemplateActionInputItem =+ UpdateExperimentTemplateActionInputItem'+ { actionId =+ Prelude.Nothing,+ description = Prelude.Nothing,+ parameters = Prelude.Nothing,+ startAfter = Prelude.Nothing,+ targets = Prelude.Nothing+ }++-- | The ID of the action.+updateExperimentTemplateActionInputItem_actionId :: Lens.Lens' UpdateExperimentTemplateActionInputItem (Prelude.Maybe Prelude.Text)+updateExperimentTemplateActionInputItem_actionId = Lens.lens (\UpdateExperimentTemplateActionInputItem' {actionId} -> actionId) (\s@UpdateExperimentTemplateActionInputItem' {} a -> s {actionId = a} :: UpdateExperimentTemplateActionInputItem)++-- | A description for the action.+updateExperimentTemplateActionInputItem_description :: Lens.Lens' UpdateExperimentTemplateActionInputItem (Prelude.Maybe Prelude.Text)+updateExperimentTemplateActionInputItem_description = Lens.lens (\UpdateExperimentTemplateActionInputItem' {description} -> description) (\s@UpdateExperimentTemplateActionInputItem' {} a -> s {description = a} :: UpdateExperimentTemplateActionInputItem)++-- | The parameters for the action, if applicable.+updateExperimentTemplateActionInputItem_parameters :: Lens.Lens' UpdateExperimentTemplateActionInputItem (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateExperimentTemplateActionInputItem_parameters = Lens.lens (\UpdateExperimentTemplateActionInputItem' {parameters} -> parameters) (\s@UpdateExperimentTemplateActionInputItem' {} a -> s {parameters = a} :: UpdateExperimentTemplateActionInputItem) Prelude.. Lens.mapping Lens.coerced++-- | The name of the action that must be completed before the current action+-- starts. Omit this parameter to run the action at the start of the+-- experiment.+updateExperimentTemplateActionInputItem_startAfter :: Lens.Lens' UpdateExperimentTemplateActionInputItem (Prelude.Maybe [Prelude.Text])+updateExperimentTemplateActionInputItem_startAfter = Lens.lens (\UpdateExperimentTemplateActionInputItem' {startAfter} -> startAfter) (\s@UpdateExperimentTemplateActionInputItem' {} a -> s {startAfter = a} :: UpdateExperimentTemplateActionInputItem) Prelude.. Lens.mapping Lens.coerced++-- | The targets for the action.+updateExperimentTemplateActionInputItem_targets :: Lens.Lens' UpdateExperimentTemplateActionInputItem (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateExperimentTemplateActionInputItem_targets = Lens.lens (\UpdateExperimentTemplateActionInputItem' {targets} -> targets) (\s@UpdateExperimentTemplateActionInputItem' {} a -> s {targets = a} :: UpdateExperimentTemplateActionInputItem) Prelude.. Lens.mapping Lens.coerced++instance+ Prelude.Hashable+ UpdateExperimentTemplateActionInputItem+ where+ hashWithSalt+ _salt+ UpdateExperimentTemplateActionInputItem' {..} =+ _salt+ `Prelude.hashWithSalt` actionId+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` parameters+ `Prelude.hashWithSalt` startAfter+ `Prelude.hashWithSalt` targets++instance+ Prelude.NFData+ UpdateExperimentTemplateActionInputItem+ where+ rnf UpdateExperimentTemplateActionInputItem' {..} =+ Prelude.rnf actionId+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf parameters+ `Prelude.seq` Prelude.rnf startAfter+ `Prelude.seq` Prelude.rnf targets++instance+ Data.ToJSON+ UpdateExperimentTemplateActionInputItem+ where+ toJSON UpdateExperimentTemplateActionInputItem' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("actionId" Data..=) Prelude.<$> actionId,+ ("description" Data..=) Prelude.<$> description,+ ("parameters" Data..=) Prelude.<$> parameters,+ ("startAfter" Data..=) Prelude.<$> startAfter,+ ("targets" Data..=) Prelude.<$> targets+ ]+ )
+ gen/Amazonka/FIS/Types/UpdateExperimentTemplateLogConfigurationInput.hs view
@@ -0,0 +1,116 @@+{-# 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.FIS.Types.UpdateExperimentTemplateLogConfigurationInput+-- 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.FIS.Types.UpdateExperimentTemplateLogConfigurationInput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ExperimentTemplateCloudWatchLogsLogConfigurationInput+import Amazonka.FIS.Types.ExperimentTemplateS3LogConfigurationInput+import qualified Amazonka.Prelude as Prelude++-- | Specifies the configuration for experiment logging.+--+-- /See:/ 'newUpdateExperimentTemplateLogConfigurationInput' smart constructor.+data UpdateExperimentTemplateLogConfigurationInput = UpdateExperimentTemplateLogConfigurationInput'+ { -- | The configuration for experiment logging to Amazon CloudWatch Logs.+ cloudWatchLogsConfiguration :: Prelude.Maybe ExperimentTemplateCloudWatchLogsLogConfigurationInput,+ -- | The schema version.+ logSchemaVersion :: Prelude.Maybe Prelude.Int,+ -- | The configuration for experiment logging to Amazon S3.+ s3Configuration :: Prelude.Maybe ExperimentTemplateS3LogConfigurationInput+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateExperimentTemplateLogConfigurationInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudWatchLogsConfiguration', 'updateExperimentTemplateLogConfigurationInput_cloudWatchLogsConfiguration' - The configuration for experiment logging to Amazon CloudWatch Logs.+--+-- 'logSchemaVersion', 'updateExperimentTemplateLogConfigurationInput_logSchemaVersion' - The schema version.+--+-- 's3Configuration', 'updateExperimentTemplateLogConfigurationInput_s3Configuration' - The configuration for experiment logging to Amazon S3.+newUpdateExperimentTemplateLogConfigurationInput ::+ UpdateExperimentTemplateLogConfigurationInput+newUpdateExperimentTemplateLogConfigurationInput =+ UpdateExperimentTemplateLogConfigurationInput'+ { cloudWatchLogsConfiguration =+ Prelude.Nothing,+ logSchemaVersion =+ Prelude.Nothing,+ s3Configuration =+ Prelude.Nothing+ }++-- | The configuration for experiment logging to Amazon CloudWatch Logs.+updateExperimentTemplateLogConfigurationInput_cloudWatchLogsConfiguration :: Lens.Lens' UpdateExperimentTemplateLogConfigurationInput (Prelude.Maybe ExperimentTemplateCloudWatchLogsLogConfigurationInput)+updateExperimentTemplateLogConfigurationInput_cloudWatchLogsConfiguration = Lens.lens (\UpdateExperimentTemplateLogConfigurationInput' {cloudWatchLogsConfiguration} -> cloudWatchLogsConfiguration) (\s@UpdateExperimentTemplateLogConfigurationInput' {} a -> s {cloudWatchLogsConfiguration = a} :: UpdateExperimentTemplateLogConfigurationInput)++-- | The schema version.+updateExperimentTemplateLogConfigurationInput_logSchemaVersion :: Lens.Lens' UpdateExperimentTemplateLogConfigurationInput (Prelude.Maybe Prelude.Int)+updateExperimentTemplateLogConfigurationInput_logSchemaVersion = Lens.lens (\UpdateExperimentTemplateLogConfigurationInput' {logSchemaVersion} -> logSchemaVersion) (\s@UpdateExperimentTemplateLogConfigurationInput' {} a -> s {logSchemaVersion = a} :: UpdateExperimentTemplateLogConfigurationInput)++-- | The configuration for experiment logging to Amazon S3.+updateExperimentTemplateLogConfigurationInput_s3Configuration :: Lens.Lens' UpdateExperimentTemplateLogConfigurationInput (Prelude.Maybe ExperimentTemplateS3LogConfigurationInput)+updateExperimentTemplateLogConfigurationInput_s3Configuration = Lens.lens (\UpdateExperimentTemplateLogConfigurationInput' {s3Configuration} -> s3Configuration) (\s@UpdateExperimentTemplateLogConfigurationInput' {} a -> s {s3Configuration = a} :: UpdateExperimentTemplateLogConfigurationInput)++instance+ Prelude.Hashable+ UpdateExperimentTemplateLogConfigurationInput+ where+ hashWithSalt+ _salt+ UpdateExperimentTemplateLogConfigurationInput' {..} =+ _salt+ `Prelude.hashWithSalt` cloudWatchLogsConfiguration+ `Prelude.hashWithSalt` logSchemaVersion+ `Prelude.hashWithSalt` s3Configuration++instance+ Prelude.NFData+ UpdateExperimentTemplateLogConfigurationInput+ where+ rnf+ UpdateExperimentTemplateLogConfigurationInput' {..} =+ Prelude.rnf cloudWatchLogsConfiguration+ `Prelude.seq` Prelude.rnf logSchemaVersion+ `Prelude.seq` Prelude.rnf s3Configuration++instance+ Data.ToJSON+ UpdateExperimentTemplateLogConfigurationInput+ where+ toJSON+ UpdateExperimentTemplateLogConfigurationInput' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("cloudWatchLogsConfiguration" Data..=)+ Prelude.<$> cloudWatchLogsConfiguration,+ ("logSchemaVersion" Data..=)+ Prelude.<$> logSchemaVersion,+ ("s3Configuration" Data..=)+ Prelude.<$> s3Configuration+ ]+ )
+ gen/Amazonka/FIS/Types/UpdateExperimentTemplateStopConditionInput.hs view
@@ -0,0 +1,105 @@+{-# 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.FIS.Types.UpdateExperimentTemplateStopConditionInput+-- 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.FIS.Types.UpdateExperimentTemplateStopConditionInput 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++-- | Specifies a stop condition for an experiment. You can define a stop+-- condition as a CloudWatch alarm.+--+-- /See:/ 'newUpdateExperimentTemplateStopConditionInput' smart constructor.+data UpdateExperimentTemplateStopConditionInput = UpdateExperimentTemplateStopConditionInput'+ { -- | The Amazon Resource Name (ARN) of the CloudWatch alarm.+ value :: Prelude.Maybe Prelude.Text,+ -- | The source for the stop condition. Specify @aws:cloudwatch:alarm@ if the+ -- stop condition is defined by a CloudWatch alarm. Specify @none@ if there+ -- is no stop condition.+ source :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateExperimentTemplateStopConditionInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'value', 'updateExperimentTemplateStopConditionInput_value' - The Amazon Resource Name (ARN) of the CloudWatch alarm.+--+-- 'source', 'updateExperimentTemplateStopConditionInput_source' - The source for the stop condition. Specify @aws:cloudwatch:alarm@ if the+-- stop condition is defined by a CloudWatch alarm. Specify @none@ if there+-- is no stop condition.+newUpdateExperimentTemplateStopConditionInput ::+ -- | 'source'+ Prelude.Text ->+ UpdateExperimentTemplateStopConditionInput+newUpdateExperimentTemplateStopConditionInput+ pSource_ =+ UpdateExperimentTemplateStopConditionInput'+ { value =+ Prelude.Nothing,+ source = pSource_+ }++-- | The Amazon Resource Name (ARN) of the CloudWatch alarm.+updateExperimentTemplateStopConditionInput_value :: Lens.Lens' UpdateExperimentTemplateStopConditionInput (Prelude.Maybe Prelude.Text)+updateExperimentTemplateStopConditionInput_value = Lens.lens (\UpdateExperimentTemplateStopConditionInput' {value} -> value) (\s@UpdateExperimentTemplateStopConditionInput' {} a -> s {value = a} :: UpdateExperimentTemplateStopConditionInput)++-- | The source for the stop condition. Specify @aws:cloudwatch:alarm@ if the+-- stop condition is defined by a CloudWatch alarm. Specify @none@ if there+-- is no stop condition.+updateExperimentTemplateStopConditionInput_source :: Lens.Lens' UpdateExperimentTemplateStopConditionInput Prelude.Text+updateExperimentTemplateStopConditionInput_source = Lens.lens (\UpdateExperimentTemplateStopConditionInput' {source} -> source) (\s@UpdateExperimentTemplateStopConditionInput' {} a -> s {source = a} :: UpdateExperimentTemplateStopConditionInput)++instance+ Prelude.Hashable+ UpdateExperimentTemplateStopConditionInput+ where+ hashWithSalt+ _salt+ UpdateExperimentTemplateStopConditionInput' {..} =+ _salt+ `Prelude.hashWithSalt` value+ `Prelude.hashWithSalt` source++instance+ Prelude.NFData+ UpdateExperimentTemplateStopConditionInput+ where+ rnf UpdateExperimentTemplateStopConditionInput' {..} =+ Prelude.rnf value `Prelude.seq` Prelude.rnf source++instance+ Data.ToJSON+ UpdateExperimentTemplateStopConditionInput+ where+ toJSON+ UpdateExperimentTemplateStopConditionInput' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("value" Data..=) Prelude.<$> value,+ Prelude.Just ("source" Data..= source)+ ]+ )
+ gen/Amazonka/FIS/Types/UpdateExperimentTemplateTargetInput.hs view
@@ -0,0 +1,159 @@+{-# 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.FIS.Types.UpdateExperimentTemplateTargetInput+-- 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.FIS.Types.UpdateExperimentTemplateTargetInput where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types.ExperimentTemplateTargetInputFilter+import qualified Amazonka.Prelude as Prelude++-- | Specifies a target for an experiment. You must specify at least one+-- Amazon Resource Name (ARN) or at least one resource tag. You cannot+-- specify both.+--+-- /See:/ 'newUpdateExperimentTemplateTargetInput' smart constructor.+data UpdateExperimentTemplateTargetInput = UpdateExperimentTemplateTargetInput'+ { -- | The filters to apply to identify target resources using specific+ -- attributes.+ filters :: Prelude.Maybe [ExperimentTemplateTargetInputFilter],+ -- | The resource type parameters.+ parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The Amazon Resource Names (ARNs) of the targets.+ resourceArns :: Prelude.Maybe [Prelude.Text],+ -- | The tags for the target resources.+ resourceTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The resource type. The resource type must be supported for the specified+ -- action.+ resourceType :: Prelude.Text,+ -- | Scopes the identified resources to a specific count or percentage.+ selectionMode :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateExperimentTemplateTargetInput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'updateExperimentTemplateTargetInput_filters' - The filters to apply to identify target resources using specific+-- attributes.+--+-- 'parameters', 'updateExperimentTemplateTargetInput_parameters' - The resource type parameters.+--+-- 'resourceArns', 'updateExperimentTemplateTargetInput_resourceArns' - The Amazon Resource Names (ARNs) of the targets.+--+-- 'resourceTags', 'updateExperimentTemplateTargetInput_resourceTags' - The tags for the target resources.+--+-- 'resourceType', 'updateExperimentTemplateTargetInput_resourceType' - The resource type. The resource type must be supported for the specified+-- action.+--+-- 'selectionMode', 'updateExperimentTemplateTargetInput_selectionMode' - Scopes the identified resources to a specific count or percentage.+newUpdateExperimentTemplateTargetInput ::+ -- | 'resourceType'+ Prelude.Text ->+ -- | 'selectionMode'+ Prelude.Text ->+ UpdateExperimentTemplateTargetInput+newUpdateExperimentTemplateTargetInput+ pResourceType_+ pSelectionMode_ =+ UpdateExperimentTemplateTargetInput'+ { filters =+ Prelude.Nothing,+ parameters = Prelude.Nothing,+ resourceArns = Prelude.Nothing,+ resourceTags = Prelude.Nothing,+ resourceType = pResourceType_,+ selectionMode = pSelectionMode_+ }++-- | The filters to apply to identify target resources using specific+-- attributes.+updateExperimentTemplateTargetInput_filters :: Lens.Lens' UpdateExperimentTemplateTargetInput (Prelude.Maybe [ExperimentTemplateTargetInputFilter])+updateExperimentTemplateTargetInput_filters = Lens.lens (\UpdateExperimentTemplateTargetInput' {filters} -> filters) (\s@UpdateExperimentTemplateTargetInput' {} a -> s {filters = a} :: UpdateExperimentTemplateTargetInput) Prelude.. Lens.mapping Lens.coerced++-- | The resource type parameters.+updateExperimentTemplateTargetInput_parameters :: Lens.Lens' UpdateExperimentTemplateTargetInput (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateExperimentTemplateTargetInput_parameters = Lens.lens (\UpdateExperimentTemplateTargetInput' {parameters} -> parameters) (\s@UpdateExperimentTemplateTargetInput' {} a -> s {parameters = a} :: UpdateExperimentTemplateTargetInput) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Names (ARNs) of the targets.+updateExperimentTemplateTargetInput_resourceArns :: Lens.Lens' UpdateExperimentTemplateTargetInput (Prelude.Maybe [Prelude.Text])+updateExperimentTemplateTargetInput_resourceArns = Lens.lens (\UpdateExperimentTemplateTargetInput' {resourceArns} -> resourceArns) (\s@UpdateExperimentTemplateTargetInput' {} a -> s {resourceArns = a} :: UpdateExperimentTemplateTargetInput) Prelude.. Lens.mapping Lens.coerced++-- | The tags for the target resources.+updateExperimentTemplateTargetInput_resourceTags :: Lens.Lens' UpdateExperimentTemplateTargetInput (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateExperimentTemplateTargetInput_resourceTags = Lens.lens (\UpdateExperimentTemplateTargetInput' {resourceTags} -> resourceTags) (\s@UpdateExperimentTemplateTargetInput' {} a -> s {resourceTags = a} :: UpdateExperimentTemplateTargetInput) Prelude.. Lens.mapping Lens.coerced++-- | The resource type. The resource type must be supported for the specified+-- action.+updateExperimentTemplateTargetInput_resourceType :: Lens.Lens' UpdateExperimentTemplateTargetInput Prelude.Text+updateExperimentTemplateTargetInput_resourceType = Lens.lens (\UpdateExperimentTemplateTargetInput' {resourceType} -> resourceType) (\s@UpdateExperimentTemplateTargetInput' {} a -> s {resourceType = a} :: UpdateExperimentTemplateTargetInput)++-- | Scopes the identified resources to a specific count or percentage.+updateExperimentTemplateTargetInput_selectionMode :: Lens.Lens' UpdateExperimentTemplateTargetInput Prelude.Text+updateExperimentTemplateTargetInput_selectionMode = Lens.lens (\UpdateExperimentTemplateTargetInput' {selectionMode} -> selectionMode) (\s@UpdateExperimentTemplateTargetInput' {} a -> s {selectionMode = a} :: UpdateExperimentTemplateTargetInput)++instance+ Prelude.Hashable+ UpdateExperimentTemplateTargetInput+ where+ hashWithSalt+ _salt+ UpdateExperimentTemplateTargetInput' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` parameters+ `Prelude.hashWithSalt` resourceArns+ `Prelude.hashWithSalt` resourceTags+ `Prelude.hashWithSalt` resourceType+ `Prelude.hashWithSalt` selectionMode++instance+ Prelude.NFData+ UpdateExperimentTemplateTargetInput+ where+ rnf UpdateExperimentTemplateTargetInput' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf parameters+ `Prelude.seq` Prelude.rnf resourceArns+ `Prelude.seq` Prelude.rnf resourceTags+ `Prelude.seq` Prelude.rnf resourceType+ `Prelude.seq` Prelude.rnf selectionMode++instance+ Data.ToJSON+ UpdateExperimentTemplateTargetInput+ where+ toJSON UpdateExperimentTemplateTargetInput' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("filters" Data..=) Prelude.<$> filters,+ ("parameters" Data..=) Prelude.<$> parameters,+ ("resourceArns" Data..=) Prelude.<$> resourceArns,+ ("resourceTags" Data..=) Prelude.<$> resourceTags,+ Prelude.Just ("resourceType" Data..= resourceType),+ Prelude.Just+ ("selectionMode" Data..= selectionMode)+ ]+ )
+ gen/Amazonka/FIS/UntagResource.hs view
@@ -0,0 +1,164 @@+{-# 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.FIS.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 the specified tags from the specified resource.+module Amazonka.FIS.UntagResource+ ( -- * Creating a Request+ UntagResource (..),+ newUntagResource,++ -- * Request Lenses+ untagResource_tagKeys,+ untagResource_resourceArn,++ -- * 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 Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+ { -- | The tag keys to remove.+ tagKeys :: Prelude.Maybe [Prelude.Text],+ -- | The Amazon Resource Name (ARN) of the resource.+ resourceArn :: 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:+--+-- 'tagKeys', 'untagResource_tagKeys' - The tag keys to remove.+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource.+newUntagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ UntagResource+newUntagResource pResourceArn_ =+ UntagResource'+ { tagKeys = Prelude.Nothing,+ resourceArn = pResourceArn_+ }++-- | The tag keys to remove.+untagResource_tagKeys :: Lens.Lens' UntagResource (Prelude.Maybe [Prelude.Text])+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the resource.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++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` tagKeys+ `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData UntagResource where+ rnf UntagResource' {..} =+ Prelude.rnf tagKeys+ `Prelude.seq` Prelude.rnf resourceArn++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.toQuery+ (Data.toQueryList "member" Prelude.<$> 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/FIS/UpdateExperimentTemplate.hs view
@@ -0,0 +1,257 @@+{-# 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.FIS.UpdateExperimentTemplate+-- 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 the specified experiment template.+module Amazonka.FIS.UpdateExperimentTemplate+ ( -- * Creating a Request+ UpdateExperimentTemplate (..),+ newUpdateExperimentTemplate,++ -- * Request Lenses+ updateExperimentTemplate_actions,+ updateExperimentTemplate_description,+ updateExperimentTemplate_logConfiguration,+ updateExperimentTemplate_roleArn,+ updateExperimentTemplate_stopConditions,+ updateExperimentTemplate_targets,+ updateExperimentTemplate_id,++ -- * Destructuring the Response+ UpdateExperimentTemplateResponse (..),+ newUpdateExperimentTemplateResponse,++ -- * Response Lenses+ updateExperimentTemplateResponse_experimentTemplate,+ updateExperimentTemplateResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateExperimentTemplate' smart constructor.+data UpdateExperimentTemplate = UpdateExperimentTemplate'+ { -- | The actions for the experiment.+ actions :: Prelude.Maybe (Prelude.HashMap Prelude.Text UpdateExperimentTemplateActionInputItem),+ -- | A description for the template.+ description :: Prelude.Maybe Prelude.Text,+ -- | The configuration for experiment logging.+ logConfiguration :: Prelude.Maybe UpdateExperimentTemplateLogConfigurationInput,+ -- | The Amazon Resource Name (ARN) of an IAM role that grants the FIS+ -- service permission to perform service actions on your behalf.+ roleArn :: Prelude.Maybe Prelude.Text,+ -- | The stop conditions for the experiment.+ stopConditions :: Prelude.Maybe [UpdateExperimentTemplateStopConditionInput],+ -- | The targets for the experiment.+ targets :: Prelude.Maybe (Prelude.HashMap Prelude.Text UpdateExperimentTemplateTargetInput),+ -- | The ID of the experiment template.+ id :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateExperimentTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actions', 'updateExperimentTemplate_actions' - The actions for the experiment.+--+-- 'description', 'updateExperimentTemplate_description' - A description for the template.+--+-- 'logConfiguration', 'updateExperimentTemplate_logConfiguration' - The configuration for experiment logging.+--+-- 'roleArn', 'updateExperimentTemplate_roleArn' - The Amazon Resource Name (ARN) of an IAM role that grants the FIS+-- service permission to perform service actions on your behalf.+--+-- 'stopConditions', 'updateExperimentTemplate_stopConditions' - The stop conditions for the experiment.+--+-- 'targets', 'updateExperimentTemplate_targets' - The targets for the experiment.+--+-- 'id', 'updateExperimentTemplate_id' - The ID of the experiment template.+newUpdateExperimentTemplate ::+ -- | 'id'+ Prelude.Text ->+ UpdateExperimentTemplate+newUpdateExperimentTemplate pId_ =+ UpdateExperimentTemplate'+ { actions =+ Prelude.Nothing,+ description = Prelude.Nothing,+ logConfiguration = Prelude.Nothing,+ roleArn = Prelude.Nothing,+ stopConditions = Prelude.Nothing,+ targets = Prelude.Nothing,+ id = pId_+ }++-- | The actions for the experiment.+updateExperimentTemplate_actions :: Lens.Lens' UpdateExperimentTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text UpdateExperimentTemplateActionInputItem))+updateExperimentTemplate_actions = Lens.lens (\UpdateExperimentTemplate' {actions} -> actions) (\s@UpdateExperimentTemplate' {} a -> s {actions = a} :: UpdateExperimentTemplate) Prelude.. Lens.mapping Lens.coerced++-- | A description for the template.+updateExperimentTemplate_description :: Lens.Lens' UpdateExperimentTemplate (Prelude.Maybe Prelude.Text)+updateExperimentTemplate_description = Lens.lens (\UpdateExperimentTemplate' {description} -> description) (\s@UpdateExperimentTemplate' {} a -> s {description = a} :: UpdateExperimentTemplate)++-- | The configuration for experiment logging.+updateExperimentTemplate_logConfiguration :: Lens.Lens' UpdateExperimentTemplate (Prelude.Maybe UpdateExperimentTemplateLogConfigurationInput)+updateExperimentTemplate_logConfiguration = Lens.lens (\UpdateExperimentTemplate' {logConfiguration} -> logConfiguration) (\s@UpdateExperimentTemplate' {} a -> s {logConfiguration = a} :: UpdateExperimentTemplate)++-- | The Amazon Resource Name (ARN) of an IAM role that grants the FIS+-- service permission to perform service actions on your behalf.+updateExperimentTemplate_roleArn :: Lens.Lens' UpdateExperimentTemplate (Prelude.Maybe Prelude.Text)+updateExperimentTemplate_roleArn = Lens.lens (\UpdateExperimentTemplate' {roleArn} -> roleArn) (\s@UpdateExperimentTemplate' {} a -> s {roleArn = a} :: UpdateExperimentTemplate)++-- | The stop conditions for the experiment.+updateExperimentTemplate_stopConditions :: Lens.Lens' UpdateExperimentTemplate (Prelude.Maybe [UpdateExperimentTemplateStopConditionInput])+updateExperimentTemplate_stopConditions = Lens.lens (\UpdateExperimentTemplate' {stopConditions} -> stopConditions) (\s@UpdateExperimentTemplate' {} a -> s {stopConditions = a} :: UpdateExperimentTemplate) Prelude.. Lens.mapping Lens.coerced++-- | The targets for the experiment.+updateExperimentTemplate_targets :: Lens.Lens' UpdateExperimentTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text UpdateExperimentTemplateTargetInput))+updateExperimentTemplate_targets = Lens.lens (\UpdateExperimentTemplate' {targets} -> targets) (\s@UpdateExperimentTemplate' {} a -> s {targets = a} :: UpdateExperimentTemplate) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the experiment template.+updateExperimentTemplate_id :: Lens.Lens' UpdateExperimentTemplate Prelude.Text+updateExperimentTemplate_id = Lens.lens (\UpdateExperimentTemplate' {id} -> id) (\s@UpdateExperimentTemplate' {} a -> s {id = a} :: UpdateExperimentTemplate)++instance Core.AWSRequest UpdateExperimentTemplate where+ type+ AWSResponse UpdateExperimentTemplate =+ UpdateExperimentTemplateResponse+ request overrides =+ Request.patchJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateExperimentTemplateResponse'+ Prelude.<$> (x Data..?> "experimentTemplate")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateExperimentTemplate where+ hashWithSalt _salt UpdateExperimentTemplate' {..} =+ _salt+ `Prelude.hashWithSalt` actions+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` logConfiguration+ `Prelude.hashWithSalt` roleArn+ `Prelude.hashWithSalt` stopConditions+ `Prelude.hashWithSalt` targets+ `Prelude.hashWithSalt` id++instance Prelude.NFData UpdateExperimentTemplate where+ rnf UpdateExperimentTemplate' {..} =+ Prelude.rnf actions+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf logConfiguration+ `Prelude.seq` Prelude.rnf roleArn+ `Prelude.seq` Prelude.rnf stopConditions+ `Prelude.seq` Prelude.rnf targets+ `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders UpdateExperimentTemplate where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateExperimentTemplate where+ toJSON UpdateExperimentTemplate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("actions" Data..=) Prelude.<$> actions,+ ("description" Data..=) Prelude.<$> description,+ ("logConfiguration" Data..=)+ Prelude.<$> logConfiguration,+ ("roleArn" Data..=) Prelude.<$> roleArn,+ ("stopConditions" Data..=)+ Prelude.<$> stopConditions,+ ("targets" Data..=) Prelude.<$> targets+ ]+ )++instance Data.ToPath UpdateExperimentTemplate where+ toPath UpdateExperimentTemplate' {..} =+ Prelude.mconcat+ ["/experimentTemplates/", Data.toBS id]++instance Data.ToQuery UpdateExperimentTemplate where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateExperimentTemplateResponse' smart constructor.+data UpdateExperimentTemplateResponse = UpdateExperimentTemplateResponse'+ { -- | Information about the experiment template.+ experimentTemplate :: Prelude.Maybe ExperimentTemplate,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateExperimentTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'experimentTemplate', 'updateExperimentTemplateResponse_experimentTemplate' - Information about the experiment template.+--+-- 'httpStatus', 'updateExperimentTemplateResponse_httpStatus' - The response's http status code.+newUpdateExperimentTemplateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateExperimentTemplateResponse+newUpdateExperimentTemplateResponse pHttpStatus_ =+ UpdateExperimentTemplateResponse'+ { experimentTemplate =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Information about the experiment template.+updateExperimentTemplateResponse_experimentTemplate :: Lens.Lens' UpdateExperimentTemplateResponse (Prelude.Maybe ExperimentTemplate)+updateExperimentTemplateResponse_experimentTemplate = Lens.lens (\UpdateExperimentTemplateResponse' {experimentTemplate} -> experimentTemplate) (\s@UpdateExperimentTemplateResponse' {} a -> s {experimentTemplate = a} :: UpdateExperimentTemplateResponse)++-- | The response's http status code.+updateExperimentTemplateResponse_httpStatus :: Lens.Lens' UpdateExperimentTemplateResponse Prelude.Int+updateExperimentTemplateResponse_httpStatus = Lens.lens (\UpdateExperimentTemplateResponse' {httpStatus} -> httpStatus) (\s@UpdateExperimentTemplateResponse' {} a -> s {httpStatus = a} :: UpdateExperimentTemplateResponse)++instance+ Prelude.NFData+ UpdateExperimentTemplateResponse+ where+ rnf UpdateExperimentTemplateResponse' {..} =+ Prelude.rnf experimentTemplate+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FIS/Waiters.hs view
@@ -0,0 +1,24 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.FIS.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.FIS.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FIS.Lens+import Amazonka.FIS.Types+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Main+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.FIS+import Test.Amazonka.FIS.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "FIS"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/FIS.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.FIS+-- 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.FIS+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/FIS/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.FIS.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.FIS.Internal where
+ test/Test/Amazonka/Gen/FIS.hs view
@@ -0,0 +1,358 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Test.Amazonka.Gen.FIS+-- 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.FIS where++import Amazonka.FIS+import qualified Data.Proxy as Proxy+import Test.Amazonka.FIS.Internal+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+-- [ testGroup "request"+-- [ requestCreateExperimentTemplate $+-- newCreateExperimentTemplate+--+-- , requestDeleteExperimentTemplate $+-- newDeleteExperimentTemplate+--+-- , requestGetAction $+-- newGetAction+--+-- , requestGetExperiment $+-- newGetExperiment+--+-- , requestGetExperimentTemplate $+-- newGetExperimentTemplate+--+-- , requestGetTargetResourceType $+-- newGetTargetResourceType+--+-- , requestListActions $+-- newListActions+--+-- , requestListExperimentTemplates $+-- newListExperimentTemplates+--+-- , requestListExperiments $+-- newListExperiments+--+-- , requestListTagsForResource $+-- newListTagsForResource+--+-- , requestListTargetResourceTypes $+-- newListTargetResourceTypes+--+-- , requestStartExperiment $+-- newStartExperiment+--+-- , requestStopExperiment $+-- newStopExperiment+--+-- , requestTagResource $+-- newTagResource+--+-- , requestUntagResource $+-- newUntagResource+--+-- , requestUpdateExperimentTemplate $+-- newUpdateExperimentTemplate+--+-- ]++-- , testGroup "response"+-- [ responseCreateExperimentTemplate $+-- newCreateExperimentTemplateResponse+--+-- , responseDeleteExperimentTemplate $+-- newDeleteExperimentTemplateResponse+--+-- , responseGetAction $+-- newGetActionResponse+--+-- , responseGetExperiment $+-- newGetExperimentResponse+--+-- , responseGetExperimentTemplate $+-- newGetExperimentTemplateResponse+--+-- , responseGetTargetResourceType $+-- newGetTargetResourceTypeResponse+--+-- , responseListActions $+-- newListActionsResponse+--+-- , responseListExperimentTemplates $+-- newListExperimentTemplatesResponse+--+-- , responseListExperiments $+-- newListExperimentsResponse+--+-- , responseListTagsForResource $+-- newListTagsForResourceResponse+--+-- , responseListTargetResourceTypes $+-- newListTargetResourceTypesResponse+--+-- , responseStartExperiment $+-- newStartExperimentResponse+--+-- , responseStopExperiment $+-- newStopExperimentResponse+--+-- , responseTagResource $+-- newTagResourceResponse+--+-- , responseUntagResource $+-- newUntagResourceResponse+--+-- , responseUpdateExperimentTemplate $+-- newUpdateExperimentTemplateResponse+--+-- ]+-- ]++-- Requests++requestCreateExperimentTemplate :: CreateExperimentTemplate -> TestTree+requestCreateExperimentTemplate =+ req+ "CreateExperimentTemplate"+ "fixture/CreateExperimentTemplate.yaml"++requestDeleteExperimentTemplate :: DeleteExperimentTemplate -> TestTree+requestDeleteExperimentTemplate =+ req+ "DeleteExperimentTemplate"+ "fixture/DeleteExperimentTemplate.yaml"++requestGetAction :: GetAction -> TestTree+requestGetAction =+ req+ "GetAction"+ "fixture/GetAction.yaml"++requestGetExperiment :: GetExperiment -> TestTree+requestGetExperiment =+ req+ "GetExperiment"+ "fixture/GetExperiment.yaml"++requestGetExperimentTemplate :: GetExperimentTemplate -> TestTree+requestGetExperimentTemplate =+ req+ "GetExperimentTemplate"+ "fixture/GetExperimentTemplate.yaml"++requestGetTargetResourceType :: GetTargetResourceType -> TestTree+requestGetTargetResourceType =+ req+ "GetTargetResourceType"+ "fixture/GetTargetResourceType.yaml"++requestListActions :: ListActions -> TestTree+requestListActions =+ req+ "ListActions"+ "fixture/ListActions.yaml"++requestListExperimentTemplates :: ListExperimentTemplates -> TestTree+requestListExperimentTemplates =+ req+ "ListExperimentTemplates"+ "fixture/ListExperimentTemplates.yaml"++requestListExperiments :: ListExperiments -> TestTree+requestListExperiments =+ req+ "ListExperiments"+ "fixture/ListExperiments.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+ req+ "ListTagsForResource"+ "fixture/ListTagsForResource.yaml"++requestListTargetResourceTypes :: ListTargetResourceTypes -> TestTree+requestListTargetResourceTypes =+ req+ "ListTargetResourceTypes"+ "fixture/ListTargetResourceTypes.yaml"++requestStartExperiment :: StartExperiment -> TestTree+requestStartExperiment =+ req+ "StartExperiment"+ "fixture/StartExperiment.yaml"++requestStopExperiment :: StopExperiment -> TestTree+requestStopExperiment =+ req+ "StopExperiment"+ "fixture/StopExperiment.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+ req+ "TagResource"+ "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+ req+ "UntagResource"+ "fixture/UntagResource.yaml"++requestUpdateExperimentTemplate :: UpdateExperimentTemplate -> TestTree+requestUpdateExperimentTemplate =+ req+ "UpdateExperimentTemplate"+ "fixture/UpdateExperimentTemplate.yaml"++-- Responses++responseCreateExperimentTemplate :: CreateExperimentTemplateResponse -> TestTree+responseCreateExperimentTemplate =+ res+ "CreateExperimentTemplateResponse"+ "fixture/CreateExperimentTemplateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateExperimentTemplate)++responseDeleteExperimentTemplate :: DeleteExperimentTemplateResponse -> TestTree+responseDeleteExperimentTemplate =+ res+ "DeleteExperimentTemplateResponse"+ "fixture/DeleteExperimentTemplateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteExperimentTemplate)++responseGetAction :: GetActionResponse -> TestTree+responseGetAction =+ res+ "GetActionResponse"+ "fixture/GetActionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetAction)++responseGetExperiment :: GetExperimentResponse -> TestTree+responseGetExperiment =+ res+ "GetExperimentResponse"+ "fixture/GetExperimentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetExperiment)++responseGetExperimentTemplate :: GetExperimentTemplateResponse -> TestTree+responseGetExperimentTemplate =+ res+ "GetExperimentTemplateResponse"+ "fixture/GetExperimentTemplateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetExperimentTemplate)++responseGetTargetResourceType :: GetTargetResourceTypeResponse -> TestTree+responseGetTargetResourceType =+ res+ "GetTargetResourceTypeResponse"+ "fixture/GetTargetResourceTypeResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetTargetResourceType)++responseListActions :: ListActionsResponse -> TestTree+responseListActions =+ res+ "ListActionsResponse"+ "fixture/ListActionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListActions)++responseListExperimentTemplates :: ListExperimentTemplatesResponse -> TestTree+responseListExperimentTemplates =+ res+ "ListExperimentTemplatesResponse"+ "fixture/ListExperimentTemplatesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListExperimentTemplates)++responseListExperiments :: ListExperimentsResponse -> TestTree+responseListExperiments =+ res+ "ListExperimentsResponse"+ "fixture/ListExperimentsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListExperiments)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+ res+ "ListTagsForResourceResponse"+ "fixture/ListTagsForResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListTargetResourceTypes :: ListTargetResourceTypesResponse -> TestTree+responseListTargetResourceTypes =+ res+ "ListTargetResourceTypesResponse"+ "fixture/ListTargetResourceTypesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTargetResourceTypes)++responseStartExperiment :: StartExperimentResponse -> TestTree+responseStartExperiment =+ res+ "StartExperimentResponse"+ "fixture/StartExperimentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy StartExperiment)++responseStopExperiment :: StopExperimentResponse -> TestTree+responseStopExperiment =+ res+ "StopExperimentResponse"+ "fixture/StopExperimentResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy StopExperiment)++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)++responseUpdateExperimentTemplate :: UpdateExperimentTemplateResponse -> TestTree+responseUpdateExperimentTemplate =+ res+ "UpdateExperimentTemplateResponse"+ "fixture/UpdateExperimentTemplateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateExperimentTemplate)