amazonka-memorydb (empty) → 2.0
raw patch · 170 files changed
+18186/−0 lines, 170 filesdep +amazonka-coredep +amazonka-memorydbdep +amazonka-test
Dependencies added: amazonka-core, amazonka-memorydb, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-memorydb.cabal +165/−0
- fixture/BatchUpdateCluster.yaml +10/−0
- fixture/BatchUpdateClusterResponse.proto +0/−0
- fixture/CopySnapshot.yaml +10/−0
- fixture/CopySnapshotResponse.proto +0/−0
- fixture/CreateACL.yaml +10/−0
- fixture/CreateACLResponse.proto +0/−0
- fixture/CreateCluster.yaml +10/−0
- fixture/CreateClusterResponse.proto +0/−0
- fixture/CreateParameterGroup.yaml +10/−0
- fixture/CreateParameterGroupResponse.proto +0/−0
- fixture/CreateSnapshot.yaml +10/−0
- fixture/CreateSnapshotResponse.proto +0/−0
- fixture/CreateSubnetGroup.yaml +10/−0
- fixture/CreateSubnetGroupResponse.proto +0/−0
- fixture/CreateUser.yaml +10/−0
- fixture/CreateUserResponse.proto +0/−0
- fixture/DeleteACL.yaml +10/−0
- fixture/DeleteACLResponse.proto +0/−0
- fixture/DeleteCluster.yaml +10/−0
- fixture/DeleteClusterResponse.proto +0/−0
- fixture/DeleteParameterGroup.yaml +10/−0
- fixture/DeleteParameterGroupResponse.proto +0/−0
- fixture/DeleteSnapshot.yaml +10/−0
- fixture/DeleteSnapshotResponse.proto +0/−0
- fixture/DeleteSubnetGroup.yaml +10/−0
- fixture/DeleteSubnetGroupResponse.proto +0/−0
- fixture/DeleteUser.yaml +10/−0
- fixture/DeleteUserResponse.proto +0/−0
- fixture/DescribeACLs.yaml +10/−0
- fixture/DescribeACLsResponse.proto +0/−0
- fixture/DescribeClusters.yaml +10/−0
- fixture/DescribeClustersResponse.proto +0/−0
- fixture/DescribeEngineVersions.yaml +10/−0
- fixture/DescribeEngineVersionsResponse.proto +0/−0
- fixture/DescribeEvents.yaml +10/−0
- fixture/DescribeEventsResponse.proto +0/−0
- fixture/DescribeParameterGroups.yaml +10/−0
- fixture/DescribeParameterGroupsResponse.proto +0/−0
- fixture/DescribeParameters.yaml +10/−0
- fixture/DescribeParametersResponse.proto +0/−0
- fixture/DescribeReservedNodes.yaml +10/−0
- fixture/DescribeReservedNodesOfferings.yaml +10/−0
- fixture/DescribeReservedNodesOfferingsResponse.proto +0/−0
- fixture/DescribeReservedNodesResponse.proto +0/−0
- fixture/DescribeServiceUpdates.yaml +10/−0
- fixture/DescribeServiceUpdatesResponse.proto +0/−0
- fixture/DescribeSnapshots.yaml +10/−0
- fixture/DescribeSnapshotsResponse.proto +0/−0
- fixture/DescribeSubnetGroups.yaml +10/−0
- fixture/DescribeSubnetGroupsResponse.proto +0/−0
- fixture/DescribeUsers.yaml +10/−0
- fixture/DescribeUsersResponse.proto +0/−0
- fixture/FailoverShard.yaml +10/−0
- fixture/FailoverShardResponse.proto +0/−0
- fixture/ListAllowedNodeTypeUpdates.yaml +10/−0
- fixture/ListAllowedNodeTypeUpdatesResponse.proto +0/−0
- fixture/ListTags.yaml +10/−0
- fixture/ListTagsResponse.proto +0/−0
- fixture/PurchaseReservedNodesOffering.yaml +10/−0
- fixture/PurchaseReservedNodesOfferingResponse.proto +0/−0
- fixture/ResetParameterGroup.yaml +10/−0
- fixture/ResetParameterGroupResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UpdateACL.yaml +10/−0
- fixture/UpdateACLResponse.proto +0/−0
- fixture/UpdateCluster.yaml +10/−0
- fixture/UpdateClusterResponse.proto +0/−0
- fixture/UpdateParameterGroup.yaml +10/−0
- fixture/UpdateParameterGroupResponse.proto +0/−0
- fixture/UpdateSubnetGroup.yaml +10/−0
- fixture/UpdateSubnetGroupResponse.proto +0/−0
- fixture/UpdateUser.yaml +10/−0
- fixture/UpdateUserResponse.proto +0/−0
- gen/Amazonka/MemoryDb.hs +661/−0
- gen/Amazonka/MemoryDb/BatchUpdateCluster.hs +205/−0
- gen/Amazonka/MemoryDb/CopySnapshot.hs +252/−0
- gen/Amazonka/MemoryDb/CreateACL.hs +198/−0
- gen/Amazonka/MemoryDb/CreateCluster.hs +594/−0
- gen/Amazonka/MemoryDb/CreateParameterGroup.hs +225/−0
- gen/Amazonka/MemoryDb/CreateSnapshot.hs +216/−0
- gen/Amazonka/MemoryDb/CreateSubnetGroup.hs +222/−0
- gen/Amazonka/MemoryDb/CreateUser.hs +225/−0
- gen/Amazonka/MemoryDb/DeleteACL.hs +165/−0
- gen/Amazonka/MemoryDb/DeleteCluster.hs +193/−0
- gen/Amazonka/MemoryDb/DeleteParameterGroup.hs +176/−0
- gen/Amazonka/MemoryDb/DeleteSnapshot.hs +169/−0
- gen/Amazonka/MemoryDb/DeleteSubnetGroup.hs +175/−0
- gen/Amazonka/MemoryDb/DeleteUser.hs +164/−0
- gen/Amazonka/MemoryDb/DescribeACLs.hs +257/−0
- gen/Amazonka/MemoryDb/DescribeClusters.hs +282/−0
- gen/Amazonka/MemoryDb/DescribeEngineVersions.hs +300/−0
- gen/Amazonka/MemoryDb/DescribeEvents.hs +333/−0
- gen/Amazonka/MemoryDb/DescribeParameterGroups.hs +276/−0
- gen/Amazonka/MemoryDb/DescribeParameters.hs +269/−0
- gen/Amazonka/MemoryDb/DescribeReservedNodes.hs +335/−0
- gen/Amazonka/MemoryDb/DescribeReservedNodesOfferings.hs +338/−0
- gen/Amazonka/MemoryDb/DescribeServiceUpdates.hs +294/−0
- gen/Amazonka/MemoryDb/DescribeSnapshots.hs +326/−0
- gen/Amazonka/MemoryDb/DescribeSubnetGroups.hs +268/−0
- gen/Amazonka/MemoryDb/DescribeUsers.hs +275/−0
- gen/Amazonka/MemoryDb/FailoverShard.hs +191/−0
- gen/Amazonka/MemoryDb/Lens.hs +645/−0
- gen/Amazonka/MemoryDb/ListAllowedNodeTypeUpdates.hs +202/−0
- gen/Amazonka/MemoryDb/ListTags.hs +169/−0
- gen/Amazonka/MemoryDb/PurchaseReservedNodesOffering.hs +231/−0
- gen/Amazonka/MemoryDb/ResetParameterGroup.hs +217/−0
- gen/Amazonka/MemoryDb/TagResource.hs +199/−0
- gen/Amazonka/MemoryDb/Types.hs +845/−0
- gen/Amazonka/MemoryDb/Types/ACL.hs +151/−0
- gen/Amazonka/MemoryDb/Types/ACLPendingChanges.hs +88/−0
- gen/Amazonka/MemoryDb/Types/ACLsUpdateStatus.hs +68/−0
- gen/Amazonka/MemoryDb/Types/AZStatus.hs +71/−0
- gen/Amazonka/MemoryDb/Types/Authentication.hs +86/−0
- gen/Amazonka/MemoryDb/Types/AuthenticationMode.hs +88/−0
- gen/Amazonka/MemoryDb/Types/AuthenticationType.hs +71/−0
- gen/Amazonka/MemoryDb/Types/AvailabilityZone.hs +68/−0
- gen/Amazonka/MemoryDb/Types/Cluster.hs +430/−0
- gen/Amazonka/MemoryDb/Types/ClusterConfiguration.hs +233/−0
- gen/Amazonka/MemoryDb/Types/ClusterPendingUpdates.hs +102/−0
- gen/Amazonka/MemoryDb/Types/DataTieringStatus.hs +71/−0
- gen/Amazonka/MemoryDb/Types/Endpoint.hs +84/−0
- gen/Amazonka/MemoryDb/Types/EngineVersionInfo.hs +100/−0
- gen/Amazonka/MemoryDb/Types/Event.hs +117/−0
- gen/Amazonka/MemoryDb/Types/Filter.hs +87/−0
- gen/Amazonka/MemoryDb/Types/InputAuthenticationType.hs +66/−0
- gen/Amazonka/MemoryDb/Types/Node.hs +128/−0
- gen/Amazonka/MemoryDb/Types/Parameter.hs +133/−0
- gen/Amazonka/MemoryDb/Types/ParameterGroup.hs +113/−0
- gen/Amazonka/MemoryDb/Types/ParameterNameValue.hs +86/−0
- gen/Amazonka/MemoryDb/Types/PendingModifiedServiceUpdate.hs +90/−0
- gen/Amazonka/MemoryDb/Types/RecurringCharge.hs +85/−0
- gen/Amazonka/MemoryDb/Types/ReplicaConfigurationRequest.hs +70/−0
- gen/Amazonka/MemoryDb/Types/ReservedNode.hs +196/−0
- gen/Amazonka/MemoryDb/Types/ReservedNodesOffering.hs +139/−0
- gen/Amazonka/MemoryDb/Types/ReshardingStatus.hs +69/−0
- gen/Amazonka/MemoryDb/Types/SecurityGroupMembership.hs +91/−0
- gen/Amazonka/MemoryDb/Types/ServiceUpdate.hs +159/−0
- gen/Amazonka/MemoryDb/Types/ServiceUpdateRequest.hs +73/−0
- gen/Amazonka/MemoryDb/Types/ServiceUpdateStatus.hs +81/−0
- gen/Amazonka/MemoryDb/Types/ServiceUpdateType.hs +66/−0
- gen/Amazonka/MemoryDb/Types/Shard.hs +126/−0
- gen/Amazonka/MemoryDb/Types/ShardConfiguration.hs +91/−0
- gen/Amazonka/MemoryDb/Types/ShardConfigurationRequest.hs +70/−0
- gen/Amazonka/MemoryDb/Types/ShardDetail.hs +109/−0
- gen/Amazonka/MemoryDb/Types/SlotMigration.hs +72/−0
- gen/Amazonka/MemoryDb/Types/Snapshot.hs +162/−0
- gen/Amazonka/MemoryDb/Types/SourceType.hs +91/−0
- gen/Amazonka/MemoryDb/Types/Subnet.hs +87/−0
- gen/Amazonka/MemoryDb/Types/SubnetGroup.hs +132/−0
- gen/Amazonka/MemoryDb/Types/Tag.hs +97/−0
- gen/Amazonka/MemoryDb/Types/UnprocessedCluster.hs +96/−0
- gen/Amazonka/MemoryDb/Types/User.hs +151/−0
- gen/Amazonka/MemoryDb/UntagResource.hs +188/−0
- gen/Amazonka/MemoryDb/UpdateACL.hs +196/−0
- gen/Amazonka/MemoryDb/UpdateCluster.hs +441/−0
- gen/Amazonka/MemoryDb/UpdateParameterGroup.hs +197/−0
- gen/Amazonka/MemoryDb/UpdateSubnetGroup.hs +201/−0
- gen/Amazonka/MemoryDb/UpdateUser.hs +198/−0
- gen/Amazonka/MemoryDb/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/Gen/MemoryDb.hs +798/−0
- test/Test/Amazonka/MemoryDb.hs +20/−0
- test/Test/Amazonka/MemoryDb/Internal.hs +8/−0
+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+ means each individual or legal entity that creates, contributes to+ the creation of, or owns Covered Software.++1.2. "Contributor Version"+ means the combination of the Contributions of others (if any) used+ by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+ means Covered Software of a particular Contributor.++1.4. "Covered Software"+ means Source Code Form to which the initial Contributor has attached+ the notice in Exhibit A, the Executable Form of such Source Code+ Form, and Modifications of such Source Code Form, in each case+ including portions thereof.++1.5. "Incompatible With Secondary Licenses"+ means++ (a) that the initial Contributor has attached the notice described+ in Exhibit B to the Covered Software; or++ (b) that the Covered Software was made available under the terms of+ version 1.1 or earlier of the License, but not also under the+ terms of a Secondary License.++1.6. "Executable Form"+ means any form of the work other than Source Code Form.++1.7. "Larger Work"+ means a work that combines Covered Software with other material, in+ a separate file or files, that is not Covered Software.++1.8. "License"+ means this document.++1.9. "Licensable"+ means having the right to grant, to the maximum extent possible,+ whether at the time of the initial grant or subsequently, any and+ all of the rights conveyed by this License.++1.10. "Modifications"+ means any of the following:++ (a) any file in Source Code Form that results from an addition to,+ deletion from, or modification of the contents of Covered+ Software; or++ (b) any new file in Source Code Form that contains any Covered+ Software.++1.11. "Patent Claims" of a Contributor+ means any patent claim(s), including without limitation, method,+ process, and apparatus claims, in any patent Licensable by such+ Contributor that would be infringed, but for the grant of the+ License, by the making, using, selling, offering for sale, having+ made, import, or transfer of either its Contributions or its+ Contributor Version.++1.12. "Secondary License"+ means either the GNU General Public License, Version 2.0, the GNU+ Lesser General Public License, Version 2.1, the GNU Affero General+ Public License, Version 3.0, or any later versions of those+ licenses.++1.13. "Source Code Form"+ means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+ means an individual or a legal entity exercising rights under this+ License. For legal entities, "You" includes any entity that+ controls, is controlled by, or is under common control with You. For+ purposes of this definition, "control" means (a) the power, direct+ or indirect, to cause the direction or management of such entity,+ whether by contract or otherwise, or (b) ownership of more than+ fifty percent (50%) of the outstanding shares or beneficial+ ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+ Licensable by such Contributor to use, reproduce, make available,+ modify, display, perform, distribute, and otherwise exploit its+ Contributions, either on an unmodified basis, with Modifications, or+ as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+ for sale, have made, import, and otherwise transfer either its+ Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+ or++(b) for infringements caused by: (i) Your and any other third party's+ modifications of Covered Software, or (ii) the combination of its+ Contributions with other software (except as part of its Contributor+ Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+ its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+ Form, as described in Section 3.1, and You must inform recipients of+ the Executable Form how they can obtain a copy of such Source Code+ Form by reasonable means in a timely manner, at a charge no more+ than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+ License, or sublicense it under different terms, provided that the+ license for the Executable Form does not attempt to limit or alter+ the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+* *+* 6. Disclaimer of Warranty *+* ------------------------- *+* *+* Covered Software is provided under this License on an "as is" *+* basis, without warranty of any kind, either expressed, implied, or *+* statutory, including, without limitation, warranties that the *+* Covered Software is free of defects, merchantable, fit for a *+* particular purpose or non-infringing. The entire risk as to the *+* quality and performance of the Covered Software is with You. *+* Should any Covered Software prove defective in any respect, You *+* (not any Contributor) assume the cost of any necessary servicing, *+* repair, or correction. This disclaimer of warranty constitutes an *+* essential part of this License. No use of any Covered Software is *+* authorized under this License except under this disclaimer. *+* *+************************************************************************++************************************************************************+* *+* 7. Limitation of Liability *+* -------------------------- *+* *+* Under no circumstances and under no legal theory, whether tort *+* (including negligence), contract, or otherwise, shall any *+* Contributor, or anyone who distributes Covered Software as *+* permitted above, be liable to You for any direct, indirect, *+* special, incidental, or consequential damages of any character *+* including, without limitation, damages for lost profits, loss of *+* goodwill, work stoppage, computer failure or malfunction, or any *+* and all other commercial damages or losses, even if such party *+* shall have been informed of the possibility of such damages. This *+* limitation of liability shall not apply to liability for death or *+* personal injury resulting from such party's negligence to the *+* extent applicable law prohibits such limitation. Some *+* jurisdictions do not allow the exclusion or limitation of *+* incidental or consequential damages, so this exclusion and *+* limitation may not apply to You. *+* *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++ This Source Code Form is subject to the terms of the Mozilla Public+ License, v. 2.0. If a copy of the MPL was not distributed with this+ file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon MemoryDB SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2021-01-01@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-memorydb)+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.MemoryDb](http://hackage.haskell.org/package/amazonka-memorydb/docs/Amazonka-MemoryDb.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-memorydb` 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-memorydb.cabal view
@@ -0,0 +1,165 @@+cabal-version: 2.2+name: amazonka-memorydb+version: 2.0+synopsis: Amazon MemoryDB 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 @2021-01-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.MemoryDb.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.MemoryDb" 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-memorydb++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.MemoryDb+ Amazonka.MemoryDb.BatchUpdateCluster+ Amazonka.MemoryDb.CopySnapshot+ Amazonka.MemoryDb.CreateACL+ Amazonka.MemoryDb.CreateCluster+ Amazonka.MemoryDb.CreateParameterGroup+ Amazonka.MemoryDb.CreateSnapshot+ Amazonka.MemoryDb.CreateSubnetGroup+ Amazonka.MemoryDb.CreateUser+ Amazonka.MemoryDb.DeleteACL+ Amazonka.MemoryDb.DeleteCluster+ Amazonka.MemoryDb.DeleteParameterGroup+ Amazonka.MemoryDb.DeleteSnapshot+ Amazonka.MemoryDb.DeleteSubnetGroup+ Amazonka.MemoryDb.DeleteUser+ Amazonka.MemoryDb.DescribeACLs+ Amazonka.MemoryDb.DescribeClusters+ Amazonka.MemoryDb.DescribeEngineVersions+ Amazonka.MemoryDb.DescribeEvents+ Amazonka.MemoryDb.DescribeParameterGroups+ Amazonka.MemoryDb.DescribeParameters+ Amazonka.MemoryDb.DescribeReservedNodes+ Amazonka.MemoryDb.DescribeReservedNodesOfferings+ Amazonka.MemoryDb.DescribeServiceUpdates+ Amazonka.MemoryDb.DescribeSnapshots+ Amazonka.MemoryDb.DescribeSubnetGroups+ Amazonka.MemoryDb.DescribeUsers+ Amazonka.MemoryDb.FailoverShard+ Amazonka.MemoryDb.Lens+ Amazonka.MemoryDb.ListAllowedNodeTypeUpdates+ Amazonka.MemoryDb.ListTags+ Amazonka.MemoryDb.PurchaseReservedNodesOffering+ Amazonka.MemoryDb.ResetParameterGroup+ Amazonka.MemoryDb.TagResource+ Amazonka.MemoryDb.Types+ Amazonka.MemoryDb.Types.ACL+ Amazonka.MemoryDb.Types.ACLPendingChanges+ Amazonka.MemoryDb.Types.ACLsUpdateStatus+ Amazonka.MemoryDb.Types.Authentication+ Amazonka.MemoryDb.Types.AuthenticationMode+ Amazonka.MemoryDb.Types.AuthenticationType+ Amazonka.MemoryDb.Types.AvailabilityZone+ Amazonka.MemoryDb.Types.AZStatus+ Amazonka.MemoryDb.Types.Cluster+ Amazonka.MemoryDb.Types.ClusterConfiguration+ Amazonka.MemoryDb.Types.ClusterPendingUpdates+ Amazonka.MemoryDb.Types.DataTieringStatus+ Amazonka.MemoryDb.Types.Endpoint+ Amazonka.MemoryDb.Types.EngineVersionInfo+ Amazonka.MemoryDb.Types.Event+ Amazonka.MemoryDb.Types.Filter+ Amazonka.MemoryDb.Types.InputAuthenticationType+ Amazonka.MemoryDb.Types.Node+ Amazonka.MemoryDb.Types.Parameter+ Amazonka.MemoryDb.Types.ParameterGroup+ Amazonka.MemoryDb.Types.ParameterNameValue+ Amazonka.MemoryDb.Types.PendingModifiedServiceUpdate+ Amazonka.MemoryDb.Types.RecurringCharge+ Amazonka.MemoryDb.Types.ReplicaConfigurationRequest+ Amazonka.MemoryDb.Types.ReservedNode+ Amazonka.MemoryDb.Types.ReservedNodesOffering+ Amazonka.MemoryDb.Types.ReshardingStatus+ Amazonka.MemoryDb.Types.SecurityGroupMembership+ Amazonka.MemoryDb.Types.ServiceUpdate+ Amazonka.MemoryDb.Types.ServiceUpdateRequest+ Amazonka.MemoryDb.Types.ServiceUpdateStatus+ Amazonka.MemoryDb.Types.ServiceUpdateType+ Amazonka.MemoryDb.Types.Shard+ Amazonka.MemoryDb.Types.ShardConfiguration+ Amazonka.MemoryDb.Types.ShardConfigurationRequest+ Amazonka.MemoryDb.Types.ShardDetail+ Amazonka.MemoryDb.Types.SlotMigration+ Amazonka.MemoryDb.Types.Snapshot+ Amazonka.MemoryDb.Types.SourceType+ Amazonka.MemoryDb.Types.Subnet+ Amazonka.MemoryDb.Types.SubnetGroup+ Amazonka.MemoryDb.Types.Tag+ Amazonka.MemoryDb.Types.UnprocessedCluster+ Amazonka.MemoryDb.Types.User+ Amazonka.MemoryDb.UntagResource+ Amazonka.MemoryDb.UpdateACL+ Amazonka.MemoryDb.UpdateCluster+ Amazonka.MemoryDb.UpdateParameterGroup+ Amazonka.MemoryDb.UpdateSubnetGroup+ Amazonka.MemoryDb.UpdateUser+ Amazonka.MemoryDb.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-memorydb-test+ type: exitcode-stdio-1.0+ default-language: Haskell2010+ hs-source-dirs: test+ main-is: Main.hs+ ghc-options: -Wall -threaded++ -- This section is encoded by the template and any modules added by+ -- hand outside these namespaces will not correctly be added to the+ -- distribution package.+ other-modules:+ Test.Amazonka.Gen.MemoryDb+ Test.Amazonka.MemoryDb+ Test.Amazonka.MemoryDb.Internal++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-memorydb+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/BatchUpdateCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/BatchUpdateClusterResponse.proto view
+ fixture/CopySnapshot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/CopySnapshotResponse.proto view
+ fixture/CreateACL.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/CreateACLResponse.proto view
+ fixture/CreateCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/CreateClusterResponse.proto view
+ fixture/CreateParameterGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/CreateParameterGroupResponse.proto view
+ fixture/CreateSnapshot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/CreateSnapshotResponse.proto view
+ fixture/CreateSubnetGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/CreateSubnetGroupResponse.proto view
+ fixture/CreateUser.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/CreateUserResponse.proto view
+ fixture/DeleteACL.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DeleteACLResponse.proto view
+ fixture/DeleteCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/DeleteClusterResponse.proto view
+ fixture/DeleteParameterGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DeleteParameterGroupResponse.proto view
+ fixture/DeleteSnapshot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DeleteSnapshotResponse.proto view
+ fixture/DeleteSubnetGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DeleteSubnetGroupResponse.proto view
+ fixture/DeleteUser.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DeleteUserResponse.proto view
+ fixture/DescribeACLs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DescribeACLsResponse.proto view
+ fixture/DescribeClusters.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DescribeClustersResponse.proto view
+ fixture/DescribeEngineVersions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DescribeEngineVersionsResponse.proto view
+ fixture/DescribeEvents.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DescribeEventsResponse.proto view
+ fixture/DescribeParameterGroups.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DescribeParameterGroupsResponse.proto view
+ fixture/DescribeParameters.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DescribeParametersResponse.proto view
+ fixture/DescribeReservedNodes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DescribeReservedNodesOfferings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DescribeReservedNodesOfferingsResponse.proto view
+ fixture/DescribeReservedNodesResponse.proto view
+ fixture/DescribeServiceUpdates.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DescribeServiceUpdatesResponse.proto view
+ fixture/DescribeSnapshots.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DescribeSnapshotsResponse.proto view
+ fixture/DescribeSubnetGroups.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DescribeSubnetGroupsResponse.proto view
+ fixture/DescribeUsers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/DescribeUsersResponse.proto view
+ fixture/FailoverShard.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/FailoverShardResponse.proto view
+ fixture/ListAllowedNodeTypeUpdates.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/ListAllowedNodeTypeUpdatesResponse.proto view
+ fixture/ListTags.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/ListTagsResponse.proto view
+ fixture/PurchaseReservedNodesOffering.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/PurchaseReservedNodesOfferingResponse.proto view
+ fixture/ResetParameterGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/ResetParameterGroupResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/UpdateACL.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/UpdateACLResponse.proto view
+ fixture/UpdateCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/UpdateClusterResponse.proto view
+ fixture/UpdateParameterGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/UpdateParameterGroupResponse.proto view
+ fixture/UpdateSubnetGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/UpdateSubnetGroupResponse.proto view
+ fixture/UpdateUser.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/memory-db/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: memory-db.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/UpdateUserResponse.proto view
+ gen/Amazonka/MemoryDb.hs view
@@ -0,0 +1,661 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.MemoryDb+-- 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 @2021-01-01@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- MemoryDB for Redis is a fully managed, Redis-compatible, in-memory+-- database that delivers ultra-fast performance and Multi-AZ durability+-- for modern applications built using microservices architectures.+-- MemoryDB stores the entire database in-memory, enabling low latency and+-- high throughput data access. It is compatible with Redis, a popular open+-- source data store, enabling you to leverage Redis’ flexible and friendly+-- data structures, APIs, and commands.+module Amazonka.MemoryDb+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** ACLAlreadyExistsFault+ _ACLAlreadyExistsFault,++ -- ** ACLNotFoundFault+ _ACLNotFoundFault,++ -- ** ACLQuotaExceededFault+ _ACLQuotaExceededFault,++ -- ** APICallRateForCustomerExceededFault+ _APICallRateForCustomerExceededFault,++ -- ** ClusterAlreadyExistsFault+ _ClusterAlreadyExistsFault,++ -- ** ClusterNotFoundFault+ _ClusterNotFoundFault,++ -- ** ClusterQuotaForCustomerExceededFault+ _ClusterQuotaForCustomerExceededFault,++ -- ** DefaultUserRequired+ _DefaultUserRequired,++ -- ** DuplicateUserNameFault+ _DuplicateUserNameFault,++ -- ** InsufficientClusterCapacityFault+ _InsufficientClusterCapacityFault,++ -- ** InvalidACLStateFault+ _InvalidACLStateFault,++ -- ** InvalidARNFault+ _InvalidARNFault,++ -- ** InvalidClusterStateFault+ _InvalidClusterStateFault,++ -- ** InvalidCredentialsException+ _InvalidCredentialsException,++ -- ** InvalidKMSKeyFault+ _InvalidKMSKeyFault,++ -- ** InvalidNodeStateFault+ _InvalidNodeStateFault,++ -- ** InvalidParameterCombinationException+ _InvalidParameterCombinationException,++ -- ** InvalidParameterGroupStateFault+ _InvalidParameterGroupStateFault,++ -- ** InvalidParameterValueException+ _InvalidParameterValueException,++ -- ** InvalidSnapshotStateFault+ _InvalidSnapshotStateFault,++ -- ** InvalidSubnet+ _InvalidSubnet,++ -- ** InvalidUserStateFault+ _InvalidUserStateFault,++ -- ** InvalidVPCNetworkStateFault+ _InvalidVPCNetworkStateFault,++ -- ** NoOperationFault+ _NoOperationFault,++ -- ** NodeQuotaForClusterExceededFault+ _NodeQuotaForClusterExceededFault,++ -- ** NodeQuotaForCustomerExceededFault+ _NodeQuotaForCustomerExceededFault,++ -- ** ParameterGroupAlreadyExistsFault+ _ParameterGroupAlreadyExistsFault,++ -- ** ParameterGroupNotFoundFault+ _ParameterGroupNotFoundFault,++ -- ** ParameterGroupQuotaExceededFault+ _ParameterGroupQuotaExceededFault,++ -- ** ReservedNodeAlreadyExistsFault+ _ReservedNodeAlreadyExistsFault,++ -- ** ReservedNodeNotFoundFault+ _ReservedNodeNotFoundFault,++ -- ** ReservedNodeQuotaExceededFault+ _ReservedNodeQuotaExceededFault,++ -- ** ReservedNodesOfferingNotFoundFault+ _ReservedNodesOfferingNotFoundFault,++ -- ** ServiceLinkedRoleNotFoundFault+ _ServiceLinkedRoleNotFoundFault,++ -- ** ServiceUpdateNotFoundFault+ _ServiceUpdateNotFoundFault,++ -- ** ShardNotFoundFault+ _ShardNotFoundFault,++ -- ** ShardsPerClusterQuotaExceededFault+ _ShardsPerClusterQuotaExceededFault,++ -- ** SnapshotAlreadyExistsFault+ _SnapshotAlreadyExistsFault,++ -- ** SnapshotNotFoundFault+ _SnapshotNotFoundFault,++ -- ** SnapshotQuotaExceededFault+ _SnapshotQuotaExceededFault,++ -- ** SubnetGroupAlreadyExistsFault+ _SubnetGroupAlreadyExistsFault,++ -- ** SubnetGroupInUseFault+ _SubnetGroupInUseFault,++ -- ** SubnetGroupNotFoundFault+ _SubnetGroupNotFoundFault,++ -- ** SubnetGroupQuotaExceededFault+ _SubnetGroupQuotaExceededFault,++ -- ** SubnetInUse+ _SubnetInUse,++ -- ** SubnetNotAllowedFault+ _SubnetNotAllowedFault,++ -- ** SubnetQuotaExceededFault+ _SubnetQuotaExceededFault,++ -- ** TagNotFoundFault+ _TagNotFoundFault,++ -- ** TagQuotaPerResourceExceeded+ _TagQuotaPerResourceExceeded,++ -- ** TestFailoverNotAvailableFault+ _TestFailoverNotAvailableFault,++ -- ** UserAlreadyExistsFault+ _UserAlreadyExistsFault,++ -- ** UserNotFoundFault+ _UserNotFoundFault,++ -- ** UserQuotaExceededFault+ _UserQuotaExceededFault,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** BatchUpdateCluster+ BatchUpdateCluster (BatchUpdateCluster'),+ newBatchUpdateCluster,+ BatchUpdateClusterResponse (BatchUpdateClusterResponse'),+ newBatchUpdateClusterResponse,++ -- ** CopySnapshot+ CopySnapshot (CopySnapshot'),+ newCopySnapshot,+ CopySnapshotResponse (CopySnapshotResponse'),+ newCopySnapshotResponse,++ -- ** CreateACL+ CreateACL (CreateACL'),+ newCreateACL,+ CreateACLResponse (CreateACLResponse'),+ newCreateACLResponse,++ -- ** CreateCluster+ CreateCluster (CreateCluster'),+ newCreateCluster,+ CreateClusterResponse (CreateClusterResponse'),+ newCreateClusterResponse,++ -- ** CreateParameterGroup+ CreateParameterGroup (CreateParameterGroup'),+ newCreateParameterGroup,+ CreateParameterGroupResponse (CreateParameterGroupResponse'),+ newCreateParameterGroupResponse,++ -- ** CreateSnapshot+ CreateSnapshot (CreateSnapshot'),+ newCreateSnapshot,+ CreateSnapshotResponse (CreateSnapshotResponse'),+ newCreateSnapshotResponse,++ -- ** CreateSubnetGroup+ CreateSubnetGroup (CreateSubnetGroup'),+ newCreateSubnetGroup,+ CreateSubnetGroupResponse (CreateSubnetGroupResponse'),+ newCreateSubnetGroupResponse,++ -- ** CreateUser+ CreateUser (CreateUser'),+ newCreateUser,+ CreateUserResponse (CreateUserResponse'),+ newCreateUserResponse,++ -- ** DeleteACL+ DeleteACL (DeleteACL'),+ newDeleteACL,+ DeleteACLResponse (DeleteACLResponse'),+ newDeleteACLResponse,++ -- ** DeleteCluster+ DeleteCluster (DeleteCluster'),+ newDeleteCluster,+ DeleteClusterResponse (DeleteClusterResponse'),+ newDeleteClusterResponse,++ -- ** DeleteParameterGroup+ DeleteParameterGroup (DeleteParameterGroup'),+ newDeleteParameterGroup,+ DeleteParameterGroupResponse (DeleteParameterGroupResponse'),+ newDeleteParameterGroupResponse,++ -- ** DeleteSnapshot+ DeleteSnapshot (DeleteSnapshot'),+ newDeleteSnapshot,+ DeleteSnapshotResponse (DeleteSnapshotResponse'),+ newDeleteSnapshotResponse,++ -- ** DeleteSubnetGroup+ DeleteSubnetGroup (DeleteSubnetGroup'),+ newDeleteSubnetGroup,+ DeleteSubnetGroupResponse (DeleteSubnetGroupResponse'),+ newDeleteSubnetGroupResponse,++ -- ** DeleteUser+ DeleteUser (DeleteUser'),+ newDeleteUser,+ DeleteUserResponse (DeleteUserResponse'),+ newDeleteUserResponse,++ -- ** DescribeACLs (Paginated)+ DescribeACLs (DescribeACLs'),+ newDescribeACLs,+ DescribeACLsResponse (DescribeACLsResponse'),+ newDescribeACLsResponse,++ -- ** DescribeClusters (Paginated)+ DescribeClusters (DescribeClusters'),+ newDescribeClusters,+ DescribeClustersResponse (DescribeClustersResponse'),+ newDescribeClustersResponse,++ -- ** DescribeEngineVersions (Paginated)+ DescribeEngineVersions (DescribeEngineVersions'),+ newDescribeEngineVersions,+ DescribeEngineVersionsResponse (DescribeEngineVersionsResponse'),+ newDescribeEngineVersionsResponse,++ -- ** DescribeEvents (Paginated)+ DescribeEvents (DescribeEvents'),+ newDescribeEvents,+ DescribeEventsResponse (DescribeEventsResponse'),+ newDescribeEventsResponse,++ -- ** DescribeParameterGroups (Paginated)+ DescribeParameterGroups (DescribeParameterGroups'),+ newDescribeParameterGroups,+ DescribeParameterGroupsResponse (DescribeParameterGroupsResponse'),+ newDescribeParameterGroupsResponse,++ -- ** DescribeParameters (Paginated)+ DescribeParameters (DescribeParameters'),+ newDescribeParameters,+ DescribeParametersResponse (DescribeParametersResponse'),+ newDescribeParametersResponse,++ -- ** DescribeReservedNodes (Paginated)+ DescribeReservedNodes (DescribeReservedNodes'),+ newDescribeReservedNodes,+ DescribeReservedNodesResponse (DescribeReservedNodesResponse'),+ newDescribeReservedNodesResponse,++ -- ** DescribeReservedNodesOfferings (Paginated)+ DescribeReservedNodesOfferings (DescribeReservedNodesOfferings'),+ newDescribeReservedNodesOfferings,+ DescribeReservedNodesOfferingsResponse (DescribeReservedNodesOfferingsResponse'),+ newDescribeReservedNodesOfferingsResponse,++ -- ** DescribeServiceUpdates (Paginated)+ DescribeServiceUpdates (DescribeServiceUpdates'),+ newDescribeServiceUpdates,+ DescribeServiceUpdatesResponse (DescribeServiceUpdatesResponse'),+ newDescribeServiceUpdatesResponse,++ -- ** DescribeSnapshots (Paginated)+ DescribeSnapshots (DescribeSnapshots'),+ newDescribeSnapshots,+ DescribeSnapshotsResponse (DescribeSnapshotsResponse'),+ newDescribeSnapshotsResponse,++ -- ** DescribeSubnetGroups (Paginated)+ DescribeSubnetGroups (DescribeSubnetGroups'),+ newDescribeSubnetGroups,+ DescribeSubnetGroupsResponse (DescribeSubnetGroupsResponse'),+ newDescribeSubnetGroupsResponse,++ -- ** DescribeUsers (Paginated)+ DescribeUsers (DescribeUsers'),+ newDescribeUsers,+ DescribeUsersResponse (DescribeUsersResponse'),+ newDescribeUsersResponse,++ -- ** FailoverShard+ FailoverShard (FailoverShard'),+ newFailoverShard,+ FailoverShardResponse (FailoverShardResponse'),+ newFailoverShardResponse,++ -- ** ListAllowedNodeTypeUpdates+ ListAllowedNodeTypeUpdates (ListAllowedNodeTypeUpdates'),+ newListAllowedNodeTypeUpdates,+ ListAllowedNodeTypeUpdatesResponse (ListAllowedNodeTypeUpdatesResponse'),+ newListAllowedNodeTypeUpdatesResponse,++ -- ** ListTags+ ListTags (ListTags'),+ newListTags,+ ListTagsResponse (ListTagsResponse'),+ newListTagsResponse,++ -- ** PurchaseReservedNodesOffering+ PurchaseReservedNodesOffering (PurchaseReservedNodesOffering'),+ newPurchaseReservedNodesOffering,+ PurchaseReservedNodesOfferingResponse (PurchaseReservedNodesOfferingResponse'),+ newPurchaseReservedNodesOfferingResponse,++ -- ** ResetParameterGroup+ ResetParameterGroup (ResetParameterGroup'),+ newResetParameterGroup,+ ResetParameterGroupResponse (ResetParameterGroupResponse'),+ newResetParameterGroupResponse,++ -- ** TagResource+ TagResource (TagResource'),+ newTagResource,+ TagResourceResponse (TagResourceResponse'),+ newTagResourceResponse,++ -- ** UntagResource+ UntagResource (UntagResource'),+ newUntagResource,+ UntagResourceResponse (UntagResourceResponse'),+ newUntagResourceResponse,++ -- ** UpdateACL+ UpdateACL (UpdateACL'),+ newUpdateACL,+ UpdateACLResponse (UpdateACLResponse'),+ newUpdateACLResponse,++ -- ** UpdateCluster+ UpdateCluster (UpdateCluster'),+ newUpdateCluster,+ UpdateClusterResponse (UpdateClusterResponse'),+ newUpdateClusterResponse,++ -- ** UpdateParameterGroup+ UpdateParameterGroup (UpdateParameterGroup'),+ newUpdateParameterGroup,+ UpdateParameterGroupResponse (UpdateParameterGroupResponse'),+ newUpdateParameterGroupResponse,++ -- ** UpdateSubnetGroup+ UpdateSubnetGroup (UpdateSubnetGroup'),+ newUpdateSubnetGroup,+ UpdateSubnetGroupResponse (UpdateSubnetGroupResponse'),+ newUpdateSubnetGroupResponse,++ -- ** UpdateUser+ UpdateUser (UpdateUser'),+ newUpdateUser,+ UpdateUserResponse (UpdateUserResponse'),+ newUpdateUserResponse,++ -- * Types++ -- ** AZStatus+ AZStatus (..),++ -- ** AuthenticationType+ AuthenticationType (..),++ -- ** DataTieringStatus+ DataTieringStatus (..),++ -- ** InputAuthenticationType+ InputAuthenticationType (..),++ -- ** ServiceUpdateStatus+ ServiceUpdateStatus (..),++ -- ** ServiceUpdateType+ ServiceUpdateType (..),++ -- ** SourceType+ SourceType (..),++ -- ** ACL+ ACL (ACL'),+ newACL,++ -- ** ACLPendingChanges+ ACLPendingChanges (ACLPendingChanges'),+ newACLPendingChanges,++ -- ** ACLsUpdateStatus+ ACLsUpdateStatus (ACLsUpdateStatus'),+ newACLsUpdateStatus,++ -- ** Authentication+ Authentication (Authentication'),+ newAuthentication,++ -- ** AuthenticationMode+ AuthenticationMode (AuthenticationMode'),+ newAuthenticationMode,++ -- ** AvailabilityZone+ AvailabilityZone (AvailabilityZone'),+ newAvailabilityZone,++ -- ** Cluster+ Cluster (Cluster'),+ newCluster,++ -- ** ClusterConfiguration+ ClusterConfiguration (ClusterConfiguration'),+ newClusterConfiguration,++ -- ** ClusterPendingUpdates+ ClusterPendingUpdates (ClusterPendingUpdates'),+ newClusterPendingUpdates,++ -- ** Endpoint+ Endpoint (Endpoint'),+ newEndpoint,++ -- ** EngineVersionInfo+ EngineVersionInfo (EngineVersionInfo'),+ newEngineVersionInfo,++ -- ** Event+ Event (Event'),+ newEvent,++ -- ** Filter+ Filter (Filter'),+ newFilter,++ -- ** Node+ Node (Node'),+ newNode,++ -- ** Parameter+ Parameter (Parameter'),+ newParameter,++ -- ** ParameterGroup+ ParameterGroup (ParameterGroup'),+ newParameterGroup,++ -- ** ParameterNameValue+ ParameterNameValue (ParameterNameValue'),+ newParameterNameValue,++ -- ** PendingModifiedServiceUpdate+ PendingModifiedServiceUpdate (PendingModifiedServiceUpdate'),+ newPendingModifiedServiceUpdate,++ -- ** RecurringCharge+ RecurringCharge (RecurringCharge'),+ newRecurringCharge,++ -- ** ReplicaConfigurationRequest+ ReplicaConfigurationRequest (ReplicaConfigurationRequest'),+ newReplicaConfigurationRequest,++ -- ** ReservedNode+ ReservedNode (ReservedNode'),+ newReservedNode,++ -- ** ReservedNodesOffering+ ReservedNodesOffering (ReservedNodesOffering'),+ newReservedNodesOffering,++ -- ** ReshardingStatus+ ReshardingStatus (ReshardingStatus'),+ newReshardingStatus,++ -- ** SecurityGroupMembership+ SecurityGroupMembership (SecurityGroupMembership'),+ newSecurityGroupMembership,++ -- ** ServiceUpdate+ ServiceUpdate (ServiceUpdate'),+ newServiceUpdate,++ -- ** ServiceUpdateRequest+ ServiceUpdateRequest (ServiceUpdateRequest'),+ newServiceUpdateRequest,++ -- ** Shard+ Shard (Shard'),+ newShard,++ -- ** ShardConfiguration+ ShardConfiguration (ShardConfiguration'),+ newShardConfiguration,++ -- ** ShardConfigurationRequest+ ShardConfigurationRequest (ShardConfigurationRequest'),+ newShardConfigurationRequest,++ -- ** ShardDetail+ ShardDetail (ShardDetail'),+ newShardDetail,++ -- ** SlotMigration+ SlotMigration (SlotMigration'),+ newSlotMigration,++ -- ** Snapshot+ Snapshot (Snapshot'),+ newSnapshot,++ -- ** Subnet+ Subnet (Subnet'),+ newSubnet,++ -- ** SubnetGroup+ SubnetGroup (SubnetGroup'),+ newSubnetGroup,++ -- ** Tag+ Tag (Tag'),+ newTag,++ -- ** UnprocessedCluster+ UnprocessedCluster (UnprocessedCluster'),+ newUnprocessedCluster,++ -- ** User+ User (User'),+ newUser,+ )+where++import Amazonka.MemoryDb.BatchUpdateCluster+import Amazonka.MemoryDb.CopySnapshot+import Amazonka.MemoryDb.CreateACL+import Amazonka.MemoryDb.CreateCluster+import Amazonka.MemoryDb.CreateParameterGroup+import Amazonka.MemoryDb.CreateSnapshot+import Amazonka.MemoryDb.CreateSubnetGroup+import Amazonka.MemoryDb.CreateUser+import Amazonka.MemoryDb.DeleteACL+import Amazonka.MemoryDb.DeleteCluster+import Amazonka.MemoryDb.DeleteParameterGroup+import Amazonka.MemoryDb.DeleteSnapshot+import Amazonka.MemoryDb.DeleteSubnetGroup+import Amazonka.MemoryDb.DeleteUser+import Amazonka.MemoryDb.DescribeACLs+import Amazonka.MemoryDb.DescribeClusters+import Amazonka.MemoryDb.DescribeEngineVersions+import Amazonka.MemoryDb.DescribeEvents+import Amazonka.MemoryDb.DescribeParameterGroups+import Amazonka.MemoryDb.DescribeParameters+import Amazonka.MemoryDb.DescribeReservedNodes+import Amazonka.MemoryDb.DescribeReservedNodesOfferings+import Amazonka.MemoryDb.DescribeServiceUpdates+import Amazonka.MemoryDb.DescribeSnapshots+import Amazonka.MemoryDb.DescribeSubnetGroups+import Amazonka.MemoryDb.DescribeUsers+import Amazonka.MemoryDb.FailoverShard+import Amazonka.MemoryDb.Lens+import Amazonka.MemoryDb.ListAllowedNodeTypeUpdates+import Amazonka.MemoryDb.ListTags+import Amazonka.MemoryDb.PurchaseReservedNodesOffering+import Amazonka.MemoryDb.ResetParameterGroup+import Amazonka.MemoryDb.TagResource+import Amazonka.MemoryDb.Types+import Amazonka.MemoryDb.UntagResource+import Amazonka.MemoryDb.UpdateACL+import Amazonka.MemoryDb.UpdateCluster+import Amazonka.MemoryDb.UpdateParameterGroup+import Amazonka.MemoryDb.UpdateSubnetGroup+import Amazonka.MemoryDb.UpdateUser+import Amazonka.MemoryDb.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 'MemoryDb'.++-- $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/MemoryDb/BatchUpdateCluster.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.MemoryDb.BatchUpdateCluster+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Apply the service update to a list of clusters supplied. For more+-- information on service updates and applying them, see+-- <https://docs.aws.amazon.com/MemoryDB/latest/devguide/managing-updates.html#applying-updates Applying the service updates>.+module Amazonka.MemoryDb.BatchUpdateCluster+ ( -- * Creating a Request+ BatchUpdateCluster (..),+ newBatchUpdateCluster,++ -- * Request Lenses+ batchUpdateCluster_serviceUpdate,+ batchUpdateCluster_clusterNames,++ -- * Destructuring the Response+ BatchUpdateClusterResponse (..),+ newBatchUpdateClusterResponse,++ -- * Response Lenses+ batchUpdateClusterResponse_processedClusters,+ batchUpdateClusterResponse_unprocessedClusters,+ batchUpdateClusterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchUpdateCluster' smart constructor.+data BatchUpdateCluster = BatchUpdateCluster'+ { -- | The unique ID of the service update+ serviceUpdate :: Prelude.Maybe ServiceUpdateRequest,+ -- | The cluster names to apply the updates.+ clusterNames :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchUpdateCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'serviceUpdate', 'batchUpdateCluster_serviceUpdate' - The unique ID of the service update+--+-- 'clusterNames', 'batchUpdateCluster_clusterNames' - The cluster names to apply the updates.+newBatchUpdateCluster ::+ BatchUpdateCluster+newBatchUpdateCluster =+ BatchUpdateCluster'+ { serviceUpdate =+ Prelude.Nothing,+ clusterNames = Prelude.mempty+ }++-- | The unique ID of the service update+batchUpdateCluster_serviceUpdate :: Lens.Lens' BatchUpdateCluster (Prelude.Maybe ServiceUpdateRequest)+batchUpdateCluster_serviceUpdate = Lens.lens (\BatchUpdateCluster' {serviceUpdate} -> serviceUpdate) (\s@BatchUpdateCluster' {} a -> s {serviceUpdate = a} :: BatchUpdateCluster)++-- | The cluster names to apply the updates.+batchUpdateCluster_clusterNames :: Lens.Lens' BatchUpdateCluster [Prelude.Text]+batchUpdateCluster_clusterNames = Lens.lens (\BatchUpdateCluster' {clusterNames} -> clusterNames) (\s@BatchUpdateCluster' {} a -> s {clusterNames = a} :: BatchUpdateCluster) Prelude.. Lens.coerced++instance Core.AWSRequest BatchUpdateCluster where+ type+ AWSResponse BatchUpdateCluster =+ BatchUpdateClusterResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ BatchUpdateClusterResponse'+ Prelude.<$> ( x+ Data..?> "ProcessedClusters"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> ( x+ Data..?> "UnprocessedClusters"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable BatchUpdateCluster where+ hashWithSalt _salt BatchUpdateCluster' {..} =+ _salt+ `Prelude.hashWithSalt` serviceUpdate+ `Prelude.hashWithSalt` clusterNames++instance Prelude.NFData BatchUpdateCluster where+ rnf BatchUpdateCluster' {..} =+ Prelude.rnf serviceUpdate+ `Prelude.seq` Prelude.rnf clusterNames++instance Data.ToHeaders BatchUpdateCluster where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.BatchUpdateCluster" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON BatchUpdateCluster where+ toJSON BatchUpdateCluster' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ServiceUpdate" Data..=) Prelude.<$> serviceUpdate,+ Prelude.Just ("ClusterNames" Data..= clusterNames)+ ]+ )++instance Data.ToPath BatchUpdateCluster where+ toPath = Prelude.const "/"++instance Data.ToQuery BatchUpdateCluster where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchUpdateClusterResponse' smart constructor.+data BatchUpdateClusterResponse = BatchUpdateClusterResponse'+ { -- | The list of clusters that have been updated.+ processedClusters :: Prelude.Maybe [Cluster],+ -- | The list of clusters where updates have not been applied.+ unprocessedClusters :: Prelude.Maybe [UnprocessedCluster],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchUpdateClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'processedClusters', 'batchUpdateClusterResponse_processedClusters' - The list of clusters that have been updated.+--+-- 'unprocessedClusters', 'batchUpdateClusterResponse_unprocessedClusters' - The list of clusters where updates have not been applied.+--+-- 'httpStatus', 'batchUpdateClusterResponse_httpStatus' - The response's http status code.+newBatchUpdateClusterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ BatchUpdateClusterResponse+newBatchUpdateClusterResponse pHttpStatus_ =+ BatchUpdateClusterResponse'+ { processedClusters =+ Prelude.Nothing,+ unprocessedClusters = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of clusters that have been updated.+batchUpdateClusterResponse_processedClusters :: Lens.Lens' BatchUpdateClusterResponse (Prelude.Maybe [Cluster])+batchUpdateClusterResponse_processedClusters = Lens.lens (\BatchUpdateClusterResponse' {processedClusters} -> processedClusters) (\s@BatchUpdateClusterResponse' {} a -> s {processedClusters = a} :: BatchUpdateClusterResponse) Prelude.. Lens.mapping Lens.coerced++-- | The list of clusters where updates have not been applied.+batchUpdateClusterResponse_unprocessedClusters :: Lens.Lens' BatchUpdateClusterResponse (Prelude.Maybe [UnprocessedCluster])+batchUpdateClusterResponse_unprocessedClusters = Lens.lens (\BatchUpdateClusterResponse' {unprocessedClusters} -> unprocessedClusters) (\s@BatchUpdateClusterResponse' {} a -> s {unprocessedClusters = a} :: BatchUpdateClusterResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchUpdateClusterResponse_httpStatus :: Lens.Lens' BatchUpdateClusterResponse Prelude.Int+batchUpdateClusterResponse_httpStatus = Lens.lens (\BatchUpdateClusterResponse' {httpStatus} -> httpStatus) (\s@BatchUpdateClusterResponse' {} a -> s {httpStatus = a} :: BatchUpdateClusterResponse)++instance Prelude.NFData BatchUpdateClusterResponse where+ rnf BatchUpdateClusterResponse' {..} =+ Prelude.rnf processedClusters+ `Prelude.seq` Prelude.rnf unprocessedClusters+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/CopySnapshot.hs view
@@ -0,0 +1,252 @@+{-# 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.MemoryDb.CopySnapshot+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Makes a copy of an existing snapshot.+module Amazonka.MemoryDb.CopySnapshot+ ( -- * Creating a Request+ CopySnapshot (..),+ newCopySnapshot,++ -- * Request Lenses+ copySnapshot_kmsKeyId,+ copySnapshot_tags,+ copySnapshot_targetBucket,+ copySnapshot_sourceSnapshotName,+ copySnapshot_targetSnapshotName,++ -- * Destructuring the Response+ CopySnapshotResponse (..),+ newCopySnapshotResponse,++ -- * Response Lenses+ copySnapshotResponse_snapshot,+ copySnapshotResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCopySnapshot' smart constructor.+data CopySnapshot = CopySnapshot'+ { -- | The ID of the KMS key used to encrypt the target snapshot.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | A list of tags to be added to this resource. A tag is a key-value pair.+ -- A tag key must be accompanied by a tag value, although null is accepted.+ tags :: Prelude.Maybe [Tag],+ -- | The Amazon S3 bucket to which the snapshot is exported. This parameter+ -- is used only when exporting a snapshot for external access. When using+ -- this parameter to export a snapshot, be sure MemoryDB has the needed+ -- permissions to this S3 bucket. For more information, see+ -- <https://docs.aws.amazon.com/MemoryDB/latest/devguide/snapshots-exporting.html Step 2: Grant MemoryDB Access to Your Amazon S3 Bucket>.+ targetBucket :: Prelude.Maybe Prelude.Text,+ -- | The name of an existing snapshot from which to make a copy.+ sourceSnapshotName :: Prelude.Text,+ -- | A name for the snapshot copy. MemoryDB does not permit overwriting a+ -- snapshot, therefore this name must be unique within its context -+ -- MemoryDB or an Amazon S3 bucket if exporting.+ targetSnapshotName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CopySnapshot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsKeyId', 'copySnapshot_kmsKeyId' - The ID of the KMS key used to encrypt the target snapshot.+--+-- 'tags', 'copySnapshot_tags' - A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+--+-- 'targetBucket', 'copySnapshot_targetBucket' - The Amazon S3 bucket to which the snapshot is exported. This parameter+-- is used only when exporting a snapshot for external access. When using+-- this parameter to export a snapshot, be sure MemoryDB has the needed+-- permissions to this S3 bucket. For more information, see+-- <https://docs.aws.amazon.com/MemoryDB/latest/devguide/snapshots-exporting.html Step 2: Grant MemoryDB Access to Your Amazon S3 Bucket>.+--+-- 'sourceSnapshotName', 'copySnapshot_sourceSnapshotName' - The name of an existing snapshot from which to make a copy.+--+-- 'targetSnapshotName', 'copySnapshot_targetSnapshotName' - A name for the snapshot copy. MemoryDB does not permit overwriting a+-- snapshot, therefore this name must be unique within its context -+-- MemoryDB or an Amazon S3 bucket if exporting.+newCopySnapshot ::+ -- | 'sourceSnapshotName'+ Prelude.Text ->+ -- | 'targetSnapshotName'+ Prelude.Text ->+ CopySnapshot+newCopySnapshot+ pSourceSnapshotName_+ pTargetSnapshotName_ =+ CopySnapshot'+ { kmsKeyId = Prelude.Nothing,+ tags = Prelude.Nothing,+ targetBucket = Prelude.Nothing,+ sourceSnapshotName = pSourceSnapshotName_,+ targetSnapshotName = pTargetSnapshotName_+ }++-- | The ID of the KMS key used to encrypt the target snapshot.+copySnapshot_kmsKeyId :: Lens.Lens' CopySnapshot (Prelude.Maybe Prelude.Text)+copySnapshot_kmsKeyId = Lens.lens (\CopySnapshot' {kmsKeyId} -> kmsKeyId) (\s@CopySnapshot' {} a -> s {kmsKeyId = a} :: CopySnapshot)++-- | A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+copySnapshot_tags :: Lens.Lens' CopySnapshot (Prelude.Maybe [Tag])+copySnapshot_tags = Lens.lens (\CopySnapshot' {tags} -> tags) (\s@CopySnapshot' {} a -> s {tags = a} :: CopySnapshot) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon S3 bucket to which the snapshot is exported. This parameter+-- is used only when exporting a snapshot for external access. When using+-- this parameter to export a snapshot, be sure MemoryDB has the needed+-- permissions to this S3 bucket. For more information, see+-- <https://docs.aws.amazon.com/MemoryDB/latest/devguide/snapshots-exporting.html Step 2: Grant MemoryDB Access to Your Amazon S3 Bucket>.+copySnapshot_targetBucket :: Lens.Lens' CopySnapshot (Prelude.Maybe Prelude.Text)+copySnapshot_targetBucket = Lens.lens (\CopySnapshot' {targetBucket} -> targetBucket) (\s@CopySnapshot' {} a -> s {targetBucket = a} :: CopySnapshot)++-- | The name of an existing snapshot from which to make a copy.+copySnapshot_sourceSnapshotName :: Lens.Lens' CopySnapshot Prelude.Text+copySnapshot_sourceSnapshotName = Lens.lens (\CopySnapshot' {sourceSnapshotName} -> sourceSnapshotName) (\s@CopySnapshot' {} a -> s {sourceSnapshotName = a} :: CopySnapshot)++-- | A name for the snapshot copy. MemoryDB does not permit overwriting a+-- snapshot, therefore this name must be unique within its context -+-- MemoryDB or an Amazon S3 bucket if exporting.+copySnapshot_targetSnapshotName :: Lens.Lens' CopySnapshot Prelude.Text+copySnapshot_targetSnapshotName = Lens.lens (\CopySnapshot' {targetSnapshotName} -> targetSnapshotName) (\s@CopySnapshot' {} a -> s {targetSnapshotName = a} :: CopySnapshot)++instance Core.AWSRequest CopySnapshot where+ type AWSResponse CopySnapshot = CopySnapshotResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CopySnapshotResponse'+ Prelude.<$> (x Data..?> "Snapshot")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CopySnapshot where+ hashWithSalt _salt CopySnapshot' {..} =+ _salt+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` targetBucket+ `Prelude.hashWithSalt` sourceSnapshotName+ `Prelude.hashWithSalt` targetSnapshotName++instance Prelude.NFData CopySnapshot where+ rnf CopySnapshot' {..} =+ Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf targetBucket+ `Prelude.seq` Prelude.rnf sourceSnapshotName+ `Prelude.seq` Prelude.rnf targetSnapshotName++instance Data.ToHeaders CopySnapshot where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.CopySnapshot" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CopySnapshot where+ toJSON CopySnapshot' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("KmsKeyId" Data..=) Prelude.<$> kmsKeyId,+ ("Tags" Data..=) Prelude.<$> tags,+ ("TargetBucket" Data..=) Prelude.<$> targetBucket,+ Prelude.Just+ ("SourceSnapshotName" Data..= sourceSnapshotName),+ Prelude.Just+ ("TargetSnapshotName" Data..= targetSnapshotName)+ ]+ )++instance Data.ToPath CopySnapshot where+ toPath = Prelude.const "/"++instance Data.ToQuery CopySnapshot where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCopySnapshotResponse' smart constructor.+data CopySnapshotResponse = CopySnapshotResponse'+ { -- | Represents a copy of an entire cluster as of the time when the snapshot+ -- was taken.+ snapshot :: Prelude.Maybe Snapshot,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CopySnapshotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'snapshot', 'copySnapshotResponse_snapshot' - Represents a copy of an entire cluster as of the time when the snapshot+-- was taken.+--+-- 'httpStatus', 'copySnapshotResponse_httpStatus' - The response's http status code.+newCopySnapshotResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CopySnapshotResponse+newCopySnapshotResponse pHttpStatus_ =+ CopySnapshotResponse'+ { snapshot = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Represents a copy of an entire cluster as of the time when the snapshot+-- was taken.+copySnapshotResponse_snapshot :: Lens.Lens' CopySnapshotResponse (Prelude.Maybe Snapshot)+copySnapshotResponse_snapshot = Lens.lens (\CopySnapshotResponse' {snapshot} -> snapshot) (\s@CopySnapshotResponse' {} a -> s {snapshot = a} :: CopySnapshotResponse)++-- | The response's http status code.+copySnapshotResponse_httpStatus :: Lens.Lens' CopySnapshotResponse Prelude.Int+copySnapshotResponse_httpStatus = Lens.lens (\CopySnapshotResponse' {httpStatus} -> httpStatus) (\s@CopySnapshotResponse' {} a -> s {httpStatus = a} :: CopySnapshotResponse)++instance Prelude.NFData CopySnapshotResponse where+ rnf CopySnapshotResponse' {..} =+ Prelude.rnf snapshot+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/CreateACL.hs view
@@ -0,0 +1,198 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.CreateACL+-- 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 Access Control List. For more information, see+-- <https://docs.aws.amazon.com/MemoryDB/latest/devguide/clusters.acls.html Authenticating users with Access Contol Lists (ACLs)>.+module Amazonka.MemoryDb.CreateACL+ ( -- * Creating a Request+ CreateACL (..),+ newCreateACL,++ -- * Request Lenses+ createACL_tags,+ createACL_userNames,+ createACL_aCLName,++ -- * Destructuring the Response+ CreateACLResponse (..),+ newCreateACLResponse,++ -- * Response Lenses+ createACLResponse_acl,+ createACLResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateACL' smart constructor.+data CreateACL = CreateACL'+ { -- | A list of tags to be added to this resource. A tag is a key-value pair.+ -- A tag key must be accompanied by a tag value, although null is accepted.+ tags :: Prelude.Maybe [Tag],+ -- | The list of users that belong to the Access Control List.+ userNames :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | The name of the Access Control List.+ aCLName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateACL' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createACL_tags' - A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+--+-- 'userNames', 'createACL_userNames' - The list of users that belong to the Access Control List.+--+-- 'aCLName', 'createACL_aCLName' - The name of the Access Control List.+newCreateACL ::+ -- | 'aCLName'+ Prelude.Text ->+ CreateACL+newCreateACL pACLName_ =+ CreateACL'+ { tags = Prelude.Nothing,+ userNames = Prelude.Nothing,+ aCLName = pACLName_+ }++-- | A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+createACL_tags :: Lens.Lens' CreateACL (Prelude.Maybe [Tag])+createACL_tags = Lens.lens (\CreateACL' {tags} -> tags) (\s@CreateACL' {} a -> s {tags = a} :: CreateACL) Prelude.. Lens.mapping Lens.coerced++-- | The list of users that belong to the Access Control List.+createACL_userNames :: Lens.Lens' CreateACL (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+createACL_userNames = Lens.lens (\CreateACL' {userNames} -> userNames) (\s@CreateACL' {} a -> s {userNames = a} :: CreateACL) Prelude.. Lens.mapping Lens.coerced++-- | The name of the Access Control List.+createACL_aCLName :: Lens.Lens' CreateACL Prelude.Text+createACL_aCLName = Lens.lens (\CreateACL' {aCLName} -> aCLName) (\s@CreateACL' {} a -> s {aCLName = a} :: CreateACL)++instance Core.AWSRequest CreateACL where+ type AWSResponse CreateACL = CreateACLResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateACLResponse'+ Prelude.<$> (x Data..?> "ACL")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateACL where+ hashWithSalt _salt CreateACL' {..} =+ _salt+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` userNames+ `Prelude.hashWithSalt` aCLName++instance Prelude.NFData CreateACL where+ rnf CreateACL' {..} =+ Prelude.rnf tags+ `Prelude.seq` Prelude.rnf userNames+ `Prelude.seq` Prelude.rnf aCLName++instance Data.ToHeaders CreateACL where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ("AmazonMemoryDB.CreateACL" :: Prelude.ByteString),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateACL where+ toJSON CreateACL' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Tags" Data..=) Prelude.<$> tags,+ ("UserNames" Data..=) Prelude.<$> userNames,+ Prelude.Just ("ACLName" Data..= aCLName)+ ]+ )++instance Data.ToPath CreateACL where+ toPath = Prelude.const "/"++instance Data.ToQuery CreateACL where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateACLResponse' smart constructor.+data CreateACLResponse = CreateACLResponse'+ { -- | The newly-created Access Control List.+ acl :: Prelude.Maybe ACL,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateACLResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acl', 'createACLResponse_acl' - The newly-created Access Control List.+--+-- 'httpStatus', 'createACLResponse_httpStatus' - The response's http status code.+newCreateACLResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateACLResponse+newCreateACLResponse pHttpStatus_ =+ CreateACLResponse'+ { acl = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The newly-created Access Control List.+createACLResponse_acl :: Lens.Lens' CreateACLResponse (Prelude.Maybe ACL)+createACLResponse_acl = Lens.lens (\CreateACLResponse' {acl} -> acl) (\s@CreateACLResponse' {} a -> s {acl = a} :: CreateACLResponse)++-- | The response's http status code.+createACLResponse_httpStatus :: Lens.Lens' CreateACLResponse Prelude.Int+createACLResponse_httpStatus = Lens.lens (\CreateACLResponse' {httpStatus} -> httpStatus) (\s@CreateACLResponse' {} a -> s {httpStatus = a} :: CreateACLResponse)++instance Prelude.NFData CreateACLResponse where+ rnf CreateACLResponse' {..} =+ Prelude.rnf acl+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/CreateCluster.hs view
@@ -0,0 +1,594 @@+{-# 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.MemoryDb.CreateCluster+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a cluster. All nodes in the cluster run the same+-- protocol-compliant engine software.+module Amazonka.MemoryDb.CreateCluster+ ( -- * Creating a Request+ CreateCluster (..),+ newCreateCluster,++ -- * Request Lenses+ createCluster_autoMinorVersionUpgrade,+ createCluster_dataTiering,+ createCluster_description,+ createCluster_engineVersion,+ createCluster_kmsKeyId,+ createCluster_maintenanceWindow,+ createCluster_numReplicasPerShard,+ createCluster_numShards,+ createCluster_parameterGroupName,+ createCluster_port,+ createCluster_securityGroupIds,+ createCluster_snapshotArns,+ createCluster_snapshotName,+ createCluster_snapshotRetentionLimit,+ createCluster_snapshotWindow,+ createCluster_snsTopicArn,+ createCluster_subnetGroupName,+ createCluster_tLSEnabled,+ createCluster_tags,+ createCluster_clusterName,+ createCluster_nodeType,+ createCluster_aCLName,++ -- * Destructuring the Response+ CreateClusterResponse (..),+ newCreateClusterResponse,++ -- * Response Lenses+ createClusterResponse_cluster,+ createClusterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateCluster' smart constructor.+data CreateCluster = CreateCluster'+ { -- | When set to true, the cluster will automatically receive minor engine+ -- version upgrades after launch.+ autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,+ -- | Enables data tiering. Data tiering is only supported for clusters using+ -- the r6gd node type. This parameter must be set when using r6gd nodes.+ -- For more information, see+ -- <https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html Data tiering>.+ dataTiering :: Prelude.Maybe Prelude.Bool,+ -- | An optional description of the cluster.+ description :: Prelude.Maybe Prelude.Text,+ -- | The version number of the Redis engine to be used for the cluster.+ engineVersion :: Prelude.Maybe Prelude.Text,+ -- | The ID of the KMS key used to encrypt the cluster.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | Specifies the weekly time range during which maintenance on the cluster+ -- is performed. It is specified as a range in the format+ -- ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window+ -- is a 60 minute period.+ --+ -- Valid values for @ddd@ are:+ --+ -- - @sun@+ --+ -- - @mon@+ --+ -- - @tue@+ --+ -- - @wed@+ --+ -- - @thu@+ --+ -- - @fri@+ --+ -- - @sat@+ --+ -- Example: @sun:23:00-mon:01:30@+ maintenanceWindow :: Prelude.Maybe Prelude.Text,+ -- | The number of replicas to apply to each shard. The default value is 1.+ -- The maximum is 5.+ numReplicasPerShard :: Prelude.Maybe Prelude.Int,+ -- | The number of shards the cluster will contain. The default value is 1.+ numShards :: Prelude.Maybe Prelude.Int,+ -- | The name of the parameter group associated with the cluster.+ parameterGroupName :: Prelude.Maybe Prelude.Text,+ -- | The port number on which each of the nodes accepts connections.+ port :: Prelude.Maybe Prelude.Int,+ -- | A list of security group names to associate with this cluster.+ securityGroupIds :: Prelude.Maybe [Prelude.Text],+ -- | A list of Amazon Resource Names (ARN) that uniquely identify the RDB+ -- snapshot files stored in Amazon S3. The snapshot files are used to+ -- populate the new cluster. The Amazon S3 object name in the ARN cannot+ -- contain any commas.+ snapshotArns :: Prelude.Maybe [Prelude.Text],+ -- | The name of a snapshot from which to restore data into the new cluster.+ -- The snapshot status changes to restoring while the new cluster is being+ -- created.+ snapshotName :: Prelude.Maybe Prelude.Text,+ -- | The number of days for which MemoryDB retains automatic snapshots before+ -- deleting them. For example, if you set SnapshotRetentionLimit to 5, a+ -- snapshot that was taken today is retained for 5 days before being+ -- deleted.+ snapshotRetentionLimit :: Prelude.Maybe Prelude.Int,+ -- | The daily time range (in UTC) during which MemoryDB begins taking a+ -- daily snapshot of your shard.+ --+ -- Example: 05:00-09:00+ --+ -- If you do not specify this parameter, MemoryDB automatically chooses an+ -- appropriate time range.+ snapshotWindow :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the Amazon Simple Notification Service+ -- (SNS) topic to which notifications are sent.+ snsTopicArn :: Prelude.Maybe Prelude.Text,+ -- | The name of the subnet group to be used for the cluster.+ subnetGroupName :: Prelude.Maybe Prelude.Text,+ -- | A flag to enable in-transit encryption on the cluster.+ tLSEnabled :: Prelude.Maybe Prelude.Bool,+ -- | A list of tags to be added to this resource. Tags are comma-separated+ -- key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include+ -- multiple tags as shown following: Key=myKey, Value=myKeyValue+ -- Key=mySecondKey, Value=mySecondKeyValue.+ tags :: Prelude.Maybe [Tag],+ -- | The name of the cluster. This value must be unique as it also serves as+ -- the cluster identifier.+ clusterName :: Prelude.Text,+ -- | The compute and memory capacity of the nodes in the cluster.+ nodeType :: Prelude.Text,+ -- | The name of the Access Control List to associate with the cluster.+ aCLName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoMinorVersionUpgrade', 'createCluster_autoMinorVersionUpgrade' - When set to true, the cluster will automatically receive minor engine+-- version upgrades after launch.+--+-- 'dataTiering', 'createCluster_dataTiering' - Enables data tiering. Data tiering is only supported for clusters using+-- the r6gd node type. This parameter must be set when using r6gd nodes.+-- For more information, see+-- <https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html Data tiering>.+--+-- 'description', 'createCluster_description' - An optional description of the cluster.+--+-- 'engineVersion', 'createCluster_engineVersion' - The version number of the Redis engine to be used for the cluster.+--+-- 'kmsKeyId', 'createCluster_kmsKeyId' - The ID of the KMS key used to encrypt the cluster.+--+-- 'maintenanceWindow', 'createCluster_maintenanceWindow' - Specifies the weekly time range during which maintenance on the cluster+-- is performed. It is specified as a range in the format+-- ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window+-- is a 60 minute period.+--+-- Valid values for @ddd@ are:+--+-- - @sun@+--+-- - @mon@+--+-- - @tue@+--+-- - @wed@+--+-- - @thu@+--+-- - @fri@+--+-- - @sat@+--+-- Example: @sun:23:00-mon:01:30@+--+-- 'numReplicasPerShard', 'createCluster_numReplicasPerShard' - The number of replicas to apply to each shard. The default value is 1.+-- The maximum is 5.+--+-- 'numShards', 'createCluster_numShards' - The number of shards the cluster will contain. The default value is 1.+--+-- 'parameterGroupName', 'createCluster_parameterGroupName' - The name of the parameter group associated with the cluster.+--+-- 'port', 'createCluster_port' - The port number on which each of the nodes accepts connections.+--+-- 'securityGroupIds', 'createCluster_securityGroupIds' - A list of security group names to associate with this cluster.+--+-- 'snapshotArns', 'createCluster_snapshotArns' - A list of Amazon Resource Names (ARN) that uniquely identify the RDB+-- snapshot files stored in Amazon S3. The snapshot files are used to+-- populate the new cluster. The Amazon S3 object name in the ARN cannot+-- contain any commas.+--+-- 'snapshotName', 'createCluster_snapshotName' - The name of a snapshot from which to restore data into the new cluster.+-- The snapshot status changes to restoring while the new cluster is being+-- created.+--+-- 'snapshotRetentionLimit', 'createCluster_snapshotRetentionLimit' - The number of days for which MemoryDB retains automatic snapshots before+-- deleting them. For example, if you set SnapshotRetentionLimit to 5, a+-- snapshot that was taken today is retained for 5 days before being+-- deleted.+--+-- 'snapshotWindow', 'createCluster_snapshotWindow' - The daily time range (in UTC) during which MemoryDB begins taking a+-- daily snapshot of your shard.+--+-- Example: 05:00-09:00+--+-- If you do not specify this parameter, MemoryDB automatically chooses an+-- appropriate time range.+--+-- 'snsTopicArn', 'createCluster_snsTopicArn' - The Amazon Resource Name (ARN) of the Amazon Simple Notification Service+-- (SNS) topic to which notifications are sent.+--+-- 'subnetGroupName', 'createCluster_subnetGroupName' - The name of the subnet group to be used for the cluster.+--+-- 'tLSEnabled', 'createCluster_tLSEnabled' - A flag to enable in-transit encryption on the cluster.+--+-- 'tags', 'createCluster_tags' - A list of tags to be added to this resource. Tags are comma-separated+-- key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include+-- multiple tags as shown following: Key=myKey, Value=myKeyValue+-- Key=mySecondKey, Value=mySecondKeyValue.+--+-- 'clusterName', 'createCluster_clusterName' - The name of the cluster. This value must be unique as it also serves as+-- the cluster identifier.+--+-- 'nodeType', 'createCluster_nodeType' - The compute and memory capacity of the nodes in the cluster.+--+-- 'aCLName', 'createCluster_aCLName' - The name of the Access Control List to associate with the cluster.+newCreateCluster ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'nodeType'+ Prelude.Text ->+ -- | 'aCLName'+ Prelude.Text ->+ CreateCluster+newCreateCluster pClusterName_ pNodeType_ pACLName_ =+ CreateCluster'+ { autoMinorVersionUpgrade =+ Prelude.Nothing,+ dataTiering = Prelude.Nothing,+ description = Prelude.Nothing,+ engineVersion = Prelude.Nothing,+ kmsKeyId = Prelude.Nothing,+ maintenanceWindow = Prelude.Nothing,+ numReplicasPerShard = Prelude.Nothing,+ numShards = Prelude.Nothing,+ parameterGroupName = Prelude.Nothing,+ port = Prelude.Nothing,+ securityGroupIds = Prelude.Nothing,+ snapshotArns = Prelude.Nothing,+ snapshotName = Prelude.Nothing,+ snapshotRetentionLimit = Prelude.Nothing,+ snapshotWindow = Prelude.Nothing,+ snsTopicArn = Prelude.Nothing,+ subnetGroupName = Prelude.Nothing,+ tLSEnabled = Prelude.Nothing,+ tags = Prelude.Nothing,+ clusterName = pClusterName_,+ nodeType = pNodeType_,+ aCLName = pACLName_+ }++-- | When set to true, the cluster will automatically receive minor engine+-- version upgrades after launch.+createCluster_autoMinorVersionUpgrade :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Bool)+createCluster_autoMinorVersionUpgrade = Lens.lens (\CreateCluster' {autoMinorVersionUpgrade} -> autoMinorVersionUpgrade) (\s@CreateCluster' {} a -> s {autoMinorVersionUpgrade = a} :: CreateCluster)++-- | Enables data tiering. Data tiering is only supported for clusters using+-- the r6gd node type. This parameter must be set when using r6gd nodes.+-- For more information, see+-- <https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html Data tiering>.+createCluster_dataTiering :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Bool)+createCluster_dataTiering = Lens.lens (\CreateCluster' {dataTiering} -> dataTiering) (\s@CreateCluster' {} a -> s {dataTiering = a} :: CreateCluster)++-- | An optional description of the cluster.+createCluster_description :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Text)+createCluster_description = Lens.lens (\CreateCluster' {description} -> description) (\s@CreateCluster' {} a -> s {description = a} :: CreateCluster)++-- | The version number of the Redis engine to be used for the cluster.+createCluster_engineVersion :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Text)+createCluster_engineVersion = Lens.lens (\CreateCluster' {engineVersion} -> engineVersion) (\s@CreateCluster' {} a -> s {engineVersion = a} :: CreateCluster)++-- | The ID of the KMS key used to encrypt the cluster.+createCluster_kmsKeyId :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Text)+createCluster_kmsKeyId = Lens.lens (\CreateCluster' {kmsKeyId} -> kmsKeyId) (\s@CreateCluster' {} a -> s {kmsKeyId = a} :: CreateCluster)++-- | Specifies the weekly time range during which maintenance on the cluster+-- is performed. It is specified as a range in the format+-- ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window+-- is a 60 minute period.+--+-- Valid values for @ddd@ are:+--+-- - @sun@+--+-- - @mon@+--+-- - @tue@+--+-- - @wed@+--+-- - @thu@+--+-- - @fri@+--+-- - @sat@+--+-- Example: @sun:23:00-mon:01:30@+createCluster_maintenanceWindow :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Text)+createCluster_maintenanceWindow = Lens.lens (\CreateCluster' {maintenanceWindow} -> maintenanceWindow) (\s@CreateCluster' {} a -> s {maintenanceWindow = a} :: CreateCluster)++-- | The number of replicas to apply to each shard. The default value is 1.+-- The maximum is 5.+createCluster_numReplicasPerShard :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Int)+createCluster_numReplicasPerShard = Lens.lens (\CreateCluster' {numReplicasPerShard} -> numReplicasPerShard) (\s@CreateCluster' {} a -> s {numReplicasPerShard = a} :: CreateCluster)++-- | The number of shards the cluster will contain. The default value is 1.+createCluster_numShards :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Int)+createCluster_numShards = Lens.lens (\CreateCluster' {numShards} -> numShards) (\s@CreateCluster' {} a -> s {numShards = a} :: CreateCluster)++-- | The name of the parameter group associated with the cluster.+createCluster_parameterGroupName :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Text)+createCluster_parameterGroupName = Lens.lens (\CreateCluster' {parameterGroupName} -> parameterGroupName) (\s@CreateCluster' {} a -> s {parameterGroupName = a} :: CreateCluster)++-- | The port number on which each of the nodes accepts connections.+createCluster_port :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Int)+createCluster_port = Lens.lens (\CreateCluster' {port} -> port) (\s@CreateCluster' {} a -> s {port = a} :: CreateCluster)++-- | A list of security group names to associate with this cluster.+createCluster_securityGroupIds :: Lens.Lens' CreateCluster (Prelude.Maybe [Prelude.Text])+createCluster_securityGroupIds = Lens.lens (\CreateCluster' {securityGroupIds} -> securityGroupIds) (\s@CreateCluster' {} a -> s {securityGroupIds = a} :: CreateCluster) Prelude.. Lens.mapping Lens.coerced++-- | A list of Amazon Resource Names (ARN) that uniquely identify the RDB+-- snapshot files stored in Amazon S3. The snapshot files are used to+-- populate the new cluster. The Amazon S3 object name in the ARN cannot+-- contain any commas.+createCluster_snapshotArns :: Lens.Lens' CreateCluster (Prelude.Maybe [Prelude.Text])+createCluster_snapshotArns = Lens.lens (\CreateCluster' {snapshotArns} -> snapshotArns) (\s@CreateCluster' {} a -> s {snapshotArns = a} :: CreateCluster) Prelude.. Lens.mapping Lens.coerced++-- | The name of a snapshot from which to restore data into the new cluster.+-- The snapshot status changes to restoring while the new cluster is being+-- created.+createCluster_snapshotName :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Text)+createCluster_snapshotName = Lens.lens (\CreateCluster' {snapshotName} -> snapshotName) (\s@CreateCluster' {} a -> s {snapshotName = a} :: CreateCluster)++-- | The number of days for which MemoryDB retains automatic snapshots before+-- deleting them. For example, if you set SnapshotRetentionLimit to 5, a+-- snapshot that was taken today is retained for 5 days before being+-- deleted.+createCluster_snapshotRetentionLimit :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Int)+createCluster_snapshotRetentionLimit = Lens.lens (\CreateCluster' {snapshotRetentionLimit} -> snapshotRetentionLimit) (\s@CreateCluster' {} a -> s {snapshotRetentionLimit = a} :: CreateCluster)++-- | The daily time range (in UTC) during which MemoryDB begins taking a+-- daily snapshot of your shard.+--+-- Example: 05:00-09:00+--+-- If you do not specify this parameter, MemoryDB automatically chooses an+-- appropriate time range.+createCluster_snapshotWindow :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Text)+createCluster_snapshotWindow = Lens.lens (\CreateCluster' {snapshotWindow} -> snapshotWindow) (\s@CreateCluster' {} a -> s {snapshotWindow = a} :: CreateCluster)++-- | The Amazon Resource Name (ARN) of the Amazon Simple Notification Service+-- (SNS) topic to which notifications are sent.+createCluster_snsTopicArn :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Text)+createCluster_snsTopicArn = Lens.lens (\CreateCluster' {snsTopicArn} -> snsTopicArn) (\s@CreateCluster' {} a -> s {snsTopicArn = a} :: CreateCluster)++-- | The name of the subnet group to be used for the cluster.+createCluster_subnetGroupName :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Text)+createCluster_subnetGroupName = Lens.lens (\CreateCluster' {subnetGroupName} -> subnetGroupName) (\s@CreateCluster' {} a -> s {subnetGroupName = a} :: CreateCluster)++-- | A flag to enable in-transit encryption on the cluster.+createCluster_tLSEnabled :: Lens.Lens' CreateCluster (Prelude.Maybe Prelude.Bool)+createCluster_tLSEnabled = Lens.lens (\CreateCluster' {tLSEnabled} -> tLSEnabled) (\s@CreateCluster' {} a -> s {tLSEnabled = a} :: CreateCluster)++-- | A list of tags to be added to this resource. Tags are comma-separated+-- key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include+-- multiple tags as shown following: Key=myKey, Value=myKeyValue+-- Key=mySecondKey, Value=mySecondKeyValue.+createCluster_tags :: Lens.Lens' CreateCluster (Prelude.Maybe [Tag])+createCluster_tags = Lens.lens (\CreateCluster' {tags} -> tags) (\s@CreateCluster' {} a -> s {tags = a} :: CreateCluster) Prelude.. Lens.mapping Lens.coerced++-- | The name of the cluster. This value must be unique as it also serves as+-- the cluster identifier.+createCluster_clusterName :: Lens.Lens' CreateCluster Prelude.Text+createCluster_clusterName = Lens.lens (\CreateCluster' {clusterName} -> clusterName) (\s@CreateCluster' {} a -> s {clusterName = a} :: CreateCluster)++-- | The compute and memory capacity of the nodes in the cluster.+createCluster_nodeType :: Lens.Lens' CreateCluster Prelude.Text+createCluster_nodeType = Lens.lens (\CreateCluster' {nodeType} -> nodeType) (\s@CreateCluster' {} a -> s {nodeType = a} :: CreateCluster)++-- | The name of the Access Control List to associate with the cluster.+createCluster_aCLName :: Lens.Lens' CreateCluster Prelude.Text+createCluster_aCLName = Lens.lens (\CreateCluster' {aCLName} -> aCLName) (\s@CreateCluster' {} a -> s {aCLName = a} :: CreateCluster)++instance Core.AWSRequest CreateCluster where+ type+ AWSResponse CreateCluster =+ CreateClusterResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateClusterResponse'+ Prelude.<$> (x Data..?> "Cluster")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateCluster where+ hashWithSalt _salt CreateCluster' {..} =+ _salt+ `Prelude.hashWithSalt` autoMinorVersionUpgrade+ `Prelude.hashWithSalt` dataTiering+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` engineVersion+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` maintenanceWindow+ `Prelude.hashWithSalt` numReplicasPerShard+ `Prelude.hashWithSalt` numShards+ `Prelude.hashWithSalt` parameterGroupName+ `Prelude.hashWithSalt` port+ `Prelude.hashWithSalt` securityGroupIds+ `Prelude.hashWithSalt` snapshotArns+ `Prelude.hashWithSalt` snapshotName+ `Prelude.hashWithSalt` snapshotRetentionLimit+ `Prelude.hashWithSalt` snapshotWindow+ `Prelude.hashWithSalt` snsTopicArn+ `Prelude.hashWithSalt` subnetGroupName+ `Prelude.hashWithSalt` tLSEnabled+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` nodeType+ `Prelude.hashWithSalt` aCLName++instance Prelude.NFData CreateCluster where+ rnf CreateCluster' {..} =+ Prelude.rnf autoMinorVersionUpgrade+ `Prelude.seq` Prelude.rnf dataTiering+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf engineVersion+ `Prelude.seq` Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf maintenanceWindow+ `Prelude.seq` Prelude.rnf numReplicasPerShard+ `Prelude.seq` Prelude.rnf numShards+ `Prelude.seq` Prelude.rnf parameterGroupName+ `Prelude.seq` Prelude.rnf port+ `Prelude.seq` Prelude.rnf securityGroupIds+ `Prelude.seq` Prelude.rnf snapshotArns+ `Prelude.seq` Prelude.rnf snapshotName+ `Prelude.seq` Prelude.rnf snapshotRetentionLimit+ `Prelude.seq` Prelude.rnf snapshotWindow+ `Prelude.seq` Prelude.rnf snsTopicArn+ `Prelude.seq` Prelude.rnf subnetGroupName+ `Prelude.seq` Prelude.rnf tLSEnabled+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf nodeType+ `Prelude.seq` Prelude.rnf aCLName++instance Data.ToHeaders CreateCluster where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.CreateCluster" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateCluster where+ toJSON CreateCluster' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AutoMinorVersionUpgrade" Data..=)+ Prelude.<$> autoMinorVersionUpgrade,+ ("DataTiering" Data..=) Prelude.<$> dataTiering,+ ("Description" Data..=) Prelude.<$> description,+ ("EngineVersion" Data..=) Prelude.<$> engineVersion,+ ("KmsKeyId" Data..=) Prelude.<$> kmsKeyId,+ ("MaintenanceWindow" Data..=)+ Prelude.<$> maintenanceWindow,+ ("NumReplicasPerShard" Data..=)+ Prelude.<$> numReplicasPerShard,+ ("NumShards" Data..=) Prelude.<$> numShards,+ ("ParameterGroupName" Data..=)+ Prelude.<$> parameterGroupName,+ ("Port" Data..=) Prelude.<$> port,+ ("SecurityGroupIds" Data..=)+ Prelude.<$> securityGroupIds,+ ("SnapshotArns" Data..=) Prelude.<$> snapshotArns,+ ("SnapshotName" Data..=) Prelude.<$> snapshotName,+ ("SnapshotRetentionLimit" Data..=)+ Prelude.<$> snapshotRetentionLimit,+ ("SnapshotWindow" Data..=)+ Prelude.<$> snapshotWindow,+ ("SnsTopicArn" Data..=) Prelude.<$> snsTopicArn,+ ("SubnetGroupName" Data..=)+ Prelude.<$> subnetGroupName,+ ("TLSEnabled" Data..=) Prelude.<$> tLSEnabled,+ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("ClusterName" Data..= clusterName),+ Prelude.Just ("NodeType" Data..= nodeType),+ Prelude.Just ("ACLName" Data..= aCLName)+ ]+ )++instance Data.ToPath CreateCluster where+ toPath = Prelude.const "/"++instance Data.ToQuery CreateCluster where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateClusterResponse' smart constructor.+data CreateClusterResponse = CreateClusterResponse'+ { -- | The newly-created cluster.+ cluster :: Prelude.Maybe Cluster,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cluster', 'createClusterResponse_cluster' - The newly-created cluster.+--+-- 'httpStatus', 'createClusterResponse_httpStatus' - The response's http status code.+newCreateClusterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateClusterResponse+newCreateClusterResponse pHttpStatus_ =+ CreateClusterResponse'+ { cluster = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The newly-created cluster.+createClusterResponse_cluster :: Lens.Lens' CreateClusterResponse (Prelude.Maybe Cluster)+createClusterResponse_cluster = Lens.lens (\CreateClusterResponse' {cluster} -> cluster) (\s@CreateClusterResponse' {} a -> s {cluster = a} :: CreateClusterResponse)++-- | The response's http status code.+createClusterResponse_httpStatus :: Lens.Lens' CreateClusterResponse Prelude.Int+createClusterResponse_httpStatus = Lens.lens (\CreateClusterResponse' {httpStatus} -> httpStatus) (\s@CreateClusterResponse' {} a -> s {httpStatus = a} :: CreateClusterResponse)++instance Prelude.NFData CreateClusterResponse where+ rnf CreateClusterResponse' {..} =+ Prelude.rnf cluster+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/CreateParameterGroup.hs view
@@ -0,0 +1,225 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.CreateParameterGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new MemoryDB parameter group. A parameter group is a+-- collection of parameters and their values that are applied to all of the+-- nodes in any cluster. For more information, see+-- <https://docs.aws.amazon.com/MemoryDB/latest/devguide/parametergroups.html Configuring engine parameters using parameter groups>.+module Amazonka.MemoryDb.CreateParameterGroup+ ( -- * Creating a Request+ CreateParameterGroup (..),+ newCreateParameterGroup,++ -- * Request Lenses+ createParameterGroup_description,+ createParameterGroup_tags,+ createParameterGroup_parameterGroupName,+ createParameterGroup_family,++ -- * Destructuring the Response+ CreateParameterGroupResponse (..),+ newCreateParameterGroupResponse,++ -- * Response Lenses+ createParameterGroupResponse_parameterGroup,+ createParameterGroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateParameterGroup' smart constructor.+data CreateParameterGroup = CreateParameterGroup'+ { -- | An optional description of the parameter group.+ description :: Prelude.Maybe Prelude.Text,+ -- | A list of tags to be added to this resource. A tag is a key-value pair.+ -- A tag key must be accompanied by a tag value, although null is accepted.+ tags :: Prelude.Maybe [Tag],+ -- | The name of the parameter group.+ parameterGroupName :: Prelude.Text,+ -- | The name of the parameter group family that the parameter group can be+ -- used with.+ family :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateParameterGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createParameterGroup_description' - An optional description of the parameter group.+--+-- 'tags', 'createParameterGroup_tags' - A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+--+-- 'parameterGroupName', 'createParameterGroup_parameterGroupName' - The name of the parameter group.+--+-- 'family', 'createParameterGroup_family' - The name of the parameter group family that the parameter group can be+-- used with.+newCreateParameterGroup ::+ -- | 'parameterGroupName'+ Prelude.Text ->+ -- | 'family'+ Prelude.Text ->+ CreateParameterGroup+newCreateParameterGroup pParameterGroupName_ pFamily_ =+ CreateParameterGroup'+ { description =+ Prelude.Nothing,+ tags = Prelude.Nothing,+ parameterGroupName = pParameterGroupName_,+ family = pFamily_+ }++-- | An optional description of the parameter group.+createParameterGroup_description :: Lens.Lens' CreateParameterGroup (Prelude.Maybe Prelude.Text)+createParameterGroup_description = Lens.lens (\CreateParameterGroup' {description} -> description) (\s@CreateParameterGroup' {} a -> s {description = a} :: CreateParameterGroup)++-- | A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+createParameterGroup_tags :: Lens.Lens' CreateParameterGroup (Prelude.Maybe [Tag])+createParameterGroup_tags = Lens.lens (\CreateParameterGroup' {tags} -> tags) (\s@CreateParameterGroup' {} a -> s {tags = a} :: CreateParameterGroup) Prelude.. Lens.mapping Lens.coerced++-- | The name of the parameter group.+createParameterGroup_parameterGroupName :: Lens.Lens' CreateParameterGroup Prelude.Text+createParameterGroup_parameterGroupName = Lens.lens (\CreateParameterGroup' {parameterGroupName} -> parameterGroupName) (\s@CreateParameterGroup' {} a -> s {parameterGroupName = a} :: CreateParameterGroup)++-- | The name of the parameter group family that the parameter group can be+-- used with.+createParameterGroup_family :: Lens.Lens' CreateParameterGroup Prelude.Text+createParameterGroup_family = Lens.lens (\CreateParameterGroup' {family} -> family) (\s@CreateParameterGroup' {} a -> s {family = a} :: CreateParameterGroup)++instance Core.AWSRequest CreateParameterGroup where+ type+ AWSResponse CreateParameterGroup =+ CreateParameterGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateParameterGroupResponse'+ Prelude.<$> (x Data..?> "ParameterGroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateParameterGroup where+ hashWithSalt _salt CreateParameterGroup' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` parameterGroupName+ `Prelude.hashWithSalt` family++instance Prelude.NFData CreateParameterGroup where+ rnf CreateParameterGroup' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf parameterGroupName+ `Prelude.seq` Prelude.rnf family++instance Data.ToHeaders CreateParameterGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.CreateParameterGroup" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateParameterGroup where+ toJSON CreateParameterGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Description" Data..=) Prelude.<$> description,+ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just+ ("ParameterGroupName" Data..= parameterGroupName),+ Prelude.Just ("Family" Data..= family)+ ]+ )++instance Data.ToPath CreateParameterGroup where+ toPath = Prelude.const "/"++instance Data.ToQuery CreateParameterGroup where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateParameterGroupResponse' smart constructor.+data CreateParameterGroupResponse = CreateParameterGroupResponse'+ { -- | The newly-created parameter group.+ parameterGroup :: Prelude.Maybe ParameterGroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateParameterGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'parameterGroup', 'createParameterGroupResponse_parameterGroup' - The newly-created parameter group.+--+-- 'httpStatus', 'createParameterGroupResponse_httpStatus' - The response's http status code.+newCreateParameterGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateParameterGroupResponse+newCreateParameterGroupResponse pHttpStatus_ =+ CreateParameterGroupResponse'+ { parameterGroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The newly-created parameter group.+createParameterGroupResponse_parameterGroup :: Lens.Lens' CreateParameterGroupResponse (Prelude.Maybe ParameterGroup)+createParameterGroupResponse_parameterGroup = Lens.lens (\CreateParameterGroupResponse' {parameterGroup} -> parameterGroup) (\s@CreateParameterGroupResponse' {} a -> s {parameterGroup = a} :: CreateParameterGroupResponse)++-- | The response's http status code.+createParameterGroupResponse_httpStatus :: Lens.Lens' CreateParameterGroupResponse Prelude.Int+createParameterGroupResponse_httpStatus = Lens.lens (\CreateParameterGroupResponse' {httpStatus} -> httpStatus) (\s@CreateParameterGroupResponse' {} a -> s {httpStatus = a} :: CreateParameterGroupResponse)++instance Prelude.NFData CreateParameterGroupResponse where+ rnf CreateParameterGroupResponse' {..} =+ Prelude.rnf parameterGroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/CreateSnapshot.hs view
@@ -0,0 +1,216 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.CreateSnapshot+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a copy of an entire cluster at a specific moment in time.+module Amazonka.MemoryDb.CreateSnapshot+ ( -- * Creating a Request+ CreateSnapshot (..),+ newCreateSnapshot,++ -- * Request Lenses+ createSnapshot_kmsKeyId,+ createSnapshot_tags,+ createSnapshot_clusterName,+ createSnapshot_snapshotName,++ -- * Destructuring the Response+ CreateSnapshotResponse (..),+ newCreateSnapshotResponse,++ -- * Response Lenses+ createSnapshotResponse_snapshot,+ createSnapshotResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSnapshot' smart constructor.+data CreateSnapshot = CreateSnapshot'+ { -- | The ID of the KMS key used to encrypt the snapshot.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | A list of tags to be added to this resource. A tag is a key-value pair.+ -- A tag key must be accompanied by a tag value, although null is accepted.+ tags :: Prelude.Maybe [Tag],+ -- | The snapshot is created from this cluster.+ clusterName :: Prelude.Text,+ -- | A name for the snapshot being created.+ snapshotName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSnapshot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsKeyId', 'createSnapshot_kmsKeyId' - The ID of the KMS key used to encrypt the snapshot.+--+-- 'tags', 'createSnapshot_tags' - A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+--+-- 'clusterName', 'createSnapshot_clusterName' - The snapshot is created from this cluster.+--+-- 'snapshotName', 'createSnapshot_snapshotName' - A name for the snapshot being created.+newCreateSnapshot ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'snapshotName'+ Prelude.Text ->+ CreateSnapshot+newCreateSnapshot pClusterName_ pSnapshotName_ =+ CreateSnapshot'+ { kmsKeyId = Prelude.Nothing,+ tags = Prelude.Nothing,+ clusterName = pClusterName_,+ snapshotName = pSnapshotName_+ }++-- | The ID of the KMS key used to encrypt the snapshot.+createSnapshot_kmsKeyId :: Lens.Lens' CreateSnapshot (Prelude.Maybe Prelude.Text)+createSnapshot_kmsKeyId = Lens.lens (\CreateSnapshot' {kmsKeyId} -> kmsKeyId) (\s@CreateSnapshot' {} a -> s {kmsKeyId = a} :: CreateSnapshot)++-- | A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+createSnapshot_tags :: Lens.Lens' CreateSnapshot (Prelude.Maybe [Tag])+createSnapshot_tags = Lens.lens (\CreateSnapshot' {tags} -> tags) (\s@CreateSnapshot' {} a -> s {tags = a} :: CreateSnapshot) Prelude.. Lens.mapping Lens.coerced++-- | The snapshot is created from this cluster.+createSnapshot_clusterName :: Lens.Lens' CreateSnapshot Prelude.Text+createSnapshot_clusterName = Lens.lens (\CreateSnapshot' {clusterName} -> clusterName) (\s@CreateSnapshot' {} a -> s {clusterName = a} :: CreateSnapshot)++-- | A name for the snapshot being created.+createSnapshot_snapshotName :: Lens.Lens' CreateSnapshot Prelude.Text+createSnapshot_snapshotName = Lens.lens (\CreateSnapshot' {snapshotName} -> snapshotName) (\s@CreateSnapshot' {} a -> s {snapshotName = a} :: CreateSnapshot)++instance Core.AWSRequest CreateSnapshot where+ type+ AWSResponse CreateSnapshot =+ CreateSnapshotResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateSnapshotResponse'+ Prelude.<$> (x Data..?> "Snapshot")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateSnapshot where+ hashWithSalt _salt CreateSnapshot' {..} =+ _salt+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` snapshotName++instance Prelude.NFData CreateSnapshot where+ rnf CreateSnapshot' {..} =+ Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf snapshotName++instance Data.ToHeaders CreateSnapshot where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.CreateSnapshot" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateSnapshot where+ toJSON CreateSnapshot' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("KmsKeyId" Data..=) Prelude.<$> kmsKeyId,+ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("ClusterName" Data..= clusterName),+ Prelude.Just ("SnapshotName" Data..= snapshotName)+ ]+ )++instance Data.ToPath CreateSnapshot where+ toPath = Prelude.const "/"++instance Data.ToQuery CreateSnapshot where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSnapshotResponse' smart constructor.+data CreateSnapshotResponse = CreateSnapshotResponse'+ { -- | The newly-created snapshot.+ snapshot :: Prelude.Maybe Snapshot,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSnapshotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'snapshot', 'createSnapshotResponse_snapshot' - The newly-created snapshot.+--+-- 'httpStatus', 'createSnapshotResponse_httpStatus' - The response's http status code.+newCreateSnapshotResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateSnapshotResponse+newCreateSnapshotResponse pHttpStatus_ =+ CreateSnapshotResponse'+ { snapshot = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The newly-created snapshot.+createSnapshotResponse_snapshot :: Lens.Lens' CreateSnapshotResponse (Prelude.Maybe Snapshot)+createSnapshotResponse_snapshot = Lens.lens (\CreateSnapshotResponse' {snapshot} -> snapshot) (\s@CreateSnapshotResponse' {} a -> s {snapshot = a} :: CreateSnapshotResponse)++-- | The response's http status code.+createSnapshotResponse_httpStatus :: Lens.Lens' CreateSnapshotResponse Prelude.Int+createSnapshotResponse_httpStatus = Lens.lens (\CreateSnapshotResponse' {httpStatus} -> httpStatus) (\s@CreateSnapshotResponse' {} a -> s {httpStatus = a} :: CreateSnapshotResponse)++instance Prelude.NFData CreateSnapshotResponse where+ rnf CreateSnapshotResponse' {..} =+ Prelude.rnf snapshot+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/CreateSubnetGroup.hs view
@@ -0,0 +1,222 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.CreateSubnetGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a subnet group. A subnet group is a collection of subnets+-- (typically private) that you can designate for your clusters running in+-- an Amazon Virtual Private Cloud (VPC) environment. When you create a+-- cluster in an Amazon VPC, you must specify a subnet group. MemoryDB uses+-- that subnet group to choose a subnet and IP addresses within that subnet+-- to associate with your nodes. For more information, see+-- <https://docs.aws.amazon.com/MemoryDB/latest/devguide/subnetgroups.html Subnets and subnet groups>.+module Amazonka.MemoryDb.CreateSubnetGroup+ ( -- * Creating a Request+ CreateSubnetGroup (..),+ newCreateSubnetGroup,++ -- * Request Lenses+ createSubnetGroup_description,+ createSubnetGroup_tags,+ createSubnetGroup_subnetGroupName,+ createSubnetGroup_subnetIds,++ -- * Destructuring the Response+ CreateSubnetGroupResponse (..),+ newCreateSubnetGroupResponse,++ -- * Response Lenses+ createSubnetGroupResponse_subnetGroup,+ createSubnetGroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSubnetGroup' smart constructor.+data CreateSubnetGroup = CreateSubnetGroup'+ { -- | A description for the subnet group.+ description :: Prelude.Maybe Prelude.Text,+ -- | A list of tags to be added to this resource. A tag is a key-value pair.+ -- A tag key must be accompanied by a tag value, although null is accepted.+ tags :: Prelude.Maybe [Tag],+ -- | The name of the subnet group.+ subnetGroupName :: Prelude.Text,+ -- | A list of VPC subnet IDs for the subnet group.+ subnetIds :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSubnetGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createSubnetGroup_description' - A description for the subnet group.+--+-- 'tags', 'createSubnetGroup_tags' - A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+--+-- 'subnetGroupName', 'createSubnetGroup_subnetGroupName' - The name of the subnet group.+--+-- 'subnetIds', 'createSubnetGroup_subnetIds' - A list of VPC subnet IDs for the subnet group.+newCreateSubnetGroup ::+ -- | 'subnetGroupName'+ Prelude.Text ->+ CreateSubnetGroup+newCreateSubnetGroup pSubnetGroupName_ =+ CreateSubnetGroup'+ { description = Prelude.Nothing,+ tags = Prelude.Nothing,+ subnetGroupName = pSubnetGroupName_,+ subnetIds = Prelude.mempty+ }++-- | A description for the subnet group.+createSubnetGroup_description :: Lens.Lens' CreateSubnetGroup (Prelude.Maybe Prelude.Text)+createSubnetGroup_description = Lens.lens (\CreateSubnetGroup' {description} -> description) (\s@CreateSubnetGroup' {} a -> s {description = a} :: CreateSubnetGroup)++-- | A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+createSubnetGroup_tags :: Lens.Lens' CreateSubnetGroup (Prelude.Maybe [Tag])+createSubnetGroup_tags = Lens.lens (\CreateSubnetGroup' {tags} -> tags) (\s@CreateSubnetGroup' {} a -> s {tags = a} :: CreateSubnetGroup) Prelude.. Lens.mapping Lens.coerced++-- | The name of the subnet group.+createSubnetGroup_subnetGroupName :: Lens.Lens' CreateSubnetGroup Prelude.Text+createSubnetGroup_subnetGroupName = Lens.lens (\CreateSubnetGroup' {subnetGroupName} -> subnetGroupName) (\s@CreateSubnetGroup' {} a -> s {subnetGroupName = a} :: CreateSubnetGroup)++-- | A list of VPC subnet IDs for the subnet group.+createSubnetGroup_subnetIds :: Lens.Lens' CreateSubnetGroup [Prelude.Text]+createSubnetGroup_subnetIds = Lens.lens (\CreateSubnetGroup' {subnetIds} -> subnetIds) (\s@CreateSubnetGroup' {} a -> s {subnetIds = a} :: CreateSubnetGroup) Prelude.. Lens.coerced++instance Core.AWSRequest CreateSubnetGroup where+ type+ AWSResponse CreateSubnetGroup =+ CreateSubnetGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateSubnetGroupResponse'+ Prelude.<$> (x Data..?> "SubnetGroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateSubnetGroup where+ hashWithSalt _salt CreateSubnetGroup' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` subnetGroupName+ `Prelude.hashWithSalt` subnetIds++instance Prelude.NFData CreateSubnetGroup where+ rnf CreateSubnetGroup' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf subnetGroupName+ `Prelude.seq` Prelude.rnf subnetIds++instance Data.ToHeaders CreateSubnetGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.CreateSubnetGroup" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateSubnetGroup where+ toJSON CreateSubnetGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Description" Data..=) Prelude.<$> description,+ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just+ ("SubnetGroupName" Data..= subnetGroupName),+ Prelude.Just ("SubnetIds" Data..= subnetIds)+ ]+ )++instance Data.ToPath CreateSubnetGroup where+ toPath = Prelude.const "/"++instance Data.ToQuery CreateSubnetGroup where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSubnetGroupResponse' smart constructor.+data CreateSubnetGroupResponse = CreateSubnetGroupResponse'+ { -- | The newly-created subnet group+ subnetGroup :: Prelude.Maybe SubnetGroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSubnetGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subnetGroup', 'createSubnetGroupResponse_subnetGroup' - The newly-created subnet group+--+-- 'httpStatus', 'createSubnetGroupResponse_httpStatus' - The response's http status code.+newCreateSubnetGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateSubnetGroupResponse+newCreateSubnetGroupResponse pHttpStatus_ =+ CreateSubnetGroupResponse'+ { subnetGroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The newly-created subnet group+createSubnetGroupResponse_subnetGroup :: Lens.Lens' CreateSubnetGroupResponse (Prelude.Maybe SubnetGroup)+createSubnetGroupResponse_subnetGroup = Lens.lens (\CreateSubnetGroupResponse' {subnetGroup} -> subnetGroup) (\s@CreateSubnetGroupResponse' {} a -> s {subnetGroup = a} :: CreateSubnetGroupResponse)++-- | The response's http status code.+createSubnetGroupResponse_httpStatus :: Lens.Lens' CreateSubnetGroupResponse Prelude.Int+createSubnetGroupResponse_httpStatus = Lens.lens (\CreateSubnetGroupResponse' {httpStatus} -> httpStatus) (\s@CreateSubnetGroupResponse' {} a -> s {httpStatus = a} :: CreateSubnetGroupResponse)++instance Prelude.NFData CreateSubnetGroupResponse where+ rnf CreateSubnetGroupResponse' {..} =+ Prelude.rnf subnetGroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/CreateUser.hs view
@@ -0,0 +1,225 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.CreateUser+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a MemoryDB user. For more information, see+-- <https://docs.aws.amazon.com/MemoryDB/latest/devguide/clusters.acls.html Authenticating users with Access Contol Lists (ACLs)>.+module Amazonka.MemoryDb.CreateUser+ ( -- * Creating a Request+ CreateUser (..),+ newCreateUser,++ -- * Request Lenses+ createUser_tags,+ createUser_userName,+ createUser_authenticationMode,+ createUser_accessString,++ -- * Destructuring the Response+ CreateUserResponse (..),+ newCreateUserResponse,++ -- * Response Lenses+ createUserResponse_user,+ createUserResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateUser' smart constructor.+data CreateUser = CreateUser'+ { -- | A list of tags to be added to this resource. A tag is a key-value pair.+ -- A tag key must be accompanied by a tag value, although null is accepted.+ tags :: Prelude.Maybe [Tag],+ -- | The name of the user. This value must be unique as it also serves as the+ -- user identifier.+ userName :: Prelude.Text,+ -- | Denotes the user\'s authentication properties, such as whether it+ -- requires a password to authenticate.+ authenticationMode :: AuthenticationMode,+ -- | Access permissions string used for this user.+ accessString :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createUser_tags' - A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+--+-- 'userName', 'createUser_userName' - The name of the user. This value must be unique as it also serves as the+-- user identifier.+--+-- 'authenticationMode', 'createUser_authenticationMode' - Denotes the user\'s authentication properties, such as whether it+-- requires a password to authenticate.+--+-- 'accessString', 'createUser_accessString' - Access permissions string used for this user.+newCreateUser ::+ -- | 'userName'+ Prelude.Text ->+ -- | 'authenticationMode'+ AuthenticationMode ->+ -- | 'accessString'+ Prelude.Text ->+ CreateUser+newCreateUser+ pUserName_+ pAuthenticationMode_+ pAccessString_ =+ CreateUser'+ { tags = Prelude.Nothing,+ userName = pUserName_,+ authenticationMode = pAuthenticationMode_,+ accessString = pAccessString_+ }++-- | A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+createUser_tags :: Lens.Lens' CreateUser (Prelude.Maybe [Tag])+createUser_tags = Lens.lens (\CreateUser' {tags} -> tags) (\s@CreateUser' {} a -> s {tags = a} :: CreateUser) Prelude.. Lens.mapping Lens.coerced++-- | The name of the user. This value must be unique as it also serves as the+-- user identifier.+createUser_userName :: Lens.Lens' CreateUser Prelude.Text+createUser_userName = Lens.lens (\CreateUser' {userName} -> userName) (\s@CreateUser' {} a -> s {userName = a} :: CreateUser)++-- | Denotes the user\'s authentication properties, such as whether it+-- requires a password to authenticate.+createUser_authenticationMode :: Lens.Lens' CreateUser AuthenticationMode+createUser_authenticationMode = Lens.lens (\CreateUser' {authenticationMode} -> authenticationMode) (\s@CreateUser' {} a -> s {authenticationMode = a} :: CreateUser)++-- | Access permissions string used for this user.+createUser_accessString :: Lens.Lens' CreateUser Prelude.Text+createUser_accessString = Lens.lens (\CreateUser' {accessString} -> accessString) (\s@CreateUser' {} a -> s {accessString = a} :: CreateUser)++instance Core.AWSRequest CreateUser where+ type AWSResponse CreateUser = CreateUserResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateUserResponse'+ Prelude.<$> (x Data..?> "User")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateUser where+ hashWithSalt _salt CreateUser' {..} =+ _salt+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` userName+ `Prelude.hashWithSalt` authenticationMode+ `Prelude.hashWithSalt` accessString++instance Prelude.NFData CreateUser where+ rnf CreateUser' {..} =+ Prelude.rnf tags+ `Prelude.seq` Prelude.rnf userName+ `Prelude.seq` Prelude.rnf authenticationMode+ `Prelude.seq` Prelude.rnf accessString++instance Data.ToHeaders CreateUser where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ("AmazonMemoryDB.CreateUser" :: Prelude.ByteString),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateUser where+ toJSON CreateUser' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("UserName" Data..= userName),+ Prelude.Just+ ("AuthenticationMode" Data..= authenticationMode),+ Prelude.Just ("AccessString" Data..= accessString)+ ]+ )++instance Data.ToPath CreateUser where+ toPath = Prelude.const "/"++instance Data.ToQuery CreateUser where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateUserResponse' smart constructor.+data CreateUserResponse = CreateUserResponse'+ { -- | The newly-created user.+ user :: Prelude.Maybe User,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateUserResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'user', 'createUserResponse_user' - The newly-created user.+--+-- 'httpStatus', 'createUserResponse_httpStatus' - The response's http status code.+newCreateUserResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateUserResponse+newCreateUserResponse pHttpStatus_ =+ CreateUserResponse'+ { user = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The newly-created user.+createUserResponse_user :: Lens.Lens' CreateUserResponse (Prelude.Maybe User)+createUserResponse_user = Lens.lens (\CreateUserResponse' {user} -> user) (\s@CreateUserResponse' {} a -> s {user = a} :: CreateUserResponse)++-- | The response's http status code.+createUserResponse_httpStatus :: Lens.Lens' CreateUserResponse Prelude.Int+createUserResponse_httpStatus = Lens.lens (\CreateUserResponse' {httpStatus} -> httpStatus) (\s@CreateUserResponse' {} a -> s {httpStatus = a} :: CreateUserResponse)++instance Prelude.NFData CreateUserResponse where+ rnf CreateUserResponse' {..} =+ Prelude.rnf user+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DeleteACL.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.DeleteACL+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an Access Control List. The ACL must first be disassociated from+-- the cluster before it can be deleted. For more information, see+-- <https://docs.aws.amazon.com/MemoryDB/latest/devguide/clusters.acls.html Authenticating users with Access Contol Lists (ACLs)>.+module Amazonka.MemoryDb.DeleteACL+ ( -- * Creating a Request+ DeleteACL (..),+ newDeleteACL,++ -- * Request Lenses+ deleteACL_aCLName,++ -- * Destructuring the Response+ DeleteACLResponse (..),+ newDeleteACLResponse,++ -- * Response Lenses+ deleteACLResponse_acl,+ deleteACLResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteACL' smart constructor.+data DeleteACL = DeleteACL'+ { -- | The name of the Access Control List to delete+ aCLName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteACL' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'aCLName', 'deleteACL_aCLName' - The name of the Access Control List to delete+newDeleteACL ::+ -- | 'aCLName'+ Prelude.Text ->+ DeleteACL+newDeleteACL pACLName_ =+ DeleteACL' {aCLName = pACLName_}++-- | The name of the Access Control List to delete+deleteACL_aCLName :: Lens.Lens' DeleteACL Prelude.Text+deleteACL_aCLName = Lens.lens (\DeleteACL' {aCLName} -> aCLName) (\s@DeleteACL' {} a -> s {aCLName = a} :: DeleteACL)++instance Core.AWSRequest DeleteACL where+ type AWSResponse DeleteACL = DeleteACLResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteACLResponse'+ Prelude.<$> (x Data..?> "ACL")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteACL where+ hashWithSalt _salt DeleteACL' {..} =+ _salt `Prelude.hashWithSalt` aCLName++instance Prelude.NFData DeleteACL where+ rnf DeleteACL' {..} = Prelude.rnf aCLName++instance Data.ToHeaders DeleteACL where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ("AmazonMemoryDB.DeleteACL" :: Prelude.ByteString),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteACL where+ toJSON DeleteACL' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("ACLName" Data..= aCLName)]+ )++instance Data.ToPath DeleteACL where+ toPath = Prelude.const "/"++instance Data.ToQuery DeleteACL where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteACLResponse' smart constructor.+data DeleteACLResponse = DeleteACLResponse'+ { -- | The Access Control List object that has been deleted.+ acl :: Prelude.Maybe ACL,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteACLResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acl', 'deleteACLResponse_acl' - The Access Control List object that has been deleted.+--+-- 'httpStatus', 'deleteACLResponse_httpStatus' - The response's http status code.+newDeleteACLResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteACLResponse+newDeleteACLResponse pHttpStatus_ =+ DeleteACLResponse'+ { acl = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The Access Control List object that has been deleted.+deleteACLResponse_acl :: Lens.Lens' DeleteACLResponse (Prelude.Maybe ACL)+deleteACLResponse_acl = Lens.lens (\DeleteACLResponse' {acl} -> acl) (\s@DeleteACLResponse' {} a -> s {acl = a} :: DeleteACLResponse)++-- | The response's http status code.+deleteACLResponse_httpStatus :: Lens.Lens' DeleteACLResponse Prelude.Int+deleteACLResponse_httpStatus = Lens.lens (\DeleteACLResponse' {httpStatus} -> httpStatus) (\s@DeleteACLResponse' {} a -> s {httpStatus = a} :: DeleteACLResponse)++instance Prelude.NFData DeleteACLResponse where+ rnf DeleteACLResponse' {..} =+ Prelude.rnf acl+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DeleteCluster.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.MemoryDb.DeleteCluster+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a cluster. It also deletes all associated nodes and node+-- endpoints+module Amazonka.MemoryDb.DeleteCluster+ ( -- * Creating a Request+ DeleteCluster (..),+ newDeleteCluster,++ -- * Request Lenses+ deleteCluster_finalSnapshotName,+ deleteCluster_clusterName,++ -- * Destructuring the Response+ DeleteClusterResponse (..),+ newDeleteClusterResponse,++ -- * Response Lenses+ deleteClusterResponse_cluster,+ deleteClusterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteCluster' smart constructor.+data DeleteCluster = DeleteCluster'+ { -- | The user-supplied name of a final cluster snapshot. This is the unique+ -- name that identifies the snapshot. MemoryDB creates the snapshot, and+ -- then deletes the cluster immediately afterward.+ finalSnapshotName :: Prelude.Maybe Prelude.Text,+ -- | The name of the cluster to be deleted+ clusterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'finalSnapshotName', 'deleteCluster_finalSnapshotName' - The user-supplied name of a final cluster snapshot. This is the unique+-- name that identifies the snapshot. MemoryDB creates the snapshot, and+-- then deletes the cluster immediately afterward.+--+-- 'clusterName', 'deleteCluster_clusterName' - The name of the cluster to be deleted+newDeleteCluster ::+ -- | 'clusterName'+ Prelude.Text ->+ DeleteCluster+newDeleteCluster pClusterName_ =+ DeleteCluster'+ { finalSnapshotName = Prelude.Nothing,+ clusterName = pClusterName_+ }++-- | The user-supplied name of a final cluster snapshot. This is the unique+-- name that identifies the snapshot. MemoryDB creates the snapshot, and+-- then deletes the cluster immediately afterward.+deleteCluster_finalSnapshotName :: Lens.Lens' DeleteCluster (Prelude.Maybe Prelude.Text)+deleteCluster_finalSnapshotName = Lens.lens (\DeleteCluster' {finalSnapshotName} -> finalSnapshotName) (\s@DeleteCluster' {} a -> s {finalSnapshotName = a} :: DeleteCluster)++-- | The name of the cluster to be deleted+deleteCluster_clusterName :: Lens.Lens' DeleteCluster Prelude.Text+deleteCluster_clusterName = Lens.lens (\DeleteCluster' {clusterName} -> clusterName) (\s@DeleteCluster' {} a -> s {clusterName = a} :: DeleteCluster)++instance Core.AWSRequest DeleteCluster where+ type+ AWSResponse DeleteCluster =+ DeleteClusterResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteClusterResponse'+ Prelude.<$> (x Data..?> "Cluster")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteCluster where+ hashWithSalt _salt DeleteCluster' {..} =+ _salt+ `Prelude.hashWithSalt` finalSnapshotName+ `Prelude.hashWithSalt` clusterName++instance Prelude.NFData DeleteCluster where+ rnf DeleteCluster' {..} =+ Prelude.rnf finalSnapshotName+ `Prelude.seq` Prelude.rnf clusterName++instance Data.ToHeaders DeleteCluster where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DeleteCluster" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteCluster where+ toJSON DeleteCluster' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("FinalSnapshotName" Data..=)+ Prelude.<$> finalSnapshotName,+ Prelude.Just ("ClusterName" Data..= clusterName)+ ]+ )++instance Data.ToPath DeleteCluster where+ toPath = Prelude.const "/"++instance Data.ToQuery DeleteCluster where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteClusterResponse' smart constructor.+data DeleteClusterResponse = DeleteClusterResponse'+ { -- | The cluster object that has been deleted+ cluster :: Prelude.Maybe Cluster,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cluster', 'deleteClusterResponse_cluster' - The cluster object that has been deleted+--+-- 'httpStatus', 'deleteClusterResponse_httpStatus' - The response's http status code.+newDeleteClusterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteClusterResponse+newDeleteClusterResponse pHttpStatus_ =+ DeleteClusterResponse'+ { cluster = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The cluster object that has been deleted+deleteClusterResponse_cluster :: Lens.Lens' DeleteClusterResponse (Prelude.Maybe Cluster)+deleteClusterResponse_cluster = Lens.lens (\DeleteClusterResponse' {cluster} -> cluster) (\s@DeleteClusterResponse' {} a -> s {cluster = a} :: DeleteClusterResponse)++-- | The response's http status code.+deleteClusterResponse_httpStatus :: Lens.Lens' DeleteClusterResponse Prelude.Int+deleteClusterResponse_httpStatus = Lens.lens (\DeleteClusterResponse' {httpStatus} -> httpStatus) (\s@DeleteClusterResponse' {} a -> s {httpStatus = a} :: DeleteClusterResponse)++instance Prelude.NFData DeleteClusterResponse where+ rnf DeleteClusterResponse' {..} =+ Prelude.rnf cluster+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DeleteParameterGroup.hs view
@@ -0,0 +1,176 @@+{-# 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.MemoryDb.DeleteParameterGroup+-- 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 parameter group. You cannot delete a parameter+-- group if it is associated with any clusters. You cannot delete the+-- default parameter groups in your account.+module Amazonka.MemoryDb.DeleteParameterGroup+ ( -- * Creating a Request+ DeleteParameterGroup (..),+ newDeleteParameterGroup,++ -- * Request Lenses+ deleteParameterGroup_parameterGroupName,++ -- * Destructuring the Response+ DeleteParameterGroupResponse (..),+ newDeleteParameterGroupResponse,++ -- * Response Lenses+ deleteParameterGroupResponse_parameterGroup,+ deleteParameterGroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteParameterGroup' smart constructor.+data DeleteParameterGroup = DeleteParameterGroup'+ { -- | The name of the parameter group to delete.+ parameterGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteParameterGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'parameterGroupName', 'deleteParameterGroup_parameterGroupName' - The name of the parameter group to delete.+newDeleteParameterGroup ::+ -- | 'parameterGroupName'+ Prelude.Text ->+ DeleteParameterGroup+newDeleteParameterGroup pParameterGroupName_ =+ DeleteParameterGroup'+ { parameterGroupName =+ pParameterGroupName_+ }++-- | The name of the parameter group to delete.+deleteParameterGroup_parameterGroupName :: Lens.Lens' DeleteParameterGroup Prelude.Text+deleteParameterGroup_parameterGroupName = Lens.lens (\DeleteParameterGroup' {parameterGroupName} -> parameterGroupName) (\s@DeleteParameterGroup' {} a -> s {parameterGroupName = a} :: DeleteParameterGroup)++instance Core.AWSRequest DeleteParameterGroup where+ type+ AWSResponse DeleteParameterGroup =+ DeleteParameterGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteParameterGroupResponse'+ Prelude.<$> (x Data..?> "ParameterGroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteParameterGroup where+ hashWithSalt _salt DeleteParameterGroup' {..} =+ _salt `Prelude.hashWithSalt` parameterGroupName++instance Prelude.NFData DeleteParameterGroup where+ rnf DeleteParameterGroup' {..} =+ Prelude.rnf parameterGroupName++instance Data.ToHeaders DeleteParameterGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DeleteParameterGroup" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteParameterGroup where+ toJSON DeleteParameterGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("ParameterGroupName" Data..= parameterGroupName)+ ]+ )++instance Data.ToPath DeleteParameterGroup where+ toPath = Prelude.const "/"++instance Data.ToQuery DeleteParameterGroup where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteParameterGroupResponse' smart constructor.+data DeleteParameterGroupResponse = DeleteParameterGroupResponse'+ { -- | The parameter group that has been deleted.+ parameterGroup :: Prelude.Maybe ParameterGroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteParameterGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'parameterGroup', 'deleteParameterGroupResponse_parameterGroup' - The parameter group that has been deleted.+--+-- 'httpStatus', 'deleteParameterGroupResponse_httpStatus' - The response's http status code.+newDeleteParameterGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteParameterGroupResponse+newDeleteParameterGroupResponse pHttpStatus_ =+ DeleteParameterGroupResponse'+ { parameterGroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The parameter group that has been deleted.+deleteParameterGroupResponse_parameterGroup :: Lens.Lens' DeleteParameterGroupResponse (Prelude.Maybe ParameterGroup)+deleteParameterGroupResponse_parameterGroup = Lens.lens (\DeleteParameterGroupResponse' {parameterGroup} -> parameterGroup) (\s@DeleteParameterGroupResponse' {} a -> s {parameterGroup = a} :: DeleteParameterGroupResponse)++-- | The response's http status code.+deleteParameterGroupResponse_httpStatus :: Lens.Lens' DeleteParameterGroupResponse Prelude.Int+deleteParameterGroupResponse_httpStatus = Lens.lens (\DeleteParameterGroupResponse' {httpStatus} -> httpStatus) (\s@DeleteParameterGroupResponse' {} a -> s {httpStatus = a} :: DeleteParameterGroupResponse)++instance Prelude.NFData DeleteParameterGroupResponse where+ rnf DeleteParameterGroupResponse' {..} =+ Prelude.rnf parameterGroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DeleteSnapshot.hs view
@@ -0,0 +1,169 @@+{-# 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.MemoryDb.DeleteSnapshot+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an existing snapshot. When you receive a successful response+-- from this operation, MemoryDB immediately begins deleting the snapshot;+-- you cannot cancel or revert this operation.+module Amazonka.MemoryDb.DeleteSnapshot+ ( -- * Creating a Request+ DeleteSnapshot (..),+ newDeleteSnapshot,++ -- * Request Lenses+ deleteSnapshot_snapshotName,++ -- * Destructuring the Response+ DeleteSnapshotResponse (..),+ newDeleteSnapshotResponse,++ -- * Response Lenses+ deleteSnapshotResponse_snapshot,+ deleteSnapshotResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteSnapshot' smart constructor.+data DeleteSnapshot = DeleteSnapshot'+ { -- | The name of the snapshot to delete+ snapshotName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSnapshot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'snapshotName', 'deleteSnapshot_snapshotName' - The name of the snapshot to delete+newDeleteSnapshot ::+ -- | 'snapshotName'+ Prelude.Text ->+ DeleteSnapshot+newDeleteSnapshot pSnapshotName_ =+ DeleteSnapshot' {snapshotName = pSnapshotName_}++-- | The name of the snapshot to delete+deleteSnapshot_snapshotName :: Lens.Lens' DeleteSnapshot Prelude.Text+deleteSnapshot_snapshotName = Lens.lens (\DeleteSnapshot' {snapshotName} -> snapshotName) (\s@DeleteSnapshot' {} a -> s {snapshotName = a} :: DeleteSnapshot)++instance Core.AWSRequest DeleteSnapshot where+ type+ AWSResponse DeleteSnapshot =+ DeleteSnapshotResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteSnapshotResponse'+ Prelude.<$> (x Data..?> "Snapshot")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteSnapshot where+ hashWithSalt _salt DeleteSnapshot' {..} =+ _salt `Prelude.hashWithSalt` snapshotName++instance Prelude.NFData DeleteSnapshot where+ rnf DeleteSnapshot' {..} = Prelude.rnf snapshotName++instance Data.ToHeaders DeleteSnapshot where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DeleteSnapshot" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteSnapshot where+ toJSON DeleteSnapshot' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("SnapshotName" Data..= snapshotName)]+ )++instance Data.ToPath DeleteSnapshot where+ toPath = Prelude.const "/"++instance Data.ToQuery DeleteSnapshot where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSnapshotResponse' smart constructor.+data DeleteSnapshotResponse = DeleteSnapshotResponse'+ { -- | The snapshot object that has been deleted.+ snapshot :: Prelude.Maybe Snapshot,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSnapshotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'snapshot', 'deleteSnapshotResponse_snapshot' - The snapshot object that has been deleted.+--+-- 'httpStatus', 'deleteSnapshotResponse_httpStatus' - The response's http status code.+newDeleteSnapshotResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteSnapshotResponse+newDeleteSnapshotResponse pHttpStatus_ =+ DeleteSnapshotResponse'+ { snapshot = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The snapshot object that has been deleted.+deleteSnapshotResponse_snapshot :: Lens.Lens' DeleteSnapshotResponse (Prelude.Maybe Snapshot)+deleteSnapshotResponse_snapshot = Lens.lens (\DeleteSnapshotResponse' {snapshot} -> snapshot) (\s@DeleteSnapshotResponse' {} a -> s {snapshot = a} :: DeleteSnapshotResponse)++-- | The response's http status code.+deleteSnapshotResponse_httpStatus :: Lens.Lens' DeleteSnapshotResponse Prelude.Int+deleteSnapshotResponse_httpStatus = Lens.lens (\DeleteSnapshotResponse' {httpStatus} -> httpStatus) (\s@DeleteSnapshotResponse' {} a -> s {httpStatus = a} :: DeleteSnapshotResponse)++instance Prelude.NFData DeleteSnapshotResponse where+ rnf DeleteSnapshotResponse' {..} =+ Prelude.rnf snapshot+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DeleteSubnetGroup.hs view
@@ -0,0 +1,175 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.DeleteSubnetGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a subnet group. You cannot delete a default subnet group or one+-- that is associated with any clusters.+module Amazonka.MemoryDb.DeleteSubnetGroup+ ( -- * Creating a Request+ DeleteSubnetGroup (..),+ newDeleteSubnetGroup,++ -- * Request Lenses+ deleteSubnetGroup_subnetGroupName,++ -- * Destructuring the Response+ DeleteSubnetGroupResponse (..),+ newDeleteSubnetGroupResponse,++ -- * Response Lenses+ deleteSubnetGroupResponse_subnetGroup,+ deleteSubnetGroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteSubnetGroup' smart constructor.+data DeleteSubnetGroup = DeleteSubnetGroup'+ { -- | The name of the subnet group to delete+ subnetGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSubnetGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subnetGroupName', 'deleteSubnetGroup_subnetGroupName' - The name of the subnet group to delete+newDeleteSubnetGroup ::+ -- | 'subnetGroupName'+ Prelude.Text ->+ DeleteSubnetGroup+newDeleteSubnetGroup pSubnetGroupName_ =+ DeleteSubnetGroup'+ { subnetGroupName =+ pSubnetGroupName_+ }++-- | The name of the subnet group to delete+deleteSubnetGroup_subnetGroupName :: Lens.Lens' DeleteSubnetGroup Prelude.Text+deleteSubnetGroup_subnetGroupName = Lens.lens (\DeleteSubnetGroup' {subnetGroupName} -> subnetGroupName) (\s@DeleteSubnetGroup' {} a -> s {subnetGroupName = a} :: DeleteSubnetGroup)++instance Core.AWSRequest DeleteSubnetGroup where+ type+ AWSResponse DeleteSubnetGroup =+ DeleteSubnetGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteSubnetGroupResponse'+ Prelude.<$> (x Data..?> "SubnetGroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteSubnetGroup where+ hashWithSalt _salt DeleteSubnetGroup' {..} =+ _salt `Prelude.hashWithSalt` subnetGroupName++instance Prelude.NFData DeleteSubnetGroup where+ rnf DeleteSubnetGroup' {..} =+ Prelude.rnf subnetGroupName++instance Data.ToHeaders DeleteSubnetGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DeleteSubnetGroup" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteSubnetGroup where+ toJSON DeleteSubnetGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("SubnetGroupName" Data..= subnetGroupName)+ ]+ )++instance Data.ToPath DeleteSubnetGroup where+ toPath = Prelude.const "/"++instance Data.ToQuery DeleteSubnetGroup where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSubnetGroupResponse' smart constructor.+data DeleteSubnetGroupResponse = DeleteSubnetGroupResponse'+ { -- | The subnet group object that has been deleted.+ subnetGroup :: Prelude.Maybe SubnetGroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSubnetGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subnetGroup', 'deleteSubnetGroupResponse_subnetGroup' - The subnet group object that has been deleted.+--+-- 'httpStatus', 'deleteSubnetGroupResponse_httpStatus' - The response's http status code.+newDeleteSubnetGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteSubnetGroupResponse+newDeleteSubnetGroupResponse pHttpStatus_ =+ DeleteSubnetGroupResponse'+ { subnetGroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The subnet group object that has been deleted.+deleteSubnetGroupResponse_subnetGroup :: Lens.Lens' DeleteSubnetGroupResponse (Prelude.Maybe SubnetGroup)+deleteSubnetGroupResponse_subnetGroup = Lens.lens (\DeleteSubnetGroupResponse' {subnetGroup} -> subnetGroup) (\s@DeleteSubnetGroupResponse' {} a -> s {subnetGroup = a} :: DeleteSubnetGroupResponse)++-- | The response's http status code.+deleteSubnetGroupResponse_httpStatus :: Lens.Lens' DeleteSubnetGroupResponse Prelude.Int+deleteSubnetGroupResponse_httpStatus = Lens.lens (\DeleteSubnetGroupResponse' {httpStatus} -> httpStatus) (\s@DeleteSubnetGroupResponse' {} a -> s {httpStatus = a} :: DeleteSubnetGroupResponse)++instance Prelude.NFData DeleteSubnetGroupResponse where+ rnf DeleteSubnetGroupResponse' {..} =+ Prelude.rnf subnetGroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DeleteUser.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.MemoryDb.DeleteUser+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a user. The user will be removed from all ACLs and in turn+-- removed from all clusters.+module Amazonka.MemoryDb.DeleteUser+ ( -- * Creating a Request+ DeleteUser (..),+ newDeleteUser,++ -- * Request Lenses+ deleteUser_userName,++ -- * Destructuring the Response+ DeleteUserResponse (..),+ newDeleteUserResponse,++ -- * Response Lenses+ deleteUserResponse_user,+ deleteUserResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteUser' smart constructor.+data DeleteUser = DeleteUser'+ { -- | The name of the user to delete+ userName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'userName', 'deleteUser_userName' - The name of the user to delete+newDeleteUser ::+ -- | 'userName'+ Prelude.Text ->+ DeleteUser+newDeleteUser pUserName_ =+ DeleteUser' {userName = pUserName_}++-- | The name of the user to delete+deleteUser_userName :: Lens.Lens' DeleteUser Prelude.Text+deleteUser_userName = Lens.lens (\DeleteUser' {userName} -> userName) (\s@DeleteUser' {} a -> s {userName = a} :: DeleteUser)++instance Core.AWSRequest DeleteUser where+ type AWSResponse DeleteUser = DeleteUserResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteUserResponse'+ Prelude.<$> (x Data..?> "User")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteUser where+ hashWithSalt _salt DeleteUser' {..} =+ _salt `Prelude.hashWithSalt` userName++instance Prelude.NFData DeleteUser where+ rnf DeleteUser' {..} = Prelude.rnf userName++instance Data.ToHeaders DeleteUser where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ("AmazonMemoryDB.DeleteUser" :: Prelude.ByteString),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteUser where+ toJSON DeleteUser' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("UserName" Data..= userName)]+ )++instance Data.ToPath DeleteUser where+ toPath = Prelude.const "/"++instance Data.ToQuery DeleteUser where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteUserResponse' smart constructor.+data DeleteUserResponse = DeleteUserResponse'+ { -- | The user object that has been deleted.+ user :: Prelude.Maybe User,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteUserResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'user', 'deleteUserResponse_user' - The user object that has been deleted.+--+-- 'httpStatus', 'deleteUserResponse_httpStatus' - The response's http status code.+newDeleteUserResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteUserResponse+newDeleteUserResponse pHttpStatus_ =+ DeleteUserResponse'+ { user = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The user object that has been deleted.+deleteUserResponse_user :: Lens.Lens' DeleteUserResponse (Prelude.Maybe User)+deleteUserResponse_user = Lens.lens (\DeleteUserResponse' {user} -> user) (\s@DeleteUserResponse' {} a -> s {user = a} :: DeleteUserResponse)++-- | The response's http status code.+deleteUserResponse_httpStatus :: Lens.Lens' DeleteUserResponse Prelude.Int+deleteUserResponse_httpStatus = Lens.lens (\DeleteUserResponse' {httpStatus} -> httpStatus) (\s@DeleteUserResponse' {} a -> s {httpStatus = a} :: DeleteUserResponse)++instance Prelude.NFData DeleteUserResponse where+ rnf DeleteUserResponse' {..} =+ Prelude.rnf user+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DescribeACLs.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.MemoryDb.DescribeACLs+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of ACLs+--+-- This operation returns paginated results.+module Amazonka.MemoryDb.DescribeACLs+ ( -- * Creating a Request+ DescribeACLs (..),+ newDescribeACLs,++ -- * Request Lenses+ describeACLs_aCLName,+ describeACLs_maxResults,+ describeACLs_nextToken,++ -- * Destructuring the Response+ DescribeACLsResponse (..),+ newDescribeACLsResponse,++ -- * Response Lenses+ describeACLsResponse_aCLs,+ describeACLsResponse_nextToken,+ describeACLsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeACLs' smart constructor.+data DescribeACLs = DescribeACLs'+ { -- | The name of the ACL+ aCLName :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of records to include in the response. If more+ -- records exist than the specified MaxResults value, a token is included+ -- in the response so that the remaining results can be retrieved.+ maxResults :: Prelude.Maybe Prelude.Int,+ -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeACLs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'aCLName', 'describeACLs_aCLName' - The name of the ACL+--+-- 'maxResults', 'describeACLs_maxResults' - The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'describeACLs_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+newDescribeACLs ::+ DescribeACLs+newDescribeACLs =+ DescribeACLs'+ { aCLName = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | The name of the ACL+describeACLs_aCLName :: Lens.Lens' DescribeACLs (Prelude.Maybe Prelude.Text)+describeACLs_aCLName = Lens.lens (\DescribeACLs' {aCLName} -> aCLName) (\s@DescribeACLs' {} a -> s {aCLName = a} :: DescribeACLs)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+describeACLs_maxResults :: Lens.Lens' DescribeACLs (Prelude.Maybe Prelude.Int)+describeACLs_maxResults = Lens.lens (\DescribeACLs' {maxResults} -> maxResults) (\s@DescribeACLs' {} a -> s {maxResults = a} :: DescribeACLs)++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeACLs_nextToken :: Lens.Lens' DescribeACLs (Prelude.Maybe Prelude.Text)+describeACLs_nextToken = Lens.lens (\DescribeACLs' {nextToken} -> nextToken) (\s@DescribeACLs' {} a -> s {nextToken = a} :: DescribeACLs)++instance Core.AWSPager DescribeACLs where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeACLsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeACLsResponse_aCLs+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeACLs_nextToken+ Lens..~ rs+ Lens.^? describeACLsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeACLs where+ type AWSResponse DescribeACLs = DescribeACLsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeACLsResponse'+ Prelude.<$> (x Data..?> "ACLs" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeACLs where+ hashWithSalt _salt DescribeACLs' {..} =+ _salt+ `Prelude.hashWithSalt` aCLName+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData DescribeACLs where+ rnf DescribeACLs' {..} =+ Prelude.rnf aCLName+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders DescribeACLs where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DescribeACLs" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeACLs where+ toJSON DescribeACLs' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ACLName" Data..=) Prelude.<$> aCLName,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken+ ]+ )++instance Data.ToPath DescribeACLs where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeACLs where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeACLsResponse' smart constructor.+data DescribeACLsResponse = DescribeACLsResponse'+ { -- | The list of ACLs+ aCLs :: Prelude.Maybe [ACL],+ -- | If nextToken is returned, there are more results available. The value of+ -- nextToken is a unique pagination token for each page. Make the call+ -- again using the returned token to retrieve the next page. Keep all other+ -- arguments unchanged.+ 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 'DescribeACLsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'aCLs', 'describeACLsResponse_aCLs' - The list of ACLs+--+-- 'nextToken', 'describeACLsResponse_nextToken' - If nextToken is returned, there are more results available. The value of+-- nextToken is a unique pagination token for each page. Make the call+-- again using the returned token to retrieve the next page. Keep all other+-- arguments unchanged.+--+-- 'httpStatus', 'describeACLsResponse_httpStatus' - The response's http status code.+newDescribeACLsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeACLsResponse+newDescribeACLsResponse pHttpStatus_ =+ DescribeACLsResponse'+ { aCLs = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of ACLs+describeACLsResponse_aCLs :: Lens.Lens' DescribeACLsResponse (Prelude.Maybe [ACL])+describeACLsResponse_aCLs = Lens.lens (\DescribeACLsResponse' {aCLs} -> aCLs) (\s@DescribeACLsResponse' {} a -> s {aCLs = a} :: DescribeACLsResponse) Prelude.. Lens.mapping Lens.coerced++-- | If nextToken is returned, there are more results available. The value of+-- nextToken is a unique pagination token for each page. Make the call+-- again using the returned token to retrieve the next page. Keep all other+-- arguments unchanged.+describeACLsResponse_nextToken :: Lens.Lens' DescribeACLsResponse (Prelude.Maybe Prelude.Text)+describeACLsResponse_nextToken = Lens.lens (\DescribeACLsResponse' {nextToken} -> nextToken) (\s@DescribeACLsResponse' {} a -> s {nextToken = a} :: DescribeACLsResponse)++-- | The response's http status code.+describeACLsResponse_httpStatus :: Lens.Lens' DescribeACLsResponse Prelude.Int+describeACLsResponse_httpStatus = Lens.lens (\DescribeACLsResponse' {httpStatus} -> httpStatus) (\s@DescribeACLsResponse' {} a -> s {httpStatus = a} :: DescribeACLsResponse)++instance Prelude.NFData DescribeACLsResponse where+ rnf DescribeACLsResponse' {..} =+ Prelude.rnf aCLs+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DescribeClusters.hs view
@@ -0,0 +1,282 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.DescribeClusters+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about all provisioned clusters if no cluster+-- identifier is specified, or about a specific cluster if a cluster name+-- is supplied.+--+-- This operation returns paginated results.+module Amazonka.MemoryDb.DescribeClusters+ ( -- * Creating a Request+ DescribeClusters (..),+ newDescribeClusters,++ -- * Request Lenses+ describeClusters_clusterName,+ describeClusters_maxResults,+ describeClusters_nextToken,+ describeClusters_showShardDetails,++ -- * Destructuring the Response+ DescribeClustersResponse (..),+ newDescribeClustersResponse,++ -- * Response Lenses+ describeClustersResponse_clusters,+ describeClustersResponse_nextToken,+ describeClustersResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeClusters' smart constructor.+data DescribeClusters = DescribeClusters'+ { -- | The name of the cluster+ clusterName :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of records to include in the response. If more+ -- records exist than the specified MaxResults value, a token is included+ -- in the response so that the remaining results can be retrieved.+ maxResults :: Prelude.Maybe Prelude.Int,+ -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | An optional flag that can be included in the request to retrieve+ -- information about the individual shard(s).+ showShardDetails :: Prelude.Maybe Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeClusters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterName', 'describeClusters_clusterName' - The name of the cluster+--+-- 'maxResults', 'describeClusters_maxResults' - The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'describeClusters_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'showShardDetails', 'describeClusters_showShardDetails' - An optional flag that can be included in the request to retrieve+-- information about the individual shard(s).+newDescribeClusters ::+ DescribeClusters+newDescribeClusters =+ DescribeClusters'+ { clusterName = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ showShardDetails = Prelude.Nothing+ }++-- | The name of the cluster+describeClusters_clusterName :: Lens.Lens' DescribeClusters (Prelude.Maybe Prelude.Text)+describeClusters_clusterName = Lens.lens (\DescribeClusters' {clusterName} -> clusterName) (\s@DescribeClusters' {} a -> s {clusterName = a} :: DescribeClusters)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+describeClusters_maxResults :: Lens.Lens' DescribeClusters (Prelude.Maybe Prelude.Int)+describeClusters_maxResults = Lens.lens (\DescribeClusters' {maxResults} -> maxResults) (\s@DescribeClusters' {} a -> s {maxResults = a} :: DescribeClusters)++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeClusters_nextToken :: Lens.Lens' DescribeClusters (Prelude.Maybe Prelude.Text)+describeClusters_nextToken = Lens.lens (\DescribeClusters' {nextToken} -> nextToken) (\s@DescribeClusters' {} a -> s {nextToken = a} :: DescribeClusters)++-- | An optional flag that can be included in the request to retrieve+-- information about the individual shard(s).+describeClusters_showShardDetails :: Lens.Lens' DescribeClusters (Prelude.Maybe Prelude.Bool)+describeClusters_showShardDetails = Lens.lens (\DescribeClusters' {showShardDetails} -> showShardDetails) (\s@DescribeClusters' {} a -> s {showShardDetails = a} :: DescribeClusters)++instance Core.AWSPager DescribeClusters where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeClustersResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeClustersResponse_clusters+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeClusters_nextToken+ Lens..~ rs+ Lens.^? describeClustersResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeClusters where+ type+ AWSResponse DescribeClusters =+ DescribeClustersResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeClustersResponse'+ Prelude.<$> (x Data..?> "Clusters" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeClusters where+ hashWithSalt _salt DescribeClusters' {..} =+ _salt+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` showShardDetails++instance Prelude.NFData DescribeClusters where+ rnf DescribeClusters' {..} =+ Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf showShardDetails++instance Data.ToHeaders DescribeClusters where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DescribeClusters" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeClusters where+ toJSON DescribeClusters' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClusterName" Data..=) Prelude.<$> clusterName,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("ShowShardDetails" Data..=)+ Prelude.<$> showShardDetails+ ]+ )++instance Data.ToPath DescribeClusters where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeClusters where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeClustersResponse' smart constructor.+data DescribeClustersResponse = DescribeClustersResponse'+ { -- | A list of clusters+ clusters :: Prelude.Maybe [Cluster],+ -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ 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 'DescribeClustersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusters', 'describeClustersResponse_clusters' - A list of clusters+--+-- 'nextToken', 'describeClustersResponse_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'httpStatus', 'describeClustersResponse_httpStatus' - The response's http status code.+newDescribeClustersResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeClustersResponse+newDescribeClustersResponse pHttpStatus_ =+ DescribeClustersResponse'+ { clusters =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of clusters+describeClustersResponse_clusters :: Lens.Lens' DescribeClustersResponse (Prelude.Maybe [Cluster])+describeClustersResponse_clusters = Lens.lens (\DescribeClustersResponse' {clusters} -> clusters) (\s@DescribeClustersResponse' {} a -> s {clusters = a} :: DescribeClustersResponse) Prelude.. Lens.mapping Lens.coerced++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeClustersResponse_nextToken :: Lens.Lens' DescribeClustersResponse (Prelude.Maybe Prelude.Text)+describeClustersResponse_nextToken = Lens.lens (\DescribeClustersResponse' {nextToken} -> nextToken) (\s@DescribeClustersResponse' {} a -> s {nextToken = a} :: DescribeClustersResponse)++-- | The response's http status code.+describeClustersResponse_httpStatus :: Lens.Lens' DescribeClustersResponse Prelude.Int+describeClustersResponse_httpStatus = Lens.lens (\DescribeClustersResponse' {httpStatus} -> httpStatus) (\s@DescribeClustersResponse' {} a -> s {httpStatus = a} :: DescribeClustersResponse)++instance Prelude.NFData DescribeClustersResponse where+ rnf DescribeClustersResponse' {..} =+ Prelude.rnf clusters+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DescribeEngineVersions.hs view
@@ -0,0 +1,300 @@+{-# 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.MemoryDb.DescribeEngineVersions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of the available Redis engine versions.+--+-- This operation returns paginated results.+module Amazonka.MemoryDb.DescribeEngineVersions+ ( -- * Creating a Request+ DescribeEngineVersions (..),+ newDescribeEngineVersions,++ -- * Request Lenses+ describeEngineVersions_defaultOnly,+ describeEngineVersions_engineVersion,+ describeEngineVersions_maxResults,+ describeEngineVersions_nextToken,+ describeEngineVersions_parameterGroupFamily,++ -- * Destructuring the Response+ DescribeEngineVersionsResponse (..),+ newDescribeEngineVersionsResponse,++ -- * Response Lenses+ describeEngineVersionsResponse_engineVersions,+ describeEngineVersionsResponse_nextToken,+ describeEngineVersionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeEngineVersions' smart constructor.+data DescribeEngineVersions = DescribeEngineVersions'+ { -- | If true, specifies that only the default version of the specified engine+ -- or engine and major version combination is to be returned.+ defaultOnly :: Prelude.Maybe Prelude.Bool,+ -- | The Redis engine version+ engineVersion :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of records to include in the response. If more+ -- records exist than the specified MaxResults value, a token is included+ -- in the response so that the remaining results can be retrieved.+ maxResults :: Prelude.Maybe Prelude.Int,+ -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of a specific parameter group family to return details for.+ parameterGroupFamily :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEngineVersions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'defaultOnly', 'describeEngineVersions_defaultOnly' - If true, specifies that only the default version of the specified engine+-- or engine and major version combination is to be returned.+--+-- 'engineVersion', 'describeEngineVersions_engineVersion' - The Redis engine version+--+-- 'maxResults', 'describeEngineVersions_maxResults' - The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'describeEngineVersions_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'parameterGroupFamily', 'describeEngineVersions_parameterGroupFamily' - The name of a specific parameter group family to return details for.+newDescribeEngineVersions ::+ DescribeEngineVersions+newDescribeEngineVersions =+ DescribeEngineVersions'+ { defaultOnly =+ Prelude.Nothing,+ engineVersion = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ parameterGroupFamily = Prelude.Nothing+ }++-- | If true, specifies that only the default version of the specified engine+-- or engine and major version combination is to be returned.+describeEngineVersions_defaultOnly :: Lens.Lens' DescribeEngineVersions (Prelude.Maybe Prelude.Bool)+describeEngineVersions_defaultOnly = Lens.lens (\DescribeEngineVersions' {defaultOnly} -> defaultOnly) (\s@DescribeEngineVersions' {} a -> s {defaultOnly = a} :: DescribeEngineVersions)++-- | The Redis engine version+describeEngineVersions_engineVersion :: Lens.Lens' DescribeEngineVersions (Prelude.Maybe Prelude.Text)+describeEngineVersions_engineVersion = Lens.lens (\DescribeEngineVersions' {engineVersion} -> engineVersion) (\s@DescribeEngineVersions' {} a -> s {engineVersion = a} :: DescribeEngineVersions)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+describeEngineVersions_maxResults :: Lens.Lens' DescribeEngineVersions (Prelude.Maybe Prelude.Int)+describeEngineVersions_maxResults = Lens.lens (\DescribeEngineVersions' {maxResults} -> maxResults) (\s@DescribeEngineVersions' {} a -> s {maxResults = a} :: DescribeEngineVersions)++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeEngineVersions_nextToken :: Lens.Lens' DescribeEngineVersions (Prelude.Maybe Prelude.Text)+describeEngineVersions_nextToken = Lens.lens (\DescribeEngineVersions' {nextToken} -> nextToken) (\s@DescribeEngineVersions' {} a -> s {nextToken = a} :: DescribeEngineVersions)++-- | The name of a specific parameter group family to return details for.+describeEngineVersions_parameterGroupFamily :: Lens.Lens' DescribeEngineVersions (Prelude.Maybe Prelude.Text)+describeEngineVersions_parameterGroupFamily = Lens.lens (\DescribeEngineVersions' {parameterGroupFamily} -> parameterGroupFamily) (\s@DescribeEngineVersions' {} a -> s {parameterGroupFamily = a} :: DescribeEngineVersions)++instance Core.AWSPager DescribeEngineVersions where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeEngineVersionsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeEngineVersionsResponse_engineVersions+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeEngineVersions_nextToken+ Lens..~ rs+ Lens.^? describeEngineVersionsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeEngineVersions where+ type+ AWSResponse DescribeEngineVersions =+ DescribeEngineVersionsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeEngineVersionsResponse'+ Prelude.<$> (x Data..?> "EngineVersions" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeEngineVersions where+ hashWithSalt _salt DescribeEngineVersions' {..} =+ _salt+ `Prelude.hashWithSalt` defaultOnly+ `Prelude.hashWithSalt` engineVersion+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` parameterGroupFamily++instance Prelude.NFData DescribeEngineVersions where+ rnf DescribeEngineVersions' {..} =+ Prelude.rnf defaultOnly+ `Prelude.seq` Prelude.rnf engineVersion+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf parameterGroupFamily++instance Data.ToHeaders DescribeEngineVersions where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DescribeEngineVersions" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeEngineVersions where+ toJSON DescribeEngineVersions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DefaultOnly" Data..=) Prelude.<$> defaultOnly,+ ("EngineVersion" Data..=) Prelude.<$> engineVersion,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("ParameterGroupFamily" Data..=)+ Prelude.<$> parameterGroupFamily+ ]+ )++instance Data.ToPath DescribeEngineVersions where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeEngineVersions where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeEngineVersionsResponse' smart constructor.+data DescribeEngineVersionsResponse = DescribeEngineVersionsResponse'+ { -- | A list of engine version details. Each element in the list contains+ -- detailed information about one engine version.+ engineVersions :: Prelude.Maybe [EngineVersionInfo],+ -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ 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 'DescribeEngineVersionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'engineVersions', 'describeEngineVersionsResponse_engineVersions' - A list of engine version details. Each element in the list contains+-- detailed information about one engine version.+--+-- 'nextToken', 'describeEngineVersionsResponse_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'httpStatus', 'describeEngineVersionsResponse_httpStatus' - The response's http status code.+newDescribeEngineVersionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeEngineVersionsResponse+newDescribeEngineVersionsResponse pHttpStatus_ =+ DescribeEngineVersionsResponse'+ { engineVersions =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of engine version details. Each element in the list contains+-- detailed information about one engine version.+describeEngineVersionsResponse_engineVersions :: Lens.Lens' DescribeEngineVersionsResponse (Prelude.Maybe [EngineVersionInfo])+describeEngineVersionsResponse_engineVersions = Lens.lens (\DescribeEngineVersionsResponse' {engineVersions} -> engineVersions) (\s@DescribeEngineVersionsResponse' {} a -> s {engineVersions = a} :: DescribeEngineVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeEngineVersionsResponse_nextToken :: Lens.Lens' DescribeEngineVersionsResponse (Prelude.Maybe Prelude.Text)+describeEngineVersionsResponse_nextToken = Lens.lens (\DescribeEngineVersionsResponse' {nextToken} -> nextToken) (\s@DescribeEngineVersionsResponse' {} a -> s {nextToken = a} :: DescribeEngineVersionsResponse)++-- | The response's http status code.+describeEngineVersionsResponse_httpStatus :: Lens.Lens' DescribeEngineVersionsResponse Prelude.Int+describeEngineVersionsResponse_httpStatus = Lens.lens (\DescribeEngineVersionsResponse' {httpStatus} -> httpStatus) (\s@DescribeEngineVersionsResponse' {} a -> s {httpStatus = a} :: DescribeEngineVersionsResponse)++instance+ Prelude.NFData+ DescribeEngineVersionsResponse+ where+ rnf DescribeEngineVersionsResponse' {..} =+ Prelude.rnf engineVersions+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DescribeEvents.hs view
@@ -0,0 +1,333 @@+{-# 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.MemoryDb.DescribeEvents+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns events related to clusters, security groups, and parameter+-- groups. You can obtain events specific to a particular cluster, security+-- group, or parameter group by providing the name as a parameter. By+-- default, only the events occurring within the last hour are returned;+-- however, you can retrieve up to 14 days\' worth of events if necessary.+--+-- This operation returns paginated results.+module Amazonka.MemoryDb.DescribeEvents+ ( -- * Creating a Request+ DescribeEvents (..),+ newDescribeEvents,++ -- * Request Lenses+ describeEvents_duration,+ describeEvents_endTime,+ describeEvents_maxResults,+ describeEvents_nextToken,+ describeEvents_sourceName,+ describeEvents_sourceType,+ describeEvents_startTime,++ -- * Destructuring the Response+ DescribeEventsResponse (..),+ newDescribeEventsResponse,++ -- * Response Lenses+ describeEventsResponse_events,+ describeEventsResponse_nextToken,+ describeEventsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeEvents' smart constructor.+data DescribeEvents = DescribeEvents'+ { -- | The number of minutes worth of events to retrieve.+ duration :: Prelude.Maybe Prelude.Int,+ -- | The end of the time interval for which to retrieve events, specified in+ -- ISO 8601 format. Example: 2017-03-30T07:03:49.555Z+ endTime :: Prelude.Maybe Data.POSIX,+ -- | The maximum number of records to include in the response. If more+ -- records exist than the specified MaxResults value, a token is included+ -- in the response so that the remaining results can be retrieved.+ maxResults :: Prelude.Maybe Prelude.Int,+ -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The identifier of the event source for which events are returned. If not+ -- specified, all sources are included in the response.+ sourceName :: Prelude.Maybe Prelude.Text,+ -- | The event source to retrieve events for. If no value is specified, all+ -- events are returned.+ sourceType :: Prelude.Maybe SourceType,+ -- | The beginning of the time interval to retrieve events for, specified in+ -- ISO 8601 format. Example: 2017-03-30T07:03:49.555Z+ startTime :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEvents' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'duration', 'describeEvents_duration' - The number of minutes worth of events to retrieve.+--+-- 'endTime', 'describeEvents_endTime' - The end of the time interval for which to retrieve events, specified in+-- ISO 8601 format. Example: 2017-03-30T07:03:49.555Z+--+-- 'maxResults', 'describeEvents_maxResults' - The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'describeEvents_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'sourceName', 'describeEvents_sourceName' - The identifier of the event source for which events are returned. If not+-- specified, all sources are included in the response.+--+-- 'sourceType', 'describeEvents_sourceType' - The event source to retrieve events for. If no value is specified, all+-- events are returned.+--+-- 'startTime', 'describeEvents_startTime' - The beginning of the time interval to retrieve events for, specified in+-- ISO 8601 format. Example: 2017-03-30T07:03:49.555Z+newDescribeEvents ::+ DescribeEvents+newDescribeEvents =+ DescribeEvents'+ { duration = Prelude.Nothing,+ endTime = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ sourceName = Prelude.Nothing,+ sourceType = Prelude.Nothing,+ startTime = Prelude.Nothing+ }++-- | The number of minutes worth of events to retrieve.+describeEvents_duration :: Lens.Lens' DescribeEvents (Prelude.Maybe Prelude.Int)+describeEvents_duration = Lens.lens (\DescribeEvents' {duration} -> duration) (\s@DescribeEvents' {} a -> s {duration = a} :: DescribeEvents)++-- | The end of the time interval for which to retrieve events, specified in+-- ISO 8601 format. Example: 2017-03-30T07:03:49.555Z+describeEvents_endTime :: Lens.Lens' DescribeEvents (Prelude.Maybe Prelude.UTCTime)+describeEvents_endTime = Lens.lens (\DescribeEvents' {endTime} -> endTime) (\s@DescribeEvents' {} a -> s {endTime = a} :: DescribeEvents) Prelude.. Lens.mapping Data._Time++-- | The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+describeEvents_maxResults :: Lens.Lens' DescribeEvents (Prelude.Maybe Prelude.Int)+describeEvents_maxResults = Lens.lens (\DescribeEvents' {maxResults} -> maxResults) (\s@DescribeEvents' {} a -> s {maxResults = a} :: DescribeEvents)++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeEvents_nextToken :: Lens.Lens' DescribeEvents (Prelude.Maybe Prelude.Text)+describeEvents_nextToken = Lens.lens (\DescribeEvents' {nextToken} -> nextToken) (\s@DescribeEvents' {} a -> s {nextToken = a} :: DescribeEvents)++-- | The identifier of the event source for which events are returned. If not+-- specified, all sources are included in the response.+describeEvents_sourceName :: Lens.Lens' DescribeEvents (Prelude.Maybe Prelude.Text)+describeEvents_sourceName = Lens.lens (\DescribeEvents' {sourceName} -> sourceName) (\s@DescribeEvents' {} a -> s {sourceName = a} :: DescribeEvents)++-- | The event source to retrieve events for. If no value is specified, all+-- events are returned.+describeEvents_sourceType :: Lens.Lens' DescribeEvents (Prelude.Maybe SourceType)+describeEvents_sourceType = Lens.lens (\DescribeEvents' {sourceType} -> sourceType) (\s@DescribeEvents' {} a -> s {sourceType = a} :: DescribeEvents)++-- | The beginning of the time interval to retrieve events for, specified in+-- ISO 8601 format. Example: 2017-03-30T07:03:49.555Z+describeEvents_startTime :: Lens.Lens' DescribeEvents (Prelude.Maybe Prelude.UTCTime)+describeEvents_startTime = Lens.lens (\DescribeEvents' {startTime} -> startTime) (\s@DescribeEvents' {} a -> s {startTime = a} :: DescribeEvents) Prelude.. Lens.mapping Data._Time++instance Core.AWSPager DescribeEvents where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeEventsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeEventsResponse_events+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeEvents_nextToken+ Lens..~ rs+ Lens.^? describeEventsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeEvents where+ type+ AWSResponse DescribeEvents =+ DescribeEventsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeEventsResponse'+ Prelude.<$> (x Data..?> "Events" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeEvents where+ hashWithSalt _salt DescribeEvents' {..} =+ _salt+ `Prelude.hashWithSalt` duration+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` sourceName+ `Prelude.hashWithSalt` sourceType+ `Prelude.hashWithSalt` startTime++instance Prelude.NFData DescribeEvents where+ rnf DescribeEvents' {..} =+ Prelude.rnf duration+ `Prelude.seq` Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf sourceName+ `Prelude.seq` Prelude.rnf sourceType+ `Prelude.seq` Prelude.rnf startTime++instance Data.ToHeaders DescribeEvents where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DescribeEvents" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeEvents where+ toJSON DescribeEvents' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Duration" Data..=) Prelude.<$> duration,+ ("EndTime" Data..=) Prelude.<$> endTime,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("SourceName" Data..=) Prelude.<$> sourceName,+ ("SourceType" Data..=) Prelude.<$> sourceType,+ ("StartTime" Data..=) Prelude.<$> startTime+ ]+ )++instance Data.ToPath DescribeEvents where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeEvents where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeEventsResponse' smart constructor.+data DescribeEventsResponse = DescribeEventsResponse'+ { -- | A list of events. Each element in the list contains detailed information+ -- about one event.+ events :: Prelude.Maybe [Event],+ -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ 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 'DescribeEventsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'events', 'describeEventsResponse_events' - A list of events. Each element in the list contains detailed information+-- about one event.+--+-- 'nextToken', 'describeEventsResponse_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'httpStatus', 'describeEventsResponse_httpStatus' - The response's http status code.+newDescribeEventsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeEventsResponse+newDescribeEventsResponse pHttpStatus_ =+ DescribeEventsResponse'+ { events = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of events. Each element in the list contains detailed information+-- about one event.+describeEventsResponse_events :: Lens.Lens' DescribeEventsResponse (Prelude.Maybe [Event])+describeEventsResponse_events = Lens.lens (\DescribeEventsResponse' {events} -> events) (\s@DescribeEventsResponse' {} a -> s {events = a} :: DescribeEventsResponse) Prelude.. Lens.mapping Lens.coerced++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeEventsResponse_nextToken :: Lens.Lens' DescribeEventsResponse (Prelude.Maybe Prelude.Text)+describeEventsResponse_nextToken = Lens.lens (\DescribeEventsResponse' {nextToken} -> nextToken) (\s@DescribeEventsResponse' {} a -> s {nextToken = a} :: DescribeEventsResponse)++-- | The response's http status code.+describeEventsResponse_httpStatus :: Lens.Lens' DescribeEventsResponse Prelude.Int+describeEventsResponse_httpStatus = Lens.lens (\DescribeEventsResponse' {httpStatus} -> httpStatus) (\s@DescribeEventsResponse' {} a -> s {httpStatus = a} :: DescribeEventsResponse)++instance Prelude.NFData DescribeEventsResponse where+ rnf DescribeEventsResponse' {..} =+ Prelude.rnf events+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DescribeParameterGroups.hs view
@@ -0,0 +1,276 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.DescribeParameterGroups+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of parameter group descriptions. If a parameter group+-- name is specified, the list contains only the descriptions for that+-- group.+--+-- This operation returns paginated results.+module Amazonka.MemoryDb.DescribeParameterGroups+ ( -- * Creating a Request+ DescribeParameterGroups (..),+ newDescribeParameterGroups,++ -- * Request Lenses+ describeParameterGroups_maxResults,+ describeParameterGroups_nextToken,+ describeParameterGroups_parameterGroupName,++ -- * Destructuring the Response+ DescribeParameterGroupsResponse (..),+ newDescribeParameterGroupsResponse,++ -- * Response Lenses+ describeParameterGroupsResponse_nextToken,+ describeParameterGroupsResponse_parameterGroups,+ describeParameterGroupsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeParameterGroups' smart constructor.+data DescribeParameterGroups = DescribeParameterGroups'+ { -- | The maximum number of records to include in the response. If more+ -- records exist than the specified MaxResults value, a token is included+ -- in the response so that the remaining results can be retrieved.+ maxResults :: Prelude.Maybe Prelude.Int,+ -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of a specific parameter group to return details for.+ parameterGroupName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeParameterGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeParameterGroups_maxResults' - The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'describeParameterGroups_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'parameterGroupName', 'describeParameterGroups_parameterGroupName' - The name of a specific parameter group to return details for.+newDescribeParameterGroups ::+ DescribeParameterGroups+newDescribeParameterGroups =+ DescribeParameterGroups'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ parameterGroupName = Prelude.Nothing+ }++-- | The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+describeParameterGroups_maxResults :: Lens.Lens' DescribeParameterGroups (Prelude.Maybe Prelude.Int)+describeParameterGroups_maxResults = Lens.lens (\DescribeParameterGroups' {maxResults} -> maxResults) (\s@DescribeParameterGroups' {} a -> s {maxResults = a} :: DescribeParameterGroups)++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeParameterGroups_nextToken :: Lens.Lens' DescribeParameterGroups (Prelude.Maybe Prelude.Text)+describeParameterGroups_nextToken = Lens.lens (\DescribeParameterGroups' {nextToken} -> nextToken) (\s@DescribeParameterGroups' {} a -> s {nextToken = a} :: DescribeParameterGroups)++-- | The name of a specific parameter group to return details for.+describeParameterGroups_parameterGroupName :: Lens.Lens' DescribeParameterGroups (Prelude.Maybe Prelude.Text)+describeParameterGroups_parameterGroupName = Lens.lens (\DescribeParameterGroups' {parameterGroupName} -> parameterGroupName) (\s@DescribeParameterGroups' {} a -> s {parameterGroupName = a} :: DescribeParameterGroups)++instance Core.AWSPager DescribeParameterGroups where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeParameterGroupsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeParameterGroupsResponse_parameterGroups+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeParameterGroups_nextToken+ Lens..~ rs+ Lens.^? describeParameterGroupsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeParameterGroups where+ type+ AWSResponse DescribeParameterGroups =+ DescribeParameterGroupsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeParameterGroupsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "ParameterGroups"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeParameterGroups where+ hashWithSalt _salt DescribeParameterGroups' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` parameterGroupName++instance Prelude.NFData DescribeParameterGroups where+ rnf DescribeParameterGroups' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf parameterGroupName++instance Data.ToHeaders DescribeParameterGroups where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DescribeParameterGroups" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeParameterGroups where+ toJSON DescribeParameterGroups' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("ParameterGroupName" Data..=)+ Prelude.<$> parameterGroupName+ ]+ )++instance Data.ToPath DescribeParameterGroups where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeParameterGroups where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeParameterGroupsResponse' smart constructor.+data DescribeParameterGroupsResponse = DescribeParameterGroupsResponse'+ { -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of parameter groups. Each element in the list contains detailed+ -- information about one parameter group.+ parameterGroups :: Prelude.Maybe [ParameterGroup],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeParameterGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeParameterGroupsResponse_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'parameterGroups', 'describeParameterGroupsResponse_parameterGroups' - A list of parameter groups. Each element in the list contains detailed+-- information about one parameter group.+--+-- 'httpStatus', 'describeParameterGroupsResponse_httpStatus' - The response's http status code.+newDescribeParameterGroupsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeParameterGroupsResponse+newDescribeParameterGroupsResponse pHttpStatus_ =+ DescribeParameterGroupsResponse'+ { nextToken =+ Prelude.Nothing,+ parameterGroups = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeParameterGroupsResponse_nextToken :: Lens.Lens' DescribeParameterGroupsResponse (Prelude.Maybe Prelude.Text)+describeParameterGroupsResponse_nextToken = Lens.lens (\DescribeParameterGroupsResponse' {nextToken} -> nextToken) (\s@DescribeParameterGroupsResponse' {} a -> s {nextToken = a} :: DescribeParameterGroupsResponse)++-- | A list of parameter groups. Each element in the list contains detailed+-- information about one parameter group.+describeParameterGroupsResponse_parameterGroups :: Lens.Lens' DescribeParameterGroupsResponse (Prelude.Maybe [ParameterGroup])+describeParameterGroupsResponse_parameterGroups = Lens.lens (\DescribeParameterGroupsResponse' {parameterGroups} -> parameterGroups) (\s@DescribeParameterGroupsResponse' {} a -> s {parameterGroups = a} :: DescribeParameterGroupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeParameterGroupsResponse_httpStatus :: Lens.Lens' DescribeParameterGroupsResponse Prelude.Int+describeParameterGroupsResponse_httpStatus = Lens.lens (\DescribeParameterGroupsResponse' {httpStatus} -> httpStatus) (\s@DescribeParameterGroupsResponse' {} a -> s {httpStatus = a} :: DescribeParameterGroupsResponse)++instance+ Prelude.NFData+ DescribeParameterGroupsResponse+ where+ rnf DescribeParameterGroupsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf parameterGroups+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DescribeParameters.hs view
@@ -0,0 +1,269 @@+{-# 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.MemoryDb.DescribeParameters+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the detailed parameter list for a particular parameter group.+--+-- This operation returns paginated results.+module Amazonka.MemoryDb.DescribeParameters+ ( -- * Creating a Request+ DescribeParameters (..),+ newDescribeParameters,++ -- * Request Lenses+ describeParameters_maxResults,+ describeParameters_nextToken,+ describeParameters_parameterGroupName,++ -- * Destructuring the Response+ DescribeParametersResponse (..),+ newDescribeParametersResponse,++ -- * Response Lenses+ describeParametersResponse_nextToken,+ describeParametersResponse_parameters,+ describeParametersResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeParameters' smart constructor.+data DescribeParameters = DescribeParameters'+ { -- | The maximum number of records to include in the response. If more+ -- records exist than the specified MaxResults value, a token is included+ -- in the response so that the remaining results can be retrieved.+ maxResults :: Prelude.Maybe Prelude.Int,+ -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | he name of a specific parameter group to return details for.+ parameterGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeParameters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeParameters_maxResults' - The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'describeParameters_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'parameterGroupName', 'describeParameters_parameterGroupName' - he name of a specific parameter group to return details for.+newDescribeParameters ::+ -- | 'parameterGroupName'+ Prelude.Text ->+ DescribeParameters+newDescribeParameters pParameterGroupName_ =+ DescribeParameters'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ parameterGroupName = pParameterGroupName_+ }++-- | The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+describeParameters_maxResults :: Lens.Lens' DescribeParameters (Prelude.Maybe Prelude.Int)+describeParameters_maxResults = Lens.lens (\DescribeParameters' {maxResults} -> maxResults) (\s@DescribeParameters' {} a -> s {maxResults = a} :: DescribeParameters)++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeParameters_nextToken :: Lens.Lens' DescribeParameters (Prelude.Maybe Prelude.Text)+describeParameters_nextToken = Lens.lens (\DescribeParameters' {nextToken} -> nextToken) (\s@DescribeParameters' {} a -> s {nextToken = a} :: DescribeParameters)++-- | he name of a specific parameter group to return details for.+describeParameters_parameterGroupName :: Lens.Lens' DescribeParameters Prelude.Text+describeParameters_parameterGroupName = Lens.lens (\DescribeParameters' {parameterGroupName} -> parameterGroupName) (\s@DescribeParameters' {} a -> s {parameterGroupName = a} :: DescribeParameters)++instance Core.AWSPager DescribeParameters where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeParametersResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeParametersResponse_parameters+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeParameters_nextToken+ Lens..~ rs+ Lens.^? describeParametersResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeParameters where+ type+ AWSResponse DescribeParameters =+ DescribeParametersResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeParametersResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "Parameters" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeParameters where+ hashWithSalt _salt DescribeParameters' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` parameterGroupName++instance Prelude.NFData DescribeParameters where+ rnf DescribeParameters' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf parameterGroupName++instance Data.ToHeaders DescribeParameters where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DescribeParameters" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeParameters where+ toJSON DescribeParameters' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just+ ("ParameterGroupName" Data..= parameterGroupName)+ ]+ )++instance Data.ToPath DescribeParameters where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeParameters where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeParametersResponse' smart constructor.+data DescribeParametersResponse = DescribeParametersResponse'+ { -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of parameters specific to a particular parameter group. Each+ -- element in the list contains detailed information about one parameter.+ parameters :: Prelude.Maybe [Parameter],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeParametersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeParametersResponse_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'parameters', 'describeParametersResponse_parameters' - A list of parameters specific to a particular parameter group. Each+-- element in the list contains detailed information about one parameter.+--+-- 'httpStatus', 'describeParametersResponse_httpStatus' - The response's http status code.+newDescribeParametersResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeParametersResponse+newDescribeParametersResponse pHttpStatus_ =+ DescribeParametersResponse'+ { nextToken =+ Prelude.Nothing,+ parameters = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeParametersResponse_nextToken :: Lens.Lens' DescribeParametersResponse (Prelude.Maybe Prelude.Text)+describeParametersResponse_nextToken = Lens.lens (\DescribeParametersResponse' {nextToken} -> nextToken) (\s@DescribeParametersResponse' {} a -> s {nextToken = a} :: DescribeParametersResponse)++-- | A list of parameters specific to a particular parameter group. Each+-- element in the list contains detailed information about one parameter.+describeParametersResponse_parameters :: Lens.Lens' DescribeParametersResponse (Prelude.Maybe [Parameter])+describeParametersResponse_parameters = Lens.lens (\DescribeParametersResponse' {parameters} -> parameters) (\s@DescribeParametersResponse' {} a -> s {parameters = a} :: DescribeParametersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeParametersResponse_httpStatus :: Lens.Lens' DescribeParametersResponse Prelude.Int+describeParametersResponse_httpStatus = Lens.lens (\DescribeParametersResponse' {httpStatus} -> httpStatus) (\s@DescribeParametersResponse' {} a -> s {httpStatus = a} :: DescribeParametersResponse)++instance Prelude.NFData DescribeParametersResponse where+ rnf DescribeParametersResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf parameters+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DescribeReservedNodes.hs view
@@ -0,0 +1,335 @@+{-# 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.MemoryDb.DescribeReservedNodes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about reserved nodes for this account, or about a+-- specified reserved node.+--+-- This operation returns paginated results.+module Amazonka.MemoryDb.DescribeReservedNodes+ ( -- * Creating a Request+ DescribeReservedNodes (..),+ newDescribeReservedNodes,++ -- * Request Lenses+ describeReservedNodes_duration,+ describeReservedNodes_maxResults,+ describeReservedNodes_nextToken,+ describeReservedNodes_nodeType,+ describeReservedNodes_offeringType,+ describeReservedNodes_reservationId,+ describeReservedNodes_reservedNodesOfferingId,++ -- * Destructuring the Response+ DescribeReservedNodesResponse (..),+ newDescribeReservedNodesResponse,++ -- * Response Lenses+ describeReservedNodesResponse_nextToken,+ describeReservedNodesResponse_reservedNodes,+ describeReservedNodesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeReservedNodes' smart constructor.+data DescribeReservedNodes = DescribeReservedNodes'+ { -- | The duration filter value, specified in years or seconds. Use this+ -- parameter to show only reservations for this duration.+ duration :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of records to include in the response. If more+ -- records exist than the specified MaxRecords value, a marker is included+ -- in the response so that the remaining results can be retrieved.+ maxResults :: Prelude.Maybe Prelude.Int,+ -- | An optional marker returned from a prior request. Use this marker for+ -- pagination of results from this operation. If this parameter is+ -- specified, the response includes only records beyond the marker, up to+ -- the value specified by MaxRecords.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The node type filter value. Use this parameter to show only those+ -- reservations matching the specified node type. For more information, see+ -- <https://docs.aws.amazon.com/memorydb/latest/devguide/nodes.reserved.html#reserved-nodes-supported Supported node types>.+ nodeType :: Prelude.Maybe Prelude.Text,+ -- | The offering type filter value. Use this parameter to show only the+ -- available offerings matching the specified offering type. Valid values:+ -- \"All Upfront\"|\"Partial Upfront\"| \"No Upfront\"+ offeringType :: Prelude.Maybe Prelude.Text,+ -- | The reserved node identifier filter value. Use this parameter to show+ -- only the reservation that matches the specified reservation ID.+ reservationId :: Prelude.Maybe Prelude.Text,+ -- | The offering identifier filter value. Use this parameter to show only+ -- purchased reservations matching the specified offering identifier.+ reservedNodesOfferingId :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeReservedNodes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'duration', 'describeReservedNodes_duration' - The duration filter value, specified in years or seconds. Use this+-- parameter to show only reservations for this duration.+--+-- 'maxResults', 'describeReservedNodes_maxResults' - The maximum number of records to include in the response. If more+-- records exist than the specified MaxRecords value, a marker is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'describeReservedNodes_nextToken' - An optional marker returned from a prior request. Use this marker for+-- pagination of results from this operation. If this parameter is+-- specified, the response includes only records beyond the marker, up to+-- the value specified by MaxRecords.+--+-- 'nodeType', 'describeReservedNodes_nodeType' - The node type filter value. Use this parameter to show only those+-- reservations matching the specified node type. For more information, see+-- <https://docs.aws.amazon.com/memorydb/latest/devguide/nodes.reserved.html#reserved-nodes-supported Supported node types>.+--+-- 'offeringType', 'describeReservedNodes_offeringType' - The offering type filter value. Use this parameter to show only the+-- available offerings matching the specified offering type. Valid values:+-- \"All Upfront\"|\"Partial Upfront\"| \"No Upfront\"+--+-- 'reservationId', 'describeReservedNodes_reservationId' - The reserved node identifier filter value. Use this parameter to show+-- only the reservation that matches the specified reservation ID.+--+-- 'reservedNodesOfferingId', 'describeReservedNodes_reservedNodesOfferingId' - The offering identifier filter value. Use this parameter to show only+-- purchased reservations matching the specified offering identifier.+newDescribeReservedNodes ::+ DescribeReservedNodes+newDescribeReservedNodes =+ DescribeReservedNodes'+ { duration = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ nodeType = Prelude.Nothing,+ offeringType = Prelude.Nothing,+ reservationId = Prelude.Nothing,+ reservedNodesOfferingId = Prelude.Nothing+ }++-- | The duration filter value, specified in years or seconds. Use this+-- parameter to show only reservations for this duration.+describeReservedNodes_duration :: Lens.Lens' DescribeReservedNodes (Prelude.Maybe Prelude.Text)+describeReservedNodes_duration = Lens.lens (\DescribeReservedNodes' {duration} -> duration) (\s@DescribeReservedNodes' {} a -> s {duration = a} :: DescribeReservedNodes)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified MaxRecords value, a marker is included+-- in the response so that the remaining results can be retrieved.+describeReservedNodes_maxResults :: Lens.Lens' DescribeReservedNodes (Prelude.Maybe Prelude.Int)+describeReservedNodes_maxResults = Lens.lens (\DescribeReservedNodes' {maxResults} -> maxResults) (\s@DescribeReservedNodes' {} a -> s {maxResults = a} :: DescribeReservedNodes)++-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this operation. If this parameter is+-- specified, the response includes only records beyond the marker, up to+-- the value specified by MaxRecords.+describeReservedNodes_nextToken :: Lens.Lens' DescribeReservedNodes (Prelude.Maybe Prelude.Text)+describeReservedNodes_nextToken = Lens.lens (\DescribeReservedNodes' {nextToken} -> nextToken) (\s@DescribeReservedNodes' {} a -> s {nextToken = a} :: DescribeReservedNodes)++-- | The node type filter value. Use this parameter to show only those+-- reservations matching the specified node type. For more information, see+-- <https://docs.aws.amazon.com/memorydb/latest/devguide/nodes.reserved.html#reserved-nodes-supported Supported node types>.+describeReservedNodes_nodeType :: Lens.Lens' DescribeReservedNodes (Prelude.Maybe Prelude.Text)+describeReservedNodes_nodeType = Lens.lens (\DescribeReservedNodes' {nodeType} -> nodeType) (\s@DescribeReservedNodes' {} a -> s {nodeType = a} :: DescribeReservedNodes)++-- | The offering type filter value. Use this parameter to show only the+-- available offerings matching the specified offering type. Valid values:+-- \"All Upfront\"|\"Partial Upfront\"| \"No Upfront\"+describeReservedNodes_offeringType :: Lens.Lens' DescribeReservedNodes (Prelude.Maybe Prelude.Text)+describeReservedNodes_offeringType = Lens.lens (\DescribeReservedNodes' {offeringType} -> offeringType) (\s@DescribeReservedNodes' {} a -> s {offeringType = a} :: DescribeReservedNodes)++-- | The reserved node identifier filter value. Use this parameter to show+-- only the reservation that matches the specified reservation ID.+describeReservedNodes_reservationId :: Lens.Lens' DescribeReservedNodes (Prelude.Maybe Prelude.Text)+describeReservedNodes_reservationId = Lens.lens (\DescribeReservedNodes' {reservationId} -> reservationId) (\s@DescribeReservedNodes' {} a -> s {reservationId = a} :: DescribeReservedNodes)++-- | The offering identifier filter value. Use this parameter to show only+-- purchased reservations matching the specified offering identifier.+describeReservedNodes_reservedNodesOfferingId :: Lens.Lens' DescribeReservedNodes (Prelude.Maybe Prelude.Text)+describeReservedNodes_reservedNodesOfferingId = Lens.lens (\DescribeReservedNodes' {reservedNodesOfferingId} -> reservedNodesOfferingId) (\s@DescribeReservedNodes' {} a -> s {reservedNodesOfferingId = a} :: DescribeReservedNodes)++instance Core.AWSPager DescribeReservedNodes where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeReservedNodesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeReservedNodesResponse_reservedNodes+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeReservedNodes_nextToken+ Lens..~ rs+ Lens.^? describeReservedNodesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeReservedNodes where+ type+ AWSResponse DescribeReservedNodes =+ DescribeReservedNodesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeReservedNodesResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "ReservedNodes" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeReservedNodes where+ hashWithSalt _salt DescribeReservedNodes' {..} =+ _salt+ `Prelude.hashWithSalt` duration+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` nodeType+ `Prelude.hashWithSalt` offeringType+ `Prelude.hashWithSalt` reservationId+ `Prelude.hashWithSalt` reservedNodesOfferingId++instance Prelude.NFData DescribeReservedNodes where+ rnf DescribeReservedNodes' {..} =+ Prelude.rnf duration+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf nodeType+ `Prelude.seq` Prelude.rnf offeringType+ `Prelude.seq` Prelude.rnf reservationId+ `Prelude.seq` Prelude.rnf reservedNodesOfferingId++instance Data.ToHeaders DescribeReservedNodes where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DescribeReservedNodes" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeReservedNodes where+ toJSON DescribeReservedNodes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Duration" Data..=) Prelude.<$> duration,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("NodeType" Data..=) Prelude.<$> nodeType,+ ("OfferingType" Data..=) Prelude.<$> offeringType,+ ("ReservationId" Data..=) Prelude.<$> reservationId,+ ("ReservedNodesOfferingId" Data..=)+ Prelude.<$> reservedNodesOfferingId+ ]+ )++instance Data.ToPath DescribeReservedNodes where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeReservedNodes where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeReservedNodesResponse' smart constructor.+data DescribeReservedNodesResponse = DescribeReservedNodesResponse'+ { -- | An optional marker returned from a prior request. Use this marker for+ -- pagination of results from this operation. If this parameter is+ -- specified, the response includes only records beyond the marker, up to+ -- the value specified by MaxRecords.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Returns information about reserved nodes for this account, or about a+ -- specified reserved node.+ reservedNodes :: Prelude.Maybe [ReservedNode],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeReservedNodesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeReservedNodesResponse_nextToken' - An optional marker returned from a prior request. Use this marker for+-- pagination of results from this operation. If this parameter is+-- specified, the response includes only records beyond the marker, up to+-- the value specified by MaxRecords.+--+-- 'reservedNodes', 'describeReservedNodesResponse_reservedNodes' - Returns information about reserved nodes for this account, or about a+-- specified reserved node.+--+-- 'httpStatus', 'describeReservedNodesResponse_httpStatus' - The response's http status code.+newDescribeReservedNodesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeReservedNodesResponse+newDescribeReservedNodesResponse pHttpStatus_ =+ DescribeReservedNodesResponse'+ { nextToken =+ Prelude.Nothing,+ reservedNodes = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this operation. If this parameter is+-- specified, the response includes only records beyond the marker, up to+-- the value specified by MaxRecords.+describeReservedNodesResponse_nextToken :: Lens.Lens' DescribeReservedNodesResponse (Prelude.Maybe Prelude.Text)+describeReservedNodesResponse_nextToken = Lens.lens (\DescribeReservedNodesResponse' {nextToken} -> nextToken) (\s@DescribeReservedNodesResponse' {} a -> s {nextToken = a} :: DescribeReservedNodesResponse)++-- | Returns information about reserved nodes for this account, or about a+-- specified reserved node.+describeReservedNodesResponse_reservedNodes :: Lens.Lens' DescribeReservedNodesResponse (Prelude.Maybe [ReservedNode])+describeReservedNodesResponse_reservedNodes = Lens.lens (\DescribeReservedNodesResponse' {reservedNodes} -> reservedNodes) (\s@DescribeReservedNodesResponse' {} a -> s {reservedNodes = a} :: DescribeReservedNodesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeReservedNodesResponse_httpStatus :: Lens.Lens' DescribeReservedNodesResponse Prelude.Int+describeReservedNodesResponse_httpStatus = Lens.lens (\DescribeReservedNodesResponse' {httpStatus} -> httpStatus) (\s@DescribeReservedNodesResponse' {} a -> s {httpStatus = a} :: DescribeReservedNodesResponse)++instance Prelude.NFData DescribeReservedNodesResponse where+ rnf DescribeReservedNodesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf reservedNodes+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DescribeReservedNodesOfferings.hs view
@@ -0,0 +1,338 @@+{-# 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.MemoryDb.DescribeReservedNodesOfferings+-- 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 available reserved node offerings.+--+-- This operation returns paginated results.+module Amazonka.MemoryDb.DescribeReservedNodesOfferings+ ( -- * Creating a Request+ DescribeReservedNodesOfferings (..),+ newDescribeReservedNodesOfferings,++ -- * Request Lenses+ describeReservedNodesOfferings_duration,+ describeReservedNodesOfferings_maxResults,+ describeReservedNodesOfferings_nextToken,+ describeReservedNodesOfferings_nodeType,+ describeReservedNodesOfferings_offeringType,+ describeReservedNodesOfferings_reservedNodesOfferingId,++ -- * Destructuring the Response+ DescribeReservedNodesOfferingsResponse (..),+ newDescribeReservedNodesOfferingsResponse,++ -- * Response Lenses+ describeReservedNodesOfferingsResponse_nextToken,+ describeReservedNodesOfferingsResponse_reservedNodesOfferings,+ describeReservedNodesOfferingsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeReservedNodesOfferings' smart constructor.+data DescribeReservedNodesOfferings = DescribeReservedNodesOfferings'+ { -- | Duration filter value, specified in years or seconds. Use this parameter+ -- to show only reservations for a given duration.+ duration :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of records to include in the response. If more+ -- records exist than the specified MaxRecords value, a marker is included+ -- in the response so that the remaining results can be retrieved.+ maxResults :: Prelude.Maybe Prelude.Int,+ -- | An optional marker returned from a prior request. Use this marker for+ -- pagination of results from this operation. If this parameter is+ -- specified, the response includes only records beyond the marker, up to+ -- the value specified by MaxRecords.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The node type for the reserved nodes. For more information, see+ -- <https://docs.aws.amazon.com/memorydb/latest/devguide/nodes.reserved.html#reserved-nodes-supported Supported node types>.+ nodeType :: Prelude.Maybe Prelude.Text,+ -- | The offering type filter value. Use this parameter to show only the+ -- available offerings matching the specified offering type. Valid values:+ -- \"All Upfront\"|\"Partial Upfront\"| \"No Upfront\"+ offeringType :: Prelude.Maybe Prelude.Text,+ -- | The offering identifier filter value. Use this parameter to show only+ -- the available offering that matches the specified reservation+ -- identifier.+ reservedNodesOfferingId :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeReservedNodesOfferings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'duration', 'describeReservedNodesOfferings_duration' - Duration filter value, specified in years or seconds. Use this parameter+-- to show only reservations for a given duration.+--+-- 'maxResults', 'describeReservedNodesOfferings_maxResults' - The maximum number of records to include in the response. If more+-- records exist than the specified MaxRecords value, a marker is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'describeReservedNodesOfferings_nextToken' - An optional marker returned from a prior request. Use this marker for+-- pagination of results from this operation. If this parameter is+-- specified, the response includes only records beyond the marker, up to+-- the value specified by MaxRecords.+--+-- 'nodeType', 'describeReservedNodesOfferings_nodeType' - The node type for the reserved nodes. For more information, see+-- <https://docs.aws.amazon.com/memorydb/latest/devguide/nodes.reserved.html#reserved-nodes-supported Supported node types>.+--+-- 'offeringType', 'describeReservedNodesOfferings_offeringType' - The offering type filter value. Use this parameter to show only the+-- available offerings matching the specified offering type. Valid values:+-- \"All Upfront\"|\"Partial Upfront\"| \"No Upfront\"+--+-- 'reservedNodesOfferingId', 'describeReservedNodesOfferings_reservedNodesOfferingId' - The offering identifier filter value. Use this parameter to show only+-- the available offering that matches the specified reservation+-- identifier.+newDescribeReservedNodesOfferings ::+ DescribeReservedNodesOfferings+newDescribeReservedNodesOfferings =+ DescribeReservedNodesOfferings'+ { duration =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ nodeType = Prelude.Nothing,+ offeringType = Prelude.Nothing,+ reservedNodesOfferingId = Prelude.Nothing+ }++-- | Duration filter value, specified in years or seconds. Use this parameter+-- to show only reservations for a given duration.+describeReservedNodesOfferings_duration :: Lens.Lens' DescribeReservedNodesOfferings (Prelude.Maybe Prelude.Text)+describeReservedNodesOfferings_duration = Lens.lens (\DescribeReservedNodesOfferings' {duration} -> duration) (\s@DescribeReservedNodesOfferings' {} a -> s {duration = a} :: DescribeReservedNodesOfferings)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified MaxRecords value, a marker is included+-- in the response so that the remaining results can be retrieved.+describeReservedNodesOfferings_maxResults :: Lens.Lens' DescribeReservedNodesOfferings (Prelude.Maybe Prelude.Int)+describeReservedNodesOfferings_maxResults = Lens.lens (\DescribeReservedNodesOfferings' {maxResults} -> maxResults) (\s@DescribeReservedNodesOfferings' {} a -> s {maxResults = a} :: DescribeReservedNodesOfferings)++-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this operation. If this parameter is+-- specified, the response includes only records beyond the marker, up to+-- the value specified by MaxRecords.+describeReservedNodesOfferings_nextToken :: Lens.Lens' DescribeReservedNodesOfferings (Prelude.Maybe Prelude.Text)+describeReservedNodesOfferings_nextToken = Lens.lens (\DescribeReservedNodesOfferings' {nextToken} -> nextToken) (\s@DescribeReservedNodesOfferings' {} a -> s {nextToken = a} :: DescribeReservedNodesOfferings)++-- | The node type for the reserved nodes. For more information, see+-- <https://docs.aws.amazon.com/memorydb/latest/devguide/nodes.reserved.html#reserved-nodes-supported Supported node types>.+describeReservedNodesOfferings_nodeType :: Lens.Lens' DescribeReservedNodesOfferings (Prelude.Maybe Prelude.Text)+describeReservedNodesOfferings_nodeType = Lens.lens (\DescribeReservedNodesOfferings' {nodeType} -> nodeType) (\s@DescribeReservedNodesOfferings' {} a -> s {nodeType = a} :: DescribeReservedNodesOfferings)++-- | The offering type filter value. Use this parameter to show only the+-- available offerings matching the specified offering type. Valid values:+-- \"All Upfront\"|\"Partial Upfront\"| \"No Upfront\"+describeReservedNodesOfferings_offeringType :: Lens.Lens' DescribeReservedNodesOfferings (Prelude.Maybe Prelude.Text)+describeReservedNodesOfferings_offeringType = Lens.lens (\DescribeReservedNodesOfferings' {offeringType} -> offeringType) (\s@DescribeReservedNodesOfferings' {} a -> s {offeringType = a} :: DescribeReservedNodesOfferings)++-- | The offering identifier filter value. Use this parameter to show only+-- the available offering that matches the specified reservation+-- identifier.+describeReservedNodesOfferings_reservedNodesOfferingId :: Lens.Lens' DescribeReservedNodesOfferings (Prelude.Maybe Prelude.Text)+describeReservedNodesOfferings_reservedNodesOfferingId = Lens.lens (\DescribeReservedNodesOfferings' {reservedNodesOfferingId} -> reservedNodesOfferingId) (\s@DescribeReservedNodesOfferings' {} a -> s {reservedNodesOfferingId = a} :: DescribeReservedNodesOfferings)++instance Core.AWSPager DescribeReservedNodesOfferings where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeReservedNodesOfferingsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeReservedNodesOfferingsResponse_reservedNodesOfferings+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeReservedNodesOfferings_nextToken+ Lens..~ rs+ Lens.^? describeReservedNodesOfferingsResponse_nextToken+ Prelude.. Lens._Just++instance+ Core.AWSRequest+ DescribeReservedNodesOfferings+ where+ type+ AWSResponse DescribeReservedNodesOfferings =+ DescribeReservedNodesOfferingsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeReservedNodesOfferingsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "ReservedNodesOfferings"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DescribeReservedNodesOfferings+ where+ hashWithSalt+ _salt+ DescribeReservedNodesOfferings' {..} =+ _salt+ `Prelude.hashWithSalt` duration+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` nodeType+ `Prelude.hashWithSalt` offeringType+ `Prelude.hashWithSalt` reservedNodesOfferingId++instance+ Prelude.NFData+ DescribeReservedNodesOfferings+ where+ rnf DescribeReservedNodesOfferings' {..} =+ Prelude.rnf duration+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf nodeType+ `Prelude.seq` Prelude.rnf offeringType+ `Prelude.seq` Prelude.rnf reservedNodesOfferingId++instance+ Data.ToHeaders+ DescribeReservedNodesOfferings+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DescribeReservedNodesOfferings" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeReservedNodesOfferings where+ toJSON DescribeReservedNodesOfferings' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Duration" Data..=) Prelude.<$> duration,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("NodeType" Data..=) Prelude.<$> nodeType,+ ("OfferingType" Data..=) Prelude.<$> offeringType,+ ("ReservedNodesOfferingId" Data..=)+ Prelude.<$> reservedNodesOfferingId+ ]+ )++instance Data.ToPath DescribeReservedNodesOfferings where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeReservedNodesOfferings where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeReservedNodesOfferingsResponse' smart constructor.+data DescribeReservedNodesOfferingsResponse = DescribeReservedNodesOfferingsResponse'+ { -- | An optional marker returned from a prior request. Use this marker for+ -- pagination of results from this operation. If this parameter is+ -- specified, the response includes only records beyond the marker, up to+ -- the value specified by MaxRecords.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Lists available reserved node offerings.+ reservedNodesOfferings :: Prelude.Maybe [ReservedNodesOffering],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeReservedNodesOfferingsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeReservedNodesOfferingsResponse_nextToken' - An optional marker returned from a prior request. Use this marker for+-- pagination of results from this operation. If this parameter is+-- specified, the response includes only records beyond the marker, up to+-- the value specified by MaxRecords.+--+-- 'reservedNodesOfferings', 'describeReservedNodesOfferingsResponse_reservedNodesOfferings' - Lists available reserved node offerings.+--+-- 'httpStatus', 'describeReservedNodesOfferingsResponse_httpStatus' - The response's http status code.+newDescribeReservedNodesOfferingsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeReservedNodesOfferingsResponse+newDescribeReservedNodesOfferingsResponse+ pHttpStatus_ =+ DescribeReservedNodesOfferingsResponse'+ { nextToken =+ Prelude.Nothing,+ reservedNodesOfferings =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An optional marker returned from a prior request. Use this marker for+-- pagination of results from this operation. If this parameter is+-- specified, the response includes only records beyond the marker, up to+-- the value specified by MaxRecords.+describeReservedNodesOfferingsResponse_nextToken :: Lens.Lens' DescribeReservedNodesOfferingsResponse (Prelude.Maybe Prelude.Text)+describeReservedNodesOfferingsResponse_nextToken = Lens.lens (\DescribeReservedNodesOfferingsResponse' {nextToken} -> nextToken) (\s@DescribeReservedNodesOfferingsResponse' {} a -> s {nextToken = a} :: DescribeReservedNodesOfferingsResponse)++-- | Lists available reserved node offerings.+describeReservedNodesOfferingsResponse_reservedNodesOfferings :: Lens.Lens' DescribeReservedNodesOfferingsResponse (Prelude.Maybe [ReservedNodesOffering])+describeReservedNodesOfferingsResponse_reservedNodesOfferings = Lens.lens (\DescribeReservedNodesOfferingsResponse' {reservedNodesOfferings} -> reservedNodesOfferings) (\s@DescribeReservedNodesOfferingsResponse' {} a -> s {reservedNodesOfferings = a} :: DescribeReservedNodesOfferingsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeReservedNodesOfferingsResponse_httpStatus :: Lens.Lens' DescribeReservedNodesOfferingsResponse Prelude.Int+describeReservedNodesOfferingsResponse_httpStatus = Lens.lens (\DescribeReservedNodesOfferingsResponse' {httpStatus} -> httpStatus) (\s@DescribeReservedNodesOfferingsResponse' {} a -> s {httpStatus = a} :: DescribeReservedNodesOfferingsResponse)++instance+ Prelude.NFData+ DescribeReservedNodesOfferingsResponse+ where+ rnf DescribeReservedNodesOfferingsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf reservedNodesOfferings+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DescribeServiceUpdates.hs view
@@ -0,0 +1,294 @@+{-# 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.MemoryDb.DescribeServiceUpdates+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns details of the service updates+--+-- This operation returns paginated results.+module Amazonka.MemoryDb.DescribeServiceUpdates+ ( -- * Creating a Request+ DescribeServiceUpdates (..),+ newDescribeServiceUpdates,++ -- * Request Lenses+ describeServiceUpdates_clusterNames,+ describeServiceUpdates_maxResults,+ describeServiceUpdates_nextToken,+ describeServiceUpdates_serviceUpdateName,+ describeServiceUpdates_status,++ -- * Destructuring the Response+ DescribeServiceUpdatesResponse (..),+ newDescribeServiceUpdatesResponse,++ -- * Response Lenses+ describeServiceUpdatesResponse_nextToken,+ describeServiceUpdatesResponse_serviceUpdates,+ describeServiceUpdatesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeServiceUpdates' smart constructor.+data DescribeServiceUpdates = DescribeServiceUpdates'+ { -- | The list of cluster names to identify service updates to apply+ clusterNames :: Prelude.Maybe [Prelude.Text],+ -- | The maximum number of records to include in the response. If more+ -- records exist than the specified MaxResults value, a token is included+ -- in the response so that the remaining results can be retrieved.+ maxResults :: Prelude.Maybe Prelude.Int,+ -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The unique ID of the service update to describe.+ serviceUpdateName :: Prelude.Maybe Prelude.Text,+ -- | The status(es) of the service updates to filter on+ status :: Prelude.Maybe [ServiceUpdateStatus]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeServiceUpdates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterNames', 'describeServiceUpdates_clusterNames' - The list of cluster names to identify service updates to apply+--+-- 'maxResults', 'describeServiceUpdates_maxResults' - The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'describeServiceUpdates_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'serviceUpdateName', 'describeServiceUpdates_serviceUpdateName' - The unique ID of the service update to describe.+--+-- 'status', 'describeServiceUpdates_status' - The status(es) of the service updates to filter on+newDescribeServiceUpdates ::+ DescribeServiceUpdates+newDescribeServiceUpdates =+ DescribeServiceUpdates'+ { clusterNames =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ serviceUpdateName = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The list of cluster names to identify service updates to apply+describeServiceUpdates_clusterNames :: Lens.Lens' DescribeServiceUpdates (Prelude.Maybe [Prelude.Text])+describeServiceUpdates_clusterNames = Lens.lens (\DescribeServiceUpdates' {clusterNames} -> clusterNames) (\s@DescribeServiceUpdates' {} a -> s {clusterNames = a} :: DescribeServiceUpdates) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+describeServiceUpdates_maxResults :: Lens.Lens' DescribeServiceUpdates (Prelude.Maybe Prelude.Int)+describeServiceUpdates_maxResults = Lens.lens (\DescribeServiceUpdates' {maxResults} -> maxResults) (\s@DescribeServiceUpdates' {} a -> s {maxResults = a} :: DescribeServiceUpdates)++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeServiceUpdates_nextToken :: Lens.Lens' DescribeServiceUpdates (Prelude.Maybe Prelude.Text)+describeServiceUpdates_nextToken = Lens.lens (\DescribeServiceUpdates' {nextToken} -> nextToken) (\s@DescribeServiceUpdates' {} a -> s {nextToken = a} :: DescribeServiceUpdates)++-- | The unique ID of the service update to describe.+describeServiceUpdates_serviceUpdateName :: Lens.Lens' DescribeServiceUpdates (Prelude.Maybe Prelude.Text)+describeServiceUpdates_serviceUpdateName = Lens.lens (\DescribeServiceUpdates' {serviceUpdateName} -> serviceUpdateName) (\s@DescribeServiceUpdates' {} a -> s {serviceUpdateName = a} :: DescribeServiceUpdates)++-- | The status(es) of the service updates to filter on+describeServiceUpdates_status :: Lens.Lens' DescribeServiceUpdates (Prelude.Maybe [ServiceUpdateStatus])+describeServiceUpdates_status = Lens.lens (\DescribeServiceUpdates' {status} -> status) (\s@DescribeServiceUpdates' {} a -> s {status = a} :: DescribeServiceUpdates) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSPager DescribeServiceUpdates where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeServiceUpdatesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeServiceUpdatesResponse_serviceUpdates+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeServiceUpdates_nextToken+ Lens..~ rs+ Lens.^? describeServiceUpdatesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeServiceUpdates where+ type+ AWSResponse DescribeServiceUpdates =+ DescribeServiceUpdatesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeServiceUpdatesResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "ServiceUpdates" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeServiceUpdates where+ hashWithSalt _salt DescribeServiceUpdates' {..} =+ _salt+ `Prelude.hashWithSalt` clusterNames+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` serviceUpdateName+ `Prelude.hashWithSalt` status++instance Prelude.NFData DescribeServiceUpdates where+ rnf DescribeServiceUpdates' {..} =+ Prelude.rnf clusterNames+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf serviceUpdateName+ `Prelude.seq` Prelude.rnf status++instance Data.ToHeaders DescribeServiceUpdates where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DescribeServiceUpdates" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeServiceUpdates where+ toJSON DescribeServiceUpdates' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClusterNames" Data..=) Prelude.<$> clusterNames,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("ServiceUpdateName" Data..=)+ Prelude.<$> serviceUpdateName,+ ("Status" Data..=) Prelude.<$> status+ ]+ )++instance Data.ToPath DescribeServiceUpdates where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeServiceUpdates where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeServiceUpdatesResponse' smart constructor.+data DescribeServiceUpdatesResponse = DescribeServiceUpdatesResponse'+ { -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of service updates+ serviceUpdates :: Prelude.Maybe [ServiceUpdate],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeServiceUpdatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeServiceUpdatesResponse_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'serviceUpdates', 'describeServiceUpdatesResponse_serviceUpdates' - A list of service updates+--+-- 'httpStatus', 'describeServiceUpdatesResponse_httpStatus' - The response's http status code.+newDescribeServiceUpdatesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeServiceUpdatesResponse+newDescribeServiceUpdatesResponse pHttpStatus_ =+ DescribeServiceUpdatesResponse'+ { nextToken =+ Prelude.Nothing,+ serviceUpdates = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeServiceUpdatesResponse_nextToken :: Lens.Lens' DescribeServiceUpdatesResponse (Prelude.Maybe Prelude.Text)+describeServiceUpdatesResponse_nextToken = Lens.lens (\DescribeServiceUpdatesResponse' {nextToken} -> nextToken) (\s@DescribeServiceUpdatesResponse' {} a -> s {nextToken = a} :: DescribeServiceUpdatesResponse)++-- | A list of service updates+describeServiceUpdatesResponse_serviceUpdates :: Lens.Lens' DescribeServiceUpdatesResponse (Prelude.Maybe [ServiceUpdate])+describeServiceUpdatesResponse_serviceUpdates = Lens.lens (\DescribeServiceUpdatesResponse' {serviceUpdates} -> serviceUpdates) (\s@DescribeServiceUpdatesResponse' {} a -> s {serviceUpdates = a} :: DescribeServiceUpdatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeServiceUpdatesResponse_httpStatus :: Lens.Lens' DescribeServiceUpdatesResponse Prelude.Int+describeServiceUpdatesResponse_httpStatus = Lens.lens (\DescribeServiceUpdatesResponse' {httpStatus} -> httpStatus) (\s@DescribeServiceUpdatesResponse' {} a -> s {httpStatus = a} :: DescribeServiceUpdatesResponse)++instance+ Prelude.NFData+ DescribeServiceUpdatesResponse+ where+ rnf DescribeServiceUpdatesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf serviceUpdates+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DescribeSnapshots.hs view
@@ -0,0 +1,326 @@+{-# 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.MemoryDb.DescribeSnapshots+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about cluster snapshots. By default,+-- DescribeSnapshots lists all of your snapshots; it can optionally+-- describe a single snapshot, or just the snapshots associated with a+-- particular cluster.+--+-- This operation returns paginated results.+module Amazonka.MemoryDb.DescribeSnapshots+ ( -- * Creating a Request+ DescribeSnapshots (..),+ newDescribeSnapshots,++ -- * Request Lenses+ describeSnapshots_clusterName,+ describeSnapshots_maxResults,+ describeSnapshots_nextToken,+ describeSnapshots_showDetail,+ describeSnapshots_snapshotName,+ describeSnapshots_source,++ -- * Destructuring the Response+ DescribeSnapshotsResponse (..),+ newDescribeSnapshotsResponse,++ -- * Response Lenses+ describeSnapshotsResponse_nextToken,+ describeSnapshotsResponse_snapshots,+ describeSnapshotsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeSnapshots' smart constructor.+data DescribeSnapshots = DescribeSnapshots'+ { -- | A user-supplied cluster identifier. If this parameter is specified, only+ -- snapshots associated with that specific cluster are described.+ clusterName :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of records to include in the response. If more+ -- records exist than the specified MaxResults value, a token is included+ -- in the response so that the remaining results can be retrieved.+ maxResults :: Prelude.Maybe Prelude.Int,+ -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A Boolean value which if true, the shard configuration is included in+ -- the snapshot description.+ showDetail :: Prelude.Maybe Prelude.Bool,+ -- | A user-supplied name of the snapshot. If this parameter is specified,+ -- only this named snapshot is described.+ snapshotName :: Prelude.Maybe Prelude.Text,+ -- | If set to system, the output shows snapshots that were automatically+ -- created by MemoryDB. If set to user the output shows snapshots that were+ -- manually created. If omitted, the output shows both automatically and+ -- manually created snapshots.+ source :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSnapshots' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterName', 'describeSnapshots_clusterName' - A user-supplied cluster identifier. If this parameter is specified, only+-- snapshots associated with that specific cluster are described.+--+-- 'maxResults', 'describeSnapshots_maxResults' - The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'describeSnapshots_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'showDetail', 'describeSnapshots_showDetail' - A Boolean value which if true, the shard configuration is included in+-- the snapshot description.+--+-- 'snapshotName', 'describeSnapshots_snapshotName' - A user-supplied name of the snapshot. If this parameter is specified,+-- only this named snapshot is described.+--+-- 'source', 'describeSnapshots_source' - If set to system, the output shows snapshots that were automatically+-- created by MemoryDB. If set to user the output shows snapshots that were+-- manually created. If omitted, the output shows both automatically and+-- manually created snapshots.+newDescribeSnapshots ::+ DescribeSnapshots+newDescribeSnapshots =+ DescribeSnapshots'+ { clusterName = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ showDetail = Prelude.Nothing,+ snapshotName = Prelude.Nothing,+ source = Prelude.Nothing+ }++-- | A user-supplied cluster identifier. If this parameter is specified, only+-- snapshots associated with that specific cluster are described.+describeSnapshots_clusterName :: Lens.Lens' DescribeSnapshots (Prelude.Maybe Prelude.Text)+describeSnapshots_clusterName = Lens.lens (\DescribeSnapshots' {clusterName} -> clusterName) (\s@DescribeSnapshots' {} a -> s {clusterName = a} :: DescribeSnapshots)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+describeSnapshots_maxResults :: Lens.Lens' DescribeSnapshots (Prelude.Maybe Prelude.Int)+describeSnapshots_maxResults = Lens.lens (\DescribeSnapshots' {maxResults} -> maxResults) (\s@DescribeSnapshots' {} a -> s {maxResults = a} :: DescribeSnapshots)++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeSnapshots_nextToken :: Lens.Lens' DescribeSnapshots (Prelude.Maybe Prelude.Text)+describeSnapshots_nextToken = Lens.lens (\DescribeSnapshots' {nextToken} -> nextToken) (\s@DescribeSnapshots' {} a -> s {nextToken = a} :: DescribeSnapshots)++-- | A Boolean value which if true, the shard configuration is included in+-- the snapshot description.+describeSnapshots_showDetail :: Lens.Lens' DescribeSnapshots (Prelude.Maybe Prelude.Bool)+describeSnapshots_showDetail = Lens.lens (\DescribeSnapshots' {showDetail} -> showDetail) (\s@DescribeSnapshots' {} a -> s {showDetail = a} :: DescribeSnapshots)++-- | A user-supplied name of the snapshot. If this parameter is specified,+-- only this named snapshot is described.+describeSnapshots_snapshotName :: Lens.Lens' DescribeSnapshots (Prelude.Maybe Prelude.Text)+describeSnapshots_snapshotName = Lens.lens (\DescribeSnapshots' {snapshotName} -> snapshotName) (\s@DescribeSnapshots' {} a -> s {snapshotName = a} :: DescribeSnapshots)++-- | If set to system, the output shows snapshots that were automatically+-- created by MemoryDB. If set to user the output shows snapshots that were+-- manually created. If omitted, the output shows both automatically and+-- manually created snapshots.+describeSnapshots_source :: Lens.Lens' DescribeSnapshots (Prelude.Maybe Prelude.Text)+describeSnapshots_source = Lens.lens (\DescribeSnapshots' {source} -> source) (\s@DescribeSnapshots' {} a -> s {source = a} :: DescribeSnapshots)++instance Core.AWSPager DescribeSnapshots where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeSnapshotsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeSnapshotsResponse_snapshots+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeSnapshots_nextToken+ Lens..~ rs+ Lens.^? describeSnapshotsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeSnapshots where+ type+ AWSResponse DescribeSnapshots =+ DescribeSnapshotsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeSnapshotsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "Snapshots" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeSnapshots where+ hashWithSalt _salt DescribeSnapshots' {..} =+ _salt+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` showDetail+ `Prelude.hashWithSalt` snapshotName+ `Prelude.hashWithSalt` source++instance Prelude.NFData DescribeSnapshots where+ rnf DescribeSnapshots' {..} =+ Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf showDetail+ `Prelude.seq` Prelude.rnf snapshotName+ `Prelude.seq` Prelude.rnf source++instance Data.ToHeaders DescribeSnapshots where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DescribeSnapshots" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeSnapshots where+ toJSON DescribeSnapshots' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ClusterName" Data..=) Prelude.<$> clusterName,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("ShowDetail" Data..=) Prelude.<$> showDetail,+ ("SnapshotName" Data..=) Prelude.<$> snapshotName,+ ("Source" Data..=) Prelude.<$> source+ ]+ )++instance Data.ToPath DescribeSnapshots where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeSnapshots where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeSnapshotsResponse' smart constructor.+data DescribeSnapshotsResponse = DescribeSnapshotsResponse'+ { -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of snapshots. Each item in the list contains detailed information+ -- about one snapshot.+ snapshots :: Prelude.Maybe [Snapshot],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSnapshotsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeSnapshotsResponse_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'snapshots', 'describeSnapshotsResponse_snapshots' - A list of snapshots. Each item in the list contains detailed information+-- about one snapshot.+--+-- 'httpStatus', 'describeSnapshotsResponse_httpStatus' - The response's http status code.+newDescribeSnapshotsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeSnapshotsResponse+newDescribeSnapshotsResponse pHttpStatus_ =+ DescribeSnapshotsResponse'+ { nextToken =+ Prelude.Nothing,+ snapshots = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeSnapshotsResponse_nextToken :: Lens.Lens' DescribeSnapshotsResponse (Prelude.Maybe Prelude.Text)+describeSnapshotsResponse_nextToken = Lens.lens (\DescribeSnapshotsResponse' {nextToken} -> nextToken) (\s@DescribeSnapshotsResponse' {} a -> s {nextToken = a} :: DescribeSnapshotsResponse)++-- | A list of snapshots. Each item in the list contains detailed information+-- about one snapshot.+describeSnapshotsResponse_snapshots :: Lens.Lens' DescribeSnapshotsResponse (Prelude.Maybe [Snapshot])+describeSnapshotsResponse_snapshots = Lens.lens (\DescribeSnapshotsResponse' {snapshots} -> snapshots) (\s@DescribeSnapshotsResponse' {} a -> s {snapshots = a} :: DescribeSnapshotsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeSnapshotsResponse_httpStatus :: Lens.Lens' DescribeSnapshotsResponse Prelude.Int+describeSnapshotsResponse_httpStatus = Lens.lens (\DescribeSnapshotsResponse' {httpStatus} -> httpStatus) (\s@DescribeSnapshotsResponse' {} a -> s {httpStatus = a} :: DescribeSnapshotsResponse)++instance Prelude.NFData DescribeSnapshotsResponse where+ rnf DescribeSnapshotsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf snapshots+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DescribeSubnetGroups.hs view
@@ -0,0 +1,268 @@+{-# 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.MemoryDb.DescribeSubnetGroups+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of subnet group descriptions. If a subnet group name is+-- specified, the list contains only the description of that group.+--+-- This operation returns paginated results.+module Amazonka.MemoryDb.DescribeSubnetGroups+ ( -- * Creating a Request+ DescribeSubnetGroups (..),+ newDescribeSubnetGroups,++ -- * Request Lenses+ describeSubnetGroups_maxResults,+ describeSubnetGroups_nextToken,+ describeSubnetGroups_subnetGroupName,++ -- * Destructuring the Response+ DescribeSubnetGroupsResponse (..),+ newDescribeSubnetGroupsResponse,++ -- * Response Lenses+ describeSubnetGroupsResponse_nextToken,+ describeSubnetGroupsResponse_subnetGroups,+ describeSubnetGroupsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeSubnetGroups' smart constructor.+data DescribeSubnetGroups = DescribeSubnetGroups'+ { -- | The maximum number of records to include in the response. If more+ -- records exist than the specified MaxResults value, a token is included+ -- in the response so that the remaining results can be retrieved.+ maxResults :: Prelude.Maybe Prelude.Int,+ -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the subnet group to return details for.+ subnetGroupName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSubnetGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeSubnetGroups_maxResults' - The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'describeSubnetGroups_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'subnetGroupName', 'describeSubnetGroups_subnetGroupName' - The name of the subnet group to return details for.+newDescribeSubnetGroups ::+ DescribeSubnetGroups+newDescribeSubnetGroups =+ DescribeSubnetGroups'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ subnetGroupName = Prelude.Nothing+ }++-- | The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+describeSubnetGroups_maxResults :: Lens.Lens' DescribeSubnetGroups (Prelude.Maybe Prelude.Int)+describeSubnetGroups_maxResults = Lens.lens (\DescribeSubnetGroups' {maxResults} -> maxResults) (\s@DescribeSubnetGroups' {} a -> s {maxResults = a} :: DescribeSubnetGroups)++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeSubnetGroups_nextToken :: Lens.Lens' DescribeSubnetGroups (Prelude.Maybe Prelude.Text)+describeSubnetGroups_nextToken = Lens.lens (\DescribeSubnetGroups' {nextToken} -> nextToken) (\s@DescribeSubnetGroups' {} a -> s {nextToken = a} :: DescribeSubnetGroups)++-- | The name of the subnet group to return details for.+describeSubnetGroups_subnetGroupName :: Lens.Lens' DescribeSubnetGroups (Prelude.Maybe Prelude.Text)+describeSubnetGroups_subnetGroupName = Lens.lens (\DescribeSubnetGroups' {subnetGroupName} -> subnetGroupName) (\s@DescribeSubnetGroups' {} a -> s {subnetGroupName = a} :: DescribeSubnetGroups)++instance Core.AWSPager DescribeSubnetGroups where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeSubnetGroupsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeSubnetGroupsResponse_subnetGroups+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeSubnetGroups_nextToken+ Lens..~ rs+ Lens.^? describeSubnetGroupsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeSubnetGroups where+ type+ AWSResponse DescribeSubnetGroups =+ DescribeSubnetGroupsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeSubnetGroupsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "SubnetGroups" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeSubnetGroups where+ hashWithSalt _salt DescribeSubnetGroups' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` subnetGroupName++instance Prelude.NFData DescribeSubnetGroups where+ rnf DescribeSubnetGroups' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf subnetGroupName++instance Data.ToHeaders DescribeSubnetGroups where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DescribeSubnetGroups" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeSubnetGroups where+ toJSON DescribeSubnetGroups' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("SubnetGroupName" Data..=)+ Prelude.<$> subnetGroupName+ ]+ )++instance Data.ToPath DescribeSubnetGroups where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeSubnetGroups where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeSubnetGroupsResponse' smart constructor.+data DescribeSubnetGroupsResponse = DescribeSubnetGroupsResponse'+ { -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of subnet groups. Each element in the list contains detailed+ -- information about one group.+ subnetGroups :: Prelude.Maybe [SubnetGroup],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSubnetGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeSubnetGroupsResponse_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'subnetGroups', 'describeSubnetGroupsResponse_subnetGroups' - A list of subnet groups. Each element in the list contains detailed+-- information about one group.+--+-- 'httpStatus', 'describeSubnetGroupsResponse_httpStatus' - The response's http status code.+newDescribeSubnetGroupsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeSubnetGroupsResponse+newDescribeSubnetGroupsResponse pHttpStatus_ =+ DescribeSubnetGroupsResponse'+ { nextToken =+ Prelude.Nothing,+ subnetGroups = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeSubnetGroupsResponse_nextToken :: Lens.Lens' DescribeSubnetGroupsResponse (Prelude.Maybe Prelude.Text)+describeSubnetGroupsResponse_nextToken = Lens.lens (\DescribeSubnetGroupsResponse' {nextToken} -> nextToken) (\s@DescribeSubnetGroupsResponse' {} a -> s {nextToken = a} :: DescribeSubnetGroupsResponse)++-- | A list of subnet groups. Each element in the list contains detailed+-- information about one group.+describeSubnetGroupsResponse_subnetGroups :: Lens.Lens' DescribeSubnetGroupsResponse (Prelude.Maybe [SubnetGroup])+describeSubnetGroupsResponse_subnetGroups = Lens.lens (\DescribeSubnetGroupsResponse' {subnetGroups} -> subnetGroups) (\s@DescribeSubnetGroupsResponse' {} a -> s {subnetGroups = a} :: DescribeSubnetGroupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeSubnetGroupsResponse_httpStatus :: Lens.Lens' DescribeSubnetGroupsResponse Prelude.Int+describeSubnetGroupsResponse_httpStatus = Lens.lens (\DescribeSubnetGroupsResponse' {httpStatus} -> httpStatus) (\s@DescribeSubnetGroupsResponse' {} a -> s {httpStatus = a} :: DescribeSubnetGroupsResponse)++instance Prelude.NFData DescribeSubnetGroupsResponse where+ rnf DescribeSubnetGroupsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf subnetGroups+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/DescribeUsers.hs view
@@ -0,0 +1,275 @@+{-# 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.MemoryDb.DescribeUsers+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of users.+--+-- This operation returns paginated results.+module Amazonka.MemoryDb.DescribeUsers+ ( -- * Creating a Request+ DescribeUsers (..),+ newDescribeUsers,++ -- * Request Lenses+ describeUsers_filters,+ describeUsers_maxResults,+ describeUsers_nextToken,+ describeUsers_userName,++ -- * Destructuring the Response+ DescribeUsersResponse (..),+ newDescribeUsersResponse,++ -- * Response Lenses+ describeUsersResponse_nextToken,+ describeUsersResponse_users,+ describeUsersResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeUsers' smart constructor.+data DescribeUsers = DescribeUsers'+ { -- | Filter to determine the list of users to return.+ filters :: Prelude.Maybe [Filter],+ -- | The maximum number of records to include in the response. If more+ -- records exist than the specified MaxResults value, a token is included+ -- in the response so that the remaining results can be retrieved.+ maxResults :: Prelude.Maybe Prelude.Int,+ -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The name of the user+ userName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeUsers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeUsers_filters' - Filter to determine the list of users to return.+--+-- 'maxResults', 'describeUsers_maxResults' - The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+--+-- 'nextToken', 'describeUsers_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'userName', 'describeUsers_userName' - The name of the user+newDescribeUsers ::+ DescribeUsers+newDescribeUsers =+ DescribeUsers'+ { filters = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ userName = Prelude.Nothing+ }++-- | Filter to determine the list of users to return.+describeUsers_filters :: Lens.Lens' DescribeUsers (Prelude.Maybe [Filter])+describeUsers_filters = Lens.lens (\DescribeUsers' {filters} -> filters) (\s@DescribeUsers' {} a -> s {filters = a} :: DescribeUsers) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of records to include in the response. If more+-- records exist than the specified MaxResults value, a token is included+-- in the response so that the remaining results can be retrieved.+describeUsers_maxResults :: Lens.Lens' DescribeUsers (Prelude.Maybe Prelude.Int)+describeUsers_maxResults = Lens.lens (\DescribeUsers' {maxResults} -> maxResults) (\s@DescribeUsers' {} a -> s {maxResults = a} :: DescribeUsers)++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeUsers_nextToken :: Lens.Lens' DescribeUsers (Prelude.Maybe Prelude.Text)+describeUsers_nextToken = Lens.lens (\DescribeUsers' {nextToken} -> nextToken) (\s@DescribeUsers' {} a -> s {nextToken = a} :: DescribeUsers)++-- | The name of the user+describeUsers_userName :: Lens.Lens' DescribeUsers (Prelude.Maybe Prelude.Text)+describeUsers_userName = Lens.lens (\DescribeUsers' {userName} -> userName) (\s@DescribeUsers' {} a -> s {userName = a} :: DescribeUsers)++instance Core.AWSPager DescribeUsers where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeUsersResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeUsersResponse_users+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeUsers_nextToken+ Lens..~ rs+ Lens.^? describeUsersResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeUsers where+ type+ AWSResponse DescribeUsers =+ DescribeUsersResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeUsersResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "Users" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeUsers where+ hashWithSalt _salt DescribeUsers' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` userName++instance Prelude.NFData DescribeUsers where+ rnf DescribeUsers' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf userName++instance Data.ToHeaders DescribeUsers where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.DescribeUsers" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeUsers where+ toJSON DescribeUsers' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Filters" Data..=) Prelude.<$> filters,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("UserName" Data..=) Prelude.<$> userName+ ]+ )++instance Data.ToPath DescribeUsers where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeUsers where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeUsersResponse' smart constructor.+data DescribeUsersResponse = DescribeUsersResponse'+ { -- | An optional argument to pass in case the total number of records exceeds+ -- the value of MaxResults. If nextToken is returned, there are more+ -- results available. The value of nextToken is a unique pagination token+ -- for each page. Make the call again using the returned token to retrieve+ -- the next page. Keep all other arguments unchanged.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of users.+ users :: Prelude.Maybe [User],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeUsersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeUsersResponse_nextToken' - An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+--+-- 'users', 'describeUsersResponse_users' - A list of users.+--+-- 'httpStatus', 'describeUsersResponse_httpStatus' - The response's http status code.+newDescribeUsersResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeUsersResponse+newDescribeUsersResponse pHttpStatus_ =+ DescribeUsersResponse'+ { nextToken = Prelude.Nothing,+ users = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An optional argument to pass in case the total number of records exceeds+-- the value of MaxResults. If nextToken is returned, there are more+-- results available. The value of nextToken is a unique pagination token+-- for each page. Make the call again using the returned token to retrieve+-- the next page. Keep all other arguments unchanged.+describeUsersResponse_nextToken :: Lens.Lens' DescribeUsersResponse (Prelude.Maybe Prelude.Text)+describeUsersResponse_nextToken = Lens.lens (\DescribeUsersResponse' {nextToken} -> nextToken) (\s@DescribeUsersResponse' {} a -> s {nextToken = a} :: DescribeUsersResponse)++-- | A list of users.+describeUsersResponse_users :: Lens.Lens' DescribeUsersResponse (Prelude.Maybe [User])+describeUsersResponse_users = Lens.lens (\DescribeUsersResponse' {users} -> users) (\s@DescribeUsersResponse' {} a -> s {users = a} :: DescribeUsersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeUsersResponse_httpStatus :: Lens.Lens' DescribeUsersResponse Prelude.Int+describeUsersResponse_httpStatus = Lens.lens (\DescribeUsersResponse' {httpStatus} -> httpStatus) (\s@DescribeUsersResponse' {} a -> s {httpStatus = a} :: DescribeUsersResponse)++instance Prelude.NFData DescribeUsersResponse where+ rnf DescribeUsersResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf users+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/FailoverShard.hs view
@@ -0,0 +1,191 @@+{-# 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.MemoryDb.FailoverShard+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Used to failover a shard. This API is designed for testing the behavior+-- of your application in case of MemoryDB failover. It is not designed to+-- be used as a production-level tool for initiating a failover to overcome+-- a problem you may have with the cluster. Moreover, in certain conditions+-- such as large scale operational events, Amazon may block this API.+module Amazonka.MemoryDb.FailoverShard+ ( -- * Creating a Request+ FailoverShard (..),+ newFailoverShard,++ -- * Request Lenses+ failoverShard_clusterName,+ failoverShard_shardName,++ -- * Destructuring the Response+ FailoverShardResponse (..),+ newFailoverShardResponse,++ -- * Response Lenses+ failoverShardResponse_cluster,+ failoverShardResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newFailoverShard' smart constructor.+data FailoverShard = FailoverShard'+ { -- | The cluster being failed over+ clusterName :: Prelude.Text,+ -- | The name of the shard+ shardName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FailoverShard' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterName', 'failoverShard_clusterName' - The cluster being failed over+--+-- 'shardName', 'failoverShard_shardName' - The name of the shard+newFailoverShard ::+ -- | 'clusterName'+ Prelude.Text ->+ -- | 'shardName'+ Prelude.Text ->+ FailoverShard+newFailoverShard pClusterName_ pShardName_ =+ FailoverShard'+ { clusterName = pClusterName_,+ shardName = pShardName_+ }++-- | The cluster being failed over+failoverShard_clusterName :: Lens.Lens' FailoverShard Prelude.Text+failoverShard_clusterName = Lens.lens (\FailoverShard' {clusterName} -> clusterName) (\s@FailoverShard' {} a -> s {clusterName = a} :: FailoverShard)++-- | The name of the shard+failoverShard_shardName :: Lens.Lens' FailoverShard Prelude.Text+failoverShard_shardName = Lens.lens (\FailoverShard' {shardName} -> shardName) (\s@FailoverShard' {} a -> s {shardName = a} :: FailoverShard)++instance Core.AWSRequest FailoverShard where+ type+ AWSResponse FailoverShard =+ FailoverShardResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ FailoverShardResponse'+ Prelude.<$> (x Data..?> "Cluster")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable FailoverShard where+ hashWithSalt _salt FailoverShard' {..} =+ _salt+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` shardName++instance Prelude.NFData FailoverShard where+ rnf FailoverShard' {..} =+ Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf shardName++instance Data.ToHeaders FailoverShard where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.FailoverShard" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON FailoverShard where+ toJSON FailoverShard' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("ClusterName" Data..= clusterName),+ Prelude.Just ("ShardName" Data..= shardName)+ ]+ )++instance Data.ToPath FailoverShard where+ toPath = Prelude.const "/"++instance Data.ToQuery FailoverShard where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newFailoverShardResponse' smart constructor.+data FailoverShardResponse = FailoverShardResponse'+ { -- | The cluster being failed over+ cluster :: Prelude.Maybe Cluster,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FailoverShardResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cluster', 'failoverShardResponse_cluster' - The cluster being failed over+--+-- 'httpStatus', 'failoverShardResponse_httpStatus' - The response's http status code.+newFailoverShardResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ FailoverShardResponse+newFailoverShardResponse pHttpStatus_ =+ FailoverShardResponse'+ { cluster = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The cluster being failed over+failoverShardResponse_cluster :: Lens.Lens' FailoverShardResponse (Prelude.Maybe Cluster)+failoverShardResponse_cluster = Lens.lens (\FailoverShardResponse' {cluster} -> cluster) (\s@FailoverShardResponse' {} a -> s {cluster = a} :: FailoverShardResponse)++-- | The response's http status code.+failoverShardResponse_httpStatus :: Lens.Lens' FailoverShardResponse Prelude.Int+failoverShardResponse_httpStatus = Lens.lens (\FailoverShardResponse' {httpStatus} -> httpStatus) (\s@FailoverShardResponse' {} a -> s {httpStatus = a} :: FailoverShardResponse)++instance Prelude.NFData FailoverShardResponse where+ rnf FailoverShardResponse' {..} =+ Prelude.rnf cluster+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/Lens.hs view
@@ -0,0 +1,645 @@+{-# 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.MemoryDb.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.MemoryDb.Lens+ ( -- * Operations++ -- ** BatchUpdateCluster+ batchUpdateCluster_serviceUpdate,+ batchUpdateCluster_clusterNames,+ batchUpdateClusterResponse_processedClusters,+ batchUpdateClusterResponse_unprocessedClusters,+ batchUpdateClusterResponse_httpStatus,++ -- ** CopySnapshot+ copySnapshot_kmsKeyId,+ copySnapshot_tags,+ copySnapshot_targetBucket,+ copySnapshot_sourceSnapshotName,+ copySnapshot_targetSnapshotName,+ copySnapshotResponse_snapshot,+ copySnapshotResponse_httpStatus,++ -- ** CreateACL+ createACL_tags,+ createACL_userNames,+ createACL_aCLName,+ createACLResponse_acl,+ createACLResponse_httpStatus,++ -- ** CreateCluster+ createCluster_autoMinorVersionUpgrade,+ createCluster_dataTiering,+ createCluster_description,+ createCluster_engineVersion,+ createCluster_kmsKeyId,+ createCluster_maintenanceWindow,+ createCluster_numReplicasPerShard,+ createCluster_numShards,+ createCluster_parameterGroupName,+ createCluster_port,+ createCluster_securityGroupIds,+ createCluster_snapshotArns,+ createCluster_snapshotName,+ createCluster_snapshotRetentionLimit,+ createCluster_snapshotWindow,+ createCluster_snsTopicArn,+ createCluster_subnetGroupName,+ createCluster_tLSEnabled,+ createCluster_tags,+ createCluster_clusterName,+ createCluster_nodeType,+ createCluster_aCLName,+ createClusterResponse_cluster,+ createClusterResponse_httpStatus,++ -- ** CreateParameterGroup+ createParameterGroup_description,+ createParameterGroup_tags,+ createParameterGroup_parameterGroupName,+ createParameterGroup_family,+ createParameterGroupResponse_parameterGroup,+ createParameterGroupResponse_httpStatus,++ -- ** CreateSnapshot+ createSnapshot_kmsKeyId,+ createSnapshot_tags,+ createSnapshot_clusterName,+ createSnapshot_snapshotName,+ createSnapshotResponse_snapshot,+ createSnapshotResponse_httpStatus,++ -- ** CreateSubnetGroup+ createSubnetGroup_description,+ createSubnetGroup_tags,+ createSubnetGroup_subnetGroupName,+ createSubnetGroup_subnetIds,+ createSubnetGroupResponse_subnetGroup,+ createSubnetGroupResponse_httpStatus,++ -- ** CreateUser+ createUser_tags,+ createUser_userName,+ createUser_authenticationMode,+ createUser_accessString,+ createUserResponse_user,+ createUserResponse_httpStatus,++ -- ** DeleteACL+ deleteACL_aCLName,+ deleteACLResponse_acl,+ deleteACLResponse_httpStatus,++ -- ** DeleteCluster+ deleteCluster_finalSnapshotName,+ deleteCluster_clusterName,+ deleteClusterResponse_cluster,+ deleteClusterResponse_httpStatus,++ -- ** DeleteParameterGroup+ deleteParameterGroup_parameterGroupName,+ deleteParameterGroupResponse_parameterGroup,+ deleteParameterGroupResponse_httpStatus,++ -- ** DeleteSnapshot+ deleteSnapshot_snapshotName,+ deleteSnapshotResponse_snapshot,+ deleteSnapshotResponse_httpStatus,++ -- ** DeleteSubnetGroup+ deleteSubnetGroup_subnetGroupName,+ deleteSubnetGroupResponse_subnetGroup,+ deleteSubnetGroupResponse_httpStatus,++ -- ** DeleteUser+ deleteUser_userName,+ deleteUserResponse_user,+ deleteUserResponse_httpStatus,++ -- ** DescribeACLs+ describeACLs_aCLName,+ describeACLs_maxResults,+ describeACLs_nextToken,+ describeACLsResponse_aCLs,+ describeACLsResponse_nextToken,+ describeACLsResponse_httpStatus,++ -- ** DescribeClusters+ describeClusters_clusterName,+ describeClusters_maxResults,+ describeClusters_nextToken,+ describeClusters_showShardDetails,+ describeClustersResponse_clusters,+ describeClustersResponse_nextToken,+ describeClustersResponse_httpStatus,++ -- ** DescribeEngineVersions+ describeEngineVersions_defaultOnly,+ describeEngineVersions_engineVersion,+ describeEngineVersions_maxResults,+ describeEngineVersions_nextToken,+ describeEngineVersions_parameterGroupFamily,+ describeEngineVersionsResponse_engineVersions,+ describeEngineVersionsResponse_nextToken,+ describeEngineVersionsResponse_httpStatus,++ -- ** DescribeEvents+ describeEvents_duration,+ describeEvents_endTime,+ describeEvents_maxResults,+ describeEvents_nextToken,+ describeEvents_sourceName,+ describeEvents_sourceType,+ describeEvents_startTime,+ describeEventsResponse_events,+ describeEventsResponse_nextToken,+ describeEventsResponse_httpStatus,++ -- ** DescribeParameterGroups+ describeParameterGroups_maxResults,+ describeParameterGroups_nextToken,+ describeParameterGroups_parameterGroupName,+ describeParameterGroupsResponse_nextToken,+ describeParameterGroupsResponse_parameterGroups,+ describeParameterGroupsResponse_httpStatus,++ -- ** DescribeParameters+ describeParameters_maxResults,+ describeParameters_nextToken,+ describeParameters_parameterGroupName,+ describeParametersResponse_nextToken,+ describeParametersResponse_parameters,+ describeParametersResponse_httpStatus,++ -- ** DescribeReservedNodes+ describeReservedNodes_duration,+ describeReservedNodes_maxResults,+ describeReservedNodes_nextToken,+ describeReservedNodes_nodeType,+ describeReservedNodes_offeringType,+ describeReservedNodes_reservationId,+ describeReservedNodes_reservedNodesOfferingId,+ describeReservedNodesResponse_nextToken,+ describeReservedNodesResponse_reservedNodes,+ describeReservedNodesResponse_httpStatus,++ -- ** DescribeReservedNodesOfferings+ describeReservedNodesOfferings_duration,+ describeReservedNodesOfferings_maxResults,+ describeReservedNodesOfferings_nextToken,+ describeReservedNodesOfferings_nodeType,+ describeReservedNodesOfferings_offeringType,+ describeReservedNodesOfferings_reservedNodesOfferingId,+ describeReservedNodesOfferingsResponse_nextToken,+ describeReservedNodesOfferingsResponse_reservedNodesOfferings,+ describeReservedNodesOfferingsResponse_httpStatus,++ -- ** DescribeServiceUpdates+ describeServiceUpdates_clusterNames,+ describeServiceUpdates_maxResults,+ describeServiceUpdates_nextToken,+ describeServiceUpdates_serviceUpdateName,+ describeServiceUpdates_status,+ describeServiceUpdatesResponse_nextToken,+ describeServiceUpdatesResponse_serviceUpdates,+ describeServiceUpdatesResponse_httpStatus,++ -- ** DescribeSnapshots+ describeSnapshots_clusterName,+ describeSnapshots_maxResults,+ describeSnapshots_nextToken,+ describeSnapshots_showDetail,+ describeSnapshots_snapshotName,+ describeSnapshots_source,+ describeSnapshotsResponse_nextToken,+ describeSnapshotsResponse_snapshots,+ describeSnapshotsResponse_httpStatus,++ -- ** DescribeSubnetGroups+ describeSubnetGroups_maxResults,+ describeSubnetGroups_nextToken,+ describeSubnetGroups_subnetGroupName,+ describeSubnetGroupsResponse_nextToken,+ describeSubnetGroupsResponse_subnetGroups,+ describeSubnetGroupsResponse_httpStatus,++ -- ** DescribeUsers+ describeUsers_filters,+ describeUsers_maxResults,+ describeUsers_nextToken,+ describeUsers_userName,+ describeUsersResponse_nextToken,+ describeUsersResponse_users,+ describeUsersResponse_httpStatus,++ -- ** FailoverShard+ failoverShard_clusterName,+ failoverShard_shardName,+ failoverShardResponse_cluster,+ failoverShardResponse_httpStatus,++ -- ** ListAllowedNodeTypeUpdates+ listAllowedNodeTypeUpdates_clusterName,+ listAllowedNodeTypeUpdatesResponse_scaleDownNodeTypes,+ listAllowedNodeTypeUpdatesResponse_scaleUpNodeTypes,+ listAllowedNodeTypeUpdatesResponse_httpStatus,++ -- ** ListTags+ listTags_resourceArn,+ listTagsResponse_tagList,+ listTagsResponse_httpStatus,++ -- ** PurchaseReservedNodesOffering+ purchaseReservedNodesOffering_nodeCount,+ purchaseReservedNodesOffering_reservationId,+ purchaseReservedNodesOffering_tags,+ purchaseReservedNodesOffering_reservedNodesOfferingId,+ purchaseReservedNodesOfferingResponse_reservedNode,+ purchaseReservedNodesOfferingResponse_httpStatus,++ -- ** ResetParameterGroup+ resetParameterGroup_allParameters,+ resetParameterGroup_parameterNames,+ resetParameterGroup_parameterGroupName,+ resetParameterGroupResponse_parameterGroup,+ resetParameterGroupResponse_httpStatus,++ -- ** TagResource+ tagResource_resourceArn,+ tagResource_tags,+ tagResourceResponse_tagList,+ tagResourceResponse_httpStatus,++ -- ** UntagResource+ untagResource_resourceArn,+ untagResource_tagKeys,+ untagResourceResponse_tagList,+ untagResourceResponse_httpStatus,++ -- ** UpdateACL+ updateACL_userNamesToAdd,+ updateACL_userNamesToRemove,+ updateACL_aCLName,+ updateACLResponse_acl,+ updateACLResponse_httpStatus,++ -- ** UpdateCluster+ updateCluster_aCLName,+ updateCluster_description,+ updateCluster_engineVersion,+ updateCluster_maintenanceWindow,+ updateCluster_nodeType,+ updateCluster_parameterGroupName,+ updateCluster_replicaConfiguration,+ updateCluster_securityGroupIds,+ updateCluster_shardConfiguration,+ updateCluster_snapshotRetentionLimit,+ updateCluster_snapshotWindow,+ updateCluster_snsTopicArn,+ updateCluster_snsTopicStatus,+ updateCluster_clusterName,+ updateClusterResponse_cluster,+ updateClusterResponse_httpStatus,++ -- ** UpdateParameterGroup+ updateParameterGroup_parameterGroupName,+ updateParameterGroup_parameterNameValues,+ updateParameterGroupResponse_parameterGroup,+ updateParameterGroupResponse_httpStatus,++ -- ** UpdateSubnetGroup+ updateSubnetGroup_description,+ updateSubnetGroup_subnetIds,+ updateSubnetGroup_subnetGroupName,+ updateSubnetGroupResponse_subnetGroup,+ updateSubnetGroupResponse_httpStatus,++ -- ** UpdateUser+ updateUser_accessString,+ updateUser_authenticationMode,+ updateUser_userName,+ updateUserResponse_user,+ updateUserResponse_httpStatus,++ -- * Types++ -- ** ACL+ acl_arn,+ acl_clusters,+ acl_minimumEngineVersion,+ acl_name,+ acl_pendingChanges,+ acl_status,+ acl_userNames,++ -- ** ACLPendingChanges+ aCLPendingChanges_userNamesToAdd,+ aCLPendingChanges_userNamesToRemove,++ -- ** ACLsUpdateStatus+ aCLsUpdateStatus_aCLToApply,++ -- ** Authentication+ authentication_passwordCount,+ authentication_type,++ -- ** AuthenticationMode+ authenticationMode_passwords,+ authenticationMode_type,++ -- ** AvailabilityZone+ availabilityZone_name,++ -- ** Cluster+ cluster_aCLName,+ cluster_arn,+ cluster_autoMinorVersionUpgrade,+ cluster_availabilityMode,+ cluster_clusterEndpoint,+ cluster_dataTiering,+ cluster_description,+ cluster_enginePatchVersion,+ cluster_engineVersion,+ cluster_kmsKeyId,+ cluster_maintenanceWindow,+ cluster_name,+ cluster_nodeType,+ cluster_numberOfShards,+ cluster_parameterGroupName,+ cluster_parameterGroupStatus,+ cluster_pendingUpdates,+ cluster_securityGroups,+ cluster_shards,+ cluster_snapshotRetentionLimit,+ cluster_snapshotWindow,+ cluster_snsTopicArn,+ cluster_snsTopicStatus,+ cluster_status,+ cluster_subnetGroupName,+ cluster_tLSEnabled,++ -- ** ClusterConfiguration+ clusterConfiguration_description,+ clusterConfiguration_engineVersion,+ clusterConfiguration_maintenanceWindow,+ clusterConfiguration_name,+ clusterConfiguration_nodeType,+ clusterConfiguration_numShards,+ clusterConfiguration_parameterGroupName,+ clusterConfiguration_port,+ clusterConfiguration_shards,+ clusterConfiguration_snapshotRetentionLimit,+ clusterConfiguration_snapshotWindow,+ clusterConfiguration_subnetGroupName,+ clusterConfiguration_topicArn,+ clusterConfiguration_vpcId,++ -- ** ClusterPendingUpdates+ clusterPendingUpdates_aCLs,+ clusterPendingUpdates_resharding,+ clusterPendingUpdates_serviceUpdates,++ -- ** Endpoint+ endpoint_address,+ endpoint_port,++ -- ** EngineVersionInfo+ engineVersionInfo_enginePatchVersion,+ engineVersionInfo_engineVersion,+ engineVersionInfo_parameterGroupFamily,++ -- ** Event+ event_date,+ event_message,+ event_sourceName,+ event_sourceType,++ -- ** Filter+ filter_name,+ filter_values,++ -- ** Node+ node_availabilityZone,+ node_createTime,+ node_endpoint,+ node_name,+ node_status,++ -- ** Parameter+ parameter_allowedValues,+ parameter_dataType,+ parameter_description,+ parameter_minimumEngineVersion,+ parameter_name,+ parameter_value,++ -- ** ParameterGroup+ parameterGroup_arn,+ parameterGroup_description,+ parameterGroup_family,+ parameterGroup_name,++ -- ** ParameterNameValue+ parameterNameValue_parameterName,+ parameterNameValue_parameterValue,++ -- ** PendingModifiedServiceUpdate+ pendingModifiedServiceUpdate_serviceUpdateName,+ pendingModifiedServiceUpdate_status,++ -- ** RecurringCharge+ recurringCharge_recurringChargeAmount,+ recurringCharge_recurringChargeFrequency,++ -- ** ReplicaConfigurationRequest+ replicaConfigurationRequest_replicaCount,++ -- ** ReservedNode+ reservedNode_arn,+ reservedNode_duration,+ reservedNode_fixedPrice,+ reservedNode_nodeCount,+ reservedNode_nodeType,+ reservedNode_offeringType,+ reservedNode_recurringCharges,+ reservedNode_reservationId,+ reservedNode_reservedNodesOfferingId,+ reservedNode_startTime,+ reservedNode_state,++ -- ** ReservedNodesOffering+ reservedNodesOffering_duration,+ reservedNodesOffering_fixedPrice,+ reservedNodesOffering_nodeType,+ reservedNodesOffering_offeringType,+ reservedNodesOffering_recurringCharges,+ reservedNodesOffering_reservedNodesOfferingId,++ -- ** ReshardingStatus+ reshardingStatus_slotMigration,++ -- ** SecurityGroupMembership+ securityGroupMembership_securityGroupId,+ securityGroupMembership_status,++ -- ** ServiceUpdate+ serviceUpdate_autoUpdateStartDate,+ serviceUpdate_clusterName,+ serviceUpdate_description,+ serviceUpdate_nodesUpdated,+ serviceUpdate_releaseDate,+ serviceUpdate_serviceUpdateName,+ serviceUpdate_status,+ serviceUpdate_type,++ -- ** ServiceUpdateRequest+ serviceUpdateRequest_serviceUpdateNameToApply,++ -- ** Shard+ shard_name,+ shard_nodes,+ shard_numberOfNodes,+ shard_slots,+ shard_status,++ -- ** ShardConfiguration+ shardConfiguration_replicaCount,+ shardConfiguration_slots,++ -- ** ShardConfigurationRequest+ shardConfigurationRequest_shardCount,++ -- ** ShardDetail+ shardDetail_configuration,+ shardDetail_name,+ shardDetail_size,+ shardDetail_snapshotCreationTime,++ -- ** SlotMigration+ slotMigration_progressPercentage,++ -- ** Snapshot+ snapshot_arn,+ snapshot_clusterConfiguration,+ snapshot_dataTiering,+ snapshot_kmsKeyId,+ snapshot_name,+ snapshot_source,+ snapshot_status,++ -- ** Subnet+ subnet_availabilityZone,+ subnet_identifier,++ -- ** SubnetGroup+ subnetGroup_arn,+ subnetGroup_description,+ subnetGroup_name,+ subnetGroup_subnets,+ subnetGroup_vpcId,++ -- ** Tag+ tag_key,+ tag_value,++ -- ** UnprocessedCluster+ unprocessedCluster_clusterName,+ unprocessedCluster_errorMessage,+ unprocessedCluster_errorType,++ -- ** User+ user_aCLNames,+ user_arn,+ user_accessString,+ user_authentication,+ user_minimumEngineVersion,+ user_name,+ user_status,+ )+where++import Amazonka.MemoryDb.BatchUpdateCluster+import Amazonka.MemoryDb.CopySnapshot+import Amazonka.MemoryDb.CreateACL+import Amazonka.MemoryDb.CreateCluster+import Amazonka.MemoryDb.CreateParameterGroup+import Amazonka.MemoryDb.CreateSnapshot+import Amazonka.MemoryDb.CreateSubnetGroup+import Amazonka.MemoryDb.CreateUser+import Amazonka.MemoryDb.DeleteACL+import Amazonka.MemoryDb.DeleteCluster+import Amazonka.MemoryDb.DeleteParameterGroup+import Amazonka.MemoryDb.DeleteSnapshot+import Amazonka.MemoryDb.DeleteSubnetGroup+import Amazonka.MemoryDb.DeleteUser+import Amazonka.MemoryDb.DescribeACLs+import Amazonka.MemoryDb.DescribeClusters+import Amazonka.MemoryDb.DescribeEngineVersions+import Amazonka.MemoryDb.DescribeEvents+import Amazonka.MemoryDb.DescribeParameterGroups+import Amazonka.MemoryDb.DescribeParameters+import Amazonka.MemoryDb.DescribeReservedNodes+import Amazonka.MemoryDb.DescribeReservedNodesOfferings+import Amazonka.MemoryDb.DescribeServiceUpdates+import Amazonka.MemoryDb.DescribeSnapshots+import Amazonka.MemoryDb.DescribeSubnetGroups+import Amazonka.MemoryDb.DescribeUsers+import Amazonka.MemoryDb.FailoverShard+import Amazonka.MemoryDb.ListAllowedNodeTypeUpdates+import Amazonka.MemoryDb.ListTags+import Amazonka.MemoryDb.PurchaseReservedNodesOffering+import Amazonka.MemoryDb.ResetParameterGroup+import Amazonka.MemoryDb.TagResource+import Amazonka.MemoryDb.Types.ACL+import Amazonka.MemoryDb.Types.ACLPendingChanges+import Amazonka.MemoryDb.Types.ACLsUpdateStatus+import Amazonka.MemoryDb.Types.Authentication+import Amazonka.MemoryDb.Types.AuthenticationMode+import Amazonka.MemoryDb.Types.AvailabilityZone+import Amazonka.MemoryDb.Types.Cluster+import Amazonka.MemoryDb.Types.ClusterConfiguration+import Amazonka.MemoryDb.Types.ClusterPendingUpdates+import Amazonka.MemoryDb.Types.Endpoint+import Amazonka.MemoryDb.Types.EngineVersionInfo+import Amazonka.MemoryDb.Types.Event+import Amazonka.MemoryDb.Types.Filter+import Amazonka.MemoryDb.Types.Node+import Amazonka.MemoryDb.Types.Parameter+import Amazonka.MemoryDb.Types.ParameterGroup+import Amazonka.MemoryDb.Types.ParameterNameValue+import Amazonka.MemoryDb.Types.PendingModifiedServiceUpdate+import Amazonka.MemoryDb.Types.RecurringCharge+import Amazonka.MemoryDb.Types.ReplicaConfigurationRequest+import Amazonka.MemoryDb.Types.ReservedNode+import Amazonka.MemoryDb.Types.ReservedNodesOffering+import Amazonka.MemoryDb.Types.ReshardingStatus+import Amazonka.MemoryDb.Types.SecurityGroupMembership+import Amazonka.MemoryDb.Types.ServiceUpdate+import Amazonka.MemoryDb.Types.ServiceUpdateRequest+import Amazonka.MemoryDb.Types.Shard+import Amazonka.MemoryDb.Types.ShardConfiguration+import Amazonka.MemoryDb.Types.ShardConfigurationRequest+import Amazonka.MemoryDb.Types.ShardDetail+import Amazonka.MemoryDb.Types.SlotMigration+import Amazonka.MemoryDb.Types.Snapshot+import Amazonka.MemoryDb.Types.Subnet+import Amazonka.MemoryDb.Types.SubnetGroup+import Amazonka.MemoryDb.Types.Tag+import Amazonka.MemoryDb.Types.UnprocessedCluster+import Amazonka.MemoryDb.Types.User+import Amazonka.MemoryDb.UntagResource+import Amazonka.MemoryDb.UpdateACL+import Amazonka.MemoryDb.UpdateCluster+import Amazonka.MemoryDb.UpdateParameterGroup+import Amazonka.MemoryDb.UpdateSubnetGroup+import Amazonka.MemoryDb.UpdateUser
+ gen/Amazonka/MemoryDb/ListAllowedNodeTypeUpdates.hs view
@@ -0,0 +1,202 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.ListAllowedNodeTypeUpdates+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all available node types that you can scale to from your+-- cluster\'s current node type. When you use the UpdateCluster operation+-- to scale your cluster, the value of the NodeType parameter must be one+-- of the node types returned by this operation.+module Amazonka.MemoryDb.ListAllowedNodeTypeUpdates+ ( -- * Creating a Request+ ListAllowedNodeTypeUpdates (..),+ newListAllowedNodeTypeUpdates,++ -- * Request Lenses+ listAllowedNodeTypeUpdates_clusterName,++ -- * Destructuring the Response+ ListAllowedNodeTypeUpdatesResponse (..),+ newListAllowedNodeTypeUpdatesResponse,++ -- * Response Lenses+ listAllowedNodeTypeUpdatesResponse_scaleDownNodeTypes,+ listAllowedNodeTypeUpdatesResponse_scaleUpNodeTypes,+ listAllowedNodeTypeUpdatesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAllowedNodeTypeUpdates' smart constructor.+data ListAllowedNodeTypeUpdates = ListAllowedNodeTypeUpdates'+ { -- | The name of the cluster you want to scale. MemoryDB uses the cluster+ -- name to identify the current node type being used by this cluster, and+ -- from that to create a list of node types you can scale up to.+ clusterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAllowedNodeTypeUpdates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterName', 'listAllowedNodeTypeUpdates_clusterName' - The name of the cluster you want to scale. MemoryDB uses the cluster+-- name to identify the current node type being used by this cluster, and+-- from that to create a list of node types you can scale up to.+newListAllowedNodeTypeUpdates ::+ -- | 'clusterName'+ Prelude.Text ->+ ListAllowedNodeTypeUpdates+newListAllowedNodeTypeUpdates pClusterName_ =+ ListAllowedNodeTypeUpdates'+ { clusterName =+ pClusterName_+ }++-- | The name of the cluster you want to scale. MemoryDB uses the cluster+-- name to identify the current node type being used by this cluster, and+-- from that to create a list of node types you can scale up to.+listAllowedNodeTypeUpdates_clusterName :: Lens.Lens' ListAllowedNodeTypeUpdates Prelude.Text+listAllowedNodeTypeUpdates_clusterName = Lens.lens (\ListAllowedNodeTypeUpdates' {clusterName} -> clusterName) (\s@ListAllowedNodeTypeUpdates' {} a -> s {clusterName = a} :: ListAllowedNodeTypeUpdates)++instance Core.AWSRequest ListAllowedNodeTypeUpdates where+ type+ AWSResponse ListAllowedNodeTypeUpdates =+ ListAllowedNodeTypeUpdatesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListAllowedNodeTypeUpdatesResponse'+ Prelude.<$> ( x+ Data..?> "ScaleDownNodeTypes"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> ( x+ Data..?> "ScaleUpNodeTypes"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListAllowedNodeTypeUpdates where+ hashWithSalt _salt ListAllowedNodeTypeUpdates' {..} =+ _salt `Prelude.hashWithSalt` clusterName++instance Prelude.NFData ListAllowedNodeTypeUpdates where+ rnf ListAllowedNodeTypeUpdates' {..} =+ Prelude.rnf clusterName++instance Data.ToHeaders ListAllowedNodeTypeUpdates where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.ListAllowedNodeTypeUpdates" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListAllowedNodeTypeUpdates where+ toJSON ListAllowedNodeTypeUpdates' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("ClusterName" Data..= clusterName)]+ )++instance Data.ToPath ListAllowedNodeTypeUpdates where+ toPath = Prelude.const "/"++instance Data.ToQuery ListAllowedNodeTypeUpdates where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAllowedNodeTypeUpdatesResponse' smart constructor.+data ListAllowedNodeTypeUpdatesResponse = ListAllowedNodeTypeUpdatesResponse'+ { -- | A list node types which you can use to scale down your cluster.+ scaleDownNodeTypes :: Prelude.Maybe [Prelude.Text],+ -- | A list node types which you can use to scale up your cluster.+ scaleUpNodeTypes :: 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 'ListAllowedNodeTypeUpdatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'scaleDownNodeTypes', 'listAllowedNodeTypeUpdatesResponse_scaleDownNodeTypes' - A list node types which you can use to scale down your cluster.+--+-- 'scaleUpNodeTypes', 'listAllowedNodeTypeUpdatesResponse_scaleUpNodeTypes' - A list node types which you can use to scale up your cluster.+--+-- 'httpStatus', 'listAllowedNodeTypeUpdatesResponse_httpStatus' - The response's http status code.+newListAllowedNodeTypeUpdatesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListAllowedNodeTypeUpdatesResponse+newListAllowedNodeTypeUpdatesResponse pHttpStatus_ =+ ListAllowedNodeTypeUpdatesResponse'+ { scaleDownNodeTypes =+ Prelude.Nothing,+ scaleUpNodeTypes = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list node types which you can use to scale down your cluster.+listAllowedNodeTypeUpdatesResponse_scaleDownNodeTypes :: Lens.Lens' ListAllowedNodeTypeUpdatesResponse (Prelude.Maybe [Prelude.Text])+listAllowedNodeTypeUpdatesResponse_scaleDownNodeTypes = Lens.lens (\ListAllowedNodeTypeUpdatesResponse' {scaleDownNodeTypes} -> scaleDownNodeTypes) (\s@ListAllowedNodeTypeUpdatesResponse' {} a -> s {scaleDownNodeTypes = a} :: ListAllowedNodeTypeUpdatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list node types which you can use to scale up your cluster.+listAllowedNodeTypeUpdatesResponse_scaleUpNodeTypes :: Lens.Lens' ListAllowedNodeTypeUpdatesResponse (Prelude.Maybe [Prelude.Text])+listAllowedNodeTypeUpdatesResponse_scaleUpNodeTypes = Lens.lens (\ListAllowedNodeTypeUpdatesResponse' {scaleUpNodeTypes} -> scaleUpNodeTypes) (\s@ListAllowedNodeTypeUpdatesResponse' {} a -> s {scaleUpNodeTypes = a} :: ListAllowedNodeTypeUpdatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listAllowedNodeTypeUpdatesResponse_httpStatus :: Lens.Lens' ListAllowedNodeTypeUpdatesResponse Prelude.Int+listAllowedNodeTypeUpdatesResponse_httpStatus = Lens.lens (\ListAllowedNodeTypeUpdatesResponse' {httpStatus} -> httpStatus) (\s@ListAllowedNodeTypeUpdatesResponse' {} a -> s {httpStatus = a} :: ListAllowedNodeTypeUpdatesResponse)++instance+ Prelude.NFData+ ListAllowedNodeTypeUpdatesResponse+ where+ rnf ListAllowedNodeTypeUpdatesResponse' {..} =+ Prelude.rnf scaleDownNodeTypes+ `Prelude.seq` Prelude.rnf scaleUpNodeTypes+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/ListTags.hs view
@@ -0,0 +1,169 @@+{-# 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.MemoryDb.ListTags+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all tags currently on a named resource. A tag is a key-value pair+-- where the key and value are case-sensitive. You can use tags to+-- categorize and track your MemoryDB resources. For more information, see+-- <https://docs.aws.amazon.com/MemoryDB/latest/devguide/Tagging-Resources.html Tagging your MemoryDB resources>+module Amazonka.MemoryDb.ListTags+ ( -- * Creating a Request+ ListTags (..),+ newListTags,++ -- * Request Lenses+ listTags_resourceArn,++ -- * Destructuring the Response+ ListTagsResponse (..),+ newListTagsResponse,++ -- * Response Lenses+ listTagsResponse_tagList,+ listTagsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTags' smart constructor.+data ListTags = ListTags'+ { -- | The Amazon Resource Name (ARN) of the resource for which you want the+ -- list of tags+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTags' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listTags_resourceArn' - The Amazon Resource Name (ARN) of the resource for which you want the+-- list of tags+newListTags ::+ -- | 'resourceArn'+ Prelude.Text ->+ ListTags+newListTags pResourceArn_ =+ ListTags' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) of the resource for which you want the+-- list of tags+listTags_resourceArn :: Lens.Lens' ListTags Prelude.Text+listTags_resourceArn = Lens.lens (\ListTags' {resourceArn} -> resourceArn) (\s@ListTags' {} a -> s {resourceArn = a} :: ListTags)++instance Core.AWSRequest ListTags where+ type AWSResponse ListTags = ListTagsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListTagsResponse'+ Prelude.<$> (x Data..?> "TagList" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListTags where+ hashWithSalt _salt ListTags' {..} =+ _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTags where+ rnf ListTags' {..} = Prelude.rnf resourceArn++instance Data.ToHeaders ListTags where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ("AmazonMemoryDB.ListTags" :: Prelude.ByteString),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListTags where+ toJSON ListTags' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("ResourceArn" Data..= resourceArn)]+ )++instance Data.ToPath ListTags where+ toPath = Prelude.const "/"++instance Data.ToQuery ListTags where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsResponse' smart constructor.+data ListTagsResponse = ListTagsResponse'+ { -- | A list of tags as key-value pairs.+ tagList :: Prelude.Maybe [Tag],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tagList', 'listTagsResponse_tagList' - A list of tags as key-value pairs.+--+-- 'httpStatus', 'listTagsResponse_httpStatus' - The response's http status code.+newListTagsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTagsResponse+newListTagsResponse pHttpStatus_ =+ ListTagsResponse'+ { tagList = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of tags as key-value pairs.+listTagsResponse_tagList :: Lens.Lens' ListTagsResponse (Prelude.Maybe [Tag])+listTagsResponse_tagList = Lens.lens (\ListTagsResponse' {tagList} -> tagList) (\s@ListTagsResponse' {} a -> s {tagList = a} :: ListTagsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsResponse_httpStatus :: Lens.Lens' ListTagsResponse Prelude.Int+listTagsResponse_httpStatus = Lens.lens (\ListTagsResponse' {httpStatus} -> httpStatus) (\s@ListTagsResponse' {} a -> s {httpStatus = a} :: ListTagsResponse)++instance Prelude.NFData ListTagsResponse where+ rnf ListTagsResponse' {..} =+ Prelude.rnf tagList+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/PurchaseReservedNodesOffering.hs view
@@ -0,0 +1,231 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.PurchaseReservedNodesOffering+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Allows you to purchase a reserved node offering. Reserved nodes are not+-- eligible for cancellation and are non-refundable.+module Amazonka.MemoryDb.PurchaseReservedNodesOffering+ ( -- * Creating a Request+ PurchaseReservedNodesOffering (..),+ newPurchaseReservedNodesOffering,++ -- * Request Lenses+ purchaseReservedNodesOffering_nodeCount,+ purchaseReservedNodesOffering_reservationId,+ purchaseReservedNodesOffering_tags,+ purchaseReservedNodesOffering_reservedNodesOfferingId,++ -- * Destructuring the Response+ PurchaseReservedNodesOfferingResponse (..),+ newPurchaseReservedNodesOfferingResponse,++ -- * Response Lenses+ purchaseReservedNodesOfferingResponse_reservedNode,+ purchaseReservedNodesOfferingResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPurchaseReservedNodesOffering' smart constructor.+data PurchaseReservedNodesOffering = PurchaseReservedNodesOffering'+ { -- | The number of node instances to reserve.+ nodeCount :: Prelude.Maybe Prelude.Int,+ -- | A customer-specified identifier to track this reservation.+ reservationId :: Prelude.Maybe Prelude.Text,+ -- | A list of tags to be added to this resource. A tag is a key-value pair.+ -- A tag key must be accompanied by a tag value, although null is accepted.+ tags :: Prelude.Maybe [Tag],+ -- | The ID of the reserved node offering to purchase.+ reservedNodesOfferingId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PurchaseReservedNodesOffering' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nodeCount', 'purchaseReservedNodesOffering_nodeCount' - The number of node instances to reserve.+--+-- 'reservationId', 'purchaseReservedNodesOffering_reservationId' - A customer-specified identifier to track this reservation.+--+-- 'tags', 'purchaseReservedNodesOffering_tags' - A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+--+-- 'reservedNodesOfferingId', 'purchaseReservedNodesOffering_reservedNodesOfferingId' - The ID of the reserved node offering to purchase.+newPurchaseReservedNodesOffering ::+ -- | 'reservedNodesOfferingId'+ Prelude.Text ->+ PurchaseReservedNodesOffering+newPurchaseReservedNodesOffering+ pReservedNodesOfferingId_ =+ PurchaseReservedNodesOffering'+ { nodeCount =+ Prelude.Nothing,+ reservationId = Prelude.Nothing,+ tags = Prelude.Nothing,+ reservedNodesOfferingId =+ pReservedNodesOfferingId_+ }++-- | The number of node instances to reserve.+purchaseReservedNodesOffering_nodeCount :: Lens.Lens' PurchaseReservedNodesOffering (Prelude.Maybe Prelude.Int)+purchaseReservedNodesOffering_nodeCount = Lens.lens (\PurchaseReservedNodesOffering' {nodeCount} -> nodeCount) (\s@PurchaseReservedNodesOffering' {} a -> s {nodeCount = a} :: PurchaseReservedNodesOffering)++-- | A customer-specified identifier to track this reservation.+purchaseReservedNodesOffering_reservationId :: Lens.Lens' PurchaseReservedNodesOffering (Prelude.Maybe Prelude.Text)+purchaseReservedNodesOffering_reservationId = Lens.lens (\PurchaseReservedNodesOffering' {reservationId} -> reservationId) (\s@PurchaseReservedNodesOffering' {} a -> s {reservationId = a} :: PurchaseReservedNodesOffering)++-- | A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+purchaseReservedNodesOffering_tags :: Lens.Lens' PurchaseReservedNodesOffering (Prelude.Maybe [Tag])+purchaseReservedNodesOffering_tags = Lens.lens (\PurchaseReservedNodesOffering' {tags} -> tags) (\s@PurchaseReservedNodesOffering' {} a -> s {tags = a} :: PurchaseReservedNodesOffering) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the reserved node offering to purchase.+purchaseReservedNodesOffering_reservedNodesOfferingId :: Lens.Lens' PurchaseReservedNodesOffering Prelude.Text+purchaseReservedNodesOffering_reservedNodesOfferingId = Lens.lens (\PurchaseReservedNodesOffering' {reservedNodesOfferingId} -> reservedNodesOfferingId) (\s@PurchaseReservedNodesOffering' {} a -> s {reservedNodesOfferingId = a} :: PurchaseReservedNodesOffering)++instance+ Core.AWSRequest+ PurchaseReservedNodesOffering+ where+ type+ AWSResponse PurchaseReservedNodesOffering =+ PurchaseReservedNodesOfferingResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ PurchaseReservedNodesOfferingResponse'+ Prelude.<$> (x Data..?> "ReservedNode")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PurchaseReservedNodesOffering+ where+ hashWithSalt _salt PurchaseReservedNodesOffering' {..} =+ _salt+ `Prelude.hashWithSalt` nodeCount+ `Prelude.hashWithSalt` reservationId+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` reservedNodesOfferingId++instance Prelude.NFData PurchaseReservedNodesOffering where+ rnf PurchaseReservedNodesOffering' {..} =+ Prelude.rnf nodeCount+ `Prelude.seq` Prelude.rnf reservationId+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf reservedNodesOfferingId++instance Data.ToHeaders PurchaseReservedNodesOffering where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.PurchaseReservedNodesOffering" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PurchaseReservedNodesOffering where+ toJSON PurchaseReservedNodesOffering' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("NodeCount" Data..=) Prelude.<$> nodeCount,+ ("ReservationId" Data..=) Prelude.<$> reservationId,+ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just+ ( "ReservedNodesOfferingId"+ Data..= reservedNodesOfferingId+ )+ ]+ )++instance Data.ToPath PurchaseReservedNodesOffering where+ toPath = Prelude.const "/"++instance Data.ToQuery PurchaseReservedNodesOffering where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPurchaseReservedNodesOfferingResponse' smart constructor.+data PurchaseReservedNodesOfferingResponse = PurchaseReservedNodesOfferingResponse'+ { -- | Represents the output of a @PurchaseReservedNodesOffering@ operation.+ reservedNode :: Prelude.Maybe ReservedNode,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PurchaseReservedNodesOfferingResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'reservedNode', 'purchaseReservedNodesOfferingResponse_reservedNode' - Represents the output of a @PurchaseReservedNodesOffering@ operation.+--+-- 'httpStatus', 'purchaseReservedNodesOfferingResponse_httpStatus' - The response's http status code.+newPurchaseReservedNodesOfferingResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PurchaseReservedNodesOfferingResponse+newPurchaseReservedNodesOfferingResponse pHttpStatus_ =+ PurchaseReservedNodesOfferingResponse'+ { reservedNode =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Represents the output of a @PurchaseReservedNodesOffering@ operation.+purchaseReservedNodesOfferingResponse_reservedNode :: Lens.Lens' PurchaseReservedNodesOfferingResponse (Prelude.Maybe ReservedNode)+purchaseReservedNodesOfferingResponse_reservedNode = Lens.lens (\PurchaseReservedNodesOfferingResponse' {reservedNode} -> reservedNode) (\s@PurchaseReservedNodesOfferingResponse' {} a -> s {reservedNode = a} :: PurchaseReservedNodesOfferingResponse)++-- | The response's http status code.+purchaseReservedNodesOfferingResponse_httpStatus :: Lens.Lens' PurchaseReservedNodesOfferingResponse Prelude.Int+purchaseReservedNodesOfferingResponse_httpStatus = Lens.lens (\PurchaseReservedNodesOfferingResponse' {httpStatus} -> httpStatus) (\s@PurchaseReservedNodesOfferingResponse' {} a -> s {httpStatus = a} :: PurchaseReservedNodesOfferingResponse)++instance+ Prelude.NFData+ PurchaseReservedNodesOfferingResponse+ where+ rnf PurchaseReservedNodesOfferingResponse' {..} =+ Prelude.rnf reservedNode+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/ResetParameterGroup.hs view
@@ -0,0 +1,217 @@+{-# 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.MemoryDb.ResetParameterGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the parameters of a parameter group to the engine or system+-- default value. You can reset specific parameters by submitting a list of+-- parameter names. To reset the entire parameter group, specify the+-- AllParameters and ParameterGroupName parameters.+module Amazonka.MemoryDb.ResetParameterGroup+ ( -- * Creating a Request+ ResetParameterGroup (..),+ newResetParameterGroup,++ -- * Request Lenses+ resetParameterGroup_allParameters,+ resetParameterGroup_parameterNames,+ resetParameterGroup_parameterGroupName,++ -- * Destructuring the Response+ ResetParameterGroupResponse (..),+ newResetParameterGroupResponse,++ -- * Response Lenses+ resetParameterGroupResponse_parameterGroup,+ resetParameterGroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newResetParameterGroup' smart constructor.+data ResetParameterGroup = ResetParameterGroup'+ { -- | If true, all parameters in the parameter group are reset to their+ -- default values. If false, only the parameters listed by ParameterNames+ -- are reset to their default values.+ allParameters :: Prelude.Maybe Prelude.Bool,+ -- | An array of parameter names to reset to their default values. If+ -- AllParameters is true, do not use ParameterNames. If AllParameters is+ -- false, you must specify the name of at least one parameter to reset.+ parameterNames :: Prelude.Maybe [Prelude.Text],+ -- | The name of the parameter group to reset.+ parameterGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResetParameterGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allParameters', 'resetParameterGroup_allParameters' - If true, all parameters in the parameter group are reset to their+-- default values. If false, only the parameters listed by ParameterNames+-- are reset to their default values.+--+-- 'parameterNames', 'resetParameterGroup_parameterNames' - An array of parameter names to reset to their default values. If+-- AllParameters is true, do not use ParameterNames. If AllParameters is+-- false, you must specify the name of at least one parameter to reset.+--+-- 'parameterGroupName', 'resetParameterGroup_parameterGroupName' - The name of the parameter group to reset.+newResetParameterGroup ::+ -- | 'parameterGroupName'+ Prelude.Text ->+ ResetParameterGroup+newResetParameterGroup pParameterGroupName_ =+ ResetParameterGroup'+ { allParameters =+ Prelude.Nothing,+ parameterNames = Prelude.Nothing,+ parameterGroupName = pParameterGroupName_+ }++-- | If true, all parameters in the parameter group are reset to their+-- default values. If false, only the parameters listed by ParameterNames+-- are reset to their default values.+resetParameterGroup_allParameters :: Lens.Lens' ResetParameterGroup (Prelude.Maybe Prelude.Bool)+resetParameterGroup_allParameters = Lens.lens (\ResetParameterGroup' {allParameters} -> allParameters) (\s@ResetParameterGroup' {} a -> s {allParameters = a} :: ResetParameterGroup)++-- | An array of parameter names to reset to their default values. If+-- AllParameters is true, do not use ParameterNames. If AllParameters is+-- false, you must specify the name of at least one parameter to reset.+resetParameterGroup_parameterNames :: Lens.Lens' ResetParameterGroup (Prelude.Maybe [Prelude.Text])+resetParameterGroup_parameterNames = Lens.lens (\ResetParameterGroup' {parameterNames} -> parameterNames) (\s@ResetParameterGroup' {} a -> s {parameterNames = a} :: ResetParameterGroup) Prelude.. Lens.mapping Lens.coerced++-- | The name of the parameter group to reset.+resetParameterGroup_parameterGroupName :: Lens.Lens' ResetParameterGroup Prelude.Text+resetParameterGroup_parameterGroupName = Lens.lens (\ResetParameterGroup' {parameterGroupName} -> parameterGroupName) (\s@ResetParameterGroup' {} a -> s {parameterGroupName = a} :: ResetParameterGroup)++instance Core.AWSRequest ResetParameterGroup where+ type+ AWSResponse ResetParameterGroup =+ ResetParameterGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ResetParameterGroupResponse'+ Prelude.<$> (x Data..?> "ParameterGroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ResetParameterGroup where+ hashWithSalt _salt ResetParameterGroup' {..} =+ _salt+ `Prelude.hashWithSalt` allParameters+ `Prelude.hashWithSalt` parameterNames+ `Prelude.hashWithSalt` parameterGroupName++instance Prelude.NFData ResetParameterGroup where+ rnf ResetParameterGroup' {..} =+ Prelude.rnf allParameters+ `Prelude.seq` Prelude.rnf parameterNames+ `Prelude.seq` Prelude.rnf parameterGroupName++instance Data.ToHeaders ResetParameterGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.ResetParameterGroup" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ResetParameterGroup where+ toJSON ResetParameterGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AllParameters" Data..=) Prelude.<$> allParameters,+ ("ParameterNames" Data..=)+ Prelude.<$> parameterNames,+ Prelude.Just+ ("ParameterGroupName" Data..= parameterGroupName)+ ]+ )++instance Data.ToPath ResetParameterGroup where+ toPath = Prelude.const "/"++instance Data.ToQuery ResetParameterGroup where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newResetParameterGroupResponse' smart constructor.+data ResetParameterGroupResponse = ResetParameterGroupResponse'+ { -- | The parameter group being reset.+ parameterGroup :: Prelude.Maybe ParameterGroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResetParameterGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'parameterGroup', 'resetParameterGroupResponse_parameterGroup' - The parameter group being reset.+--+-- 'httpStatus', 'resetParameterGroupResponse_httpStatus' - The response's http status code.+newResetParameterGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ResetParameterGroupResponse+newResetParameterGroupResponse pHttpStatus_ =+ ResetParameterGroupResponse'+ { parameterGroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The parameter group being reset.+resetParameterGroupResponse_parameterGroup :: Lens.Lens' ResetParameterGroupResponse (Prelude.Maybe ParameterGroup)+resetParameterGroupResponse_parameterGroup = Lens.lens (\ResetParameterGroupResponse' {parameterGroup} -> parameterGroup) (\s@ResetParameterGroupResponse' {} a -> s {parameterGroup = a} :: ResetParameterGroupResponse)++-- | The response's http status code.+resetParameterGroupResponse_httpStatus :: Lens.Lens' ResetParameterGroupResponse Prelude.Int+resetParameterGroupResponse_httpStatus = Lens.lens (\ResetParameterGroupResponse' {httpStatus} -> httpStatus) (\s@ResetParameterGroupResponse' {} a -> s {httpStatus = a} :: ResetParameterGroupResponse)++instance Prelude.NFData ResetParameterGroupResponse where+ rnf ResetParameterGroupResponse' {..} =+ Prelude.rnf parameterGroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/TagResource.hs view
@@ -0,0 +1,199 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.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)+--+-- A tag is a key-value pair where the key and value are case-sensitive.+-- You can use tags to categorize and track all your MemoryDB resources.+-- When you add or remove tags on clusters, those actions will be+-- replicated to all nodes in the cluster. For more information, see+-- <https://docs.aws.amazon.com/MemoryDB/latest/devguide/iam.resourcelevelpermissions.html Resource-level permissions>.+--+-- For example, you can use cost-allocation tags to your MemoryDB+-- resources, Amazon generates a cost allocation report as a+-- comma-separated value (CSV) file with your usage and costs aggregated by+-- your tags. You can apply tags that represent business categories (such+-- as cost centers, application names, or owners) to organize your costs+-- across multiple services. For more information, see+-- <https://docs.aws.amazon.com/MemoryDB/latest/devguide/tagging.html Using Cost Allocation Tags>.+module Amazonka.MemoryDb.TagResource+ ( -- * Creating a Request+ TagResource (..),+ newTagResource,++ -- * Request Lenses+ tagResource_resourceArn,+ tagResource_tags,++ -- * Destructuring the Response+ TagResourceResponse (..),+ newTagResourceResponse,++ -- * Response Lenses+ tagResourceResponse_tagList,+ 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.MemoryDb.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 to which the tags are to+ -- be added+ resourceArn :: Prelude.Text,+ -- | A list of tags to be added to this resource. A tag is a key-value pair.+ -- A tag key must be accompanied by a tag value, although null is accepted.+ tags :: [Tag]+ }+ 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 to which the tags are to+-- be added+--+-- 'tags', 'tagResource_tags' - A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+newTagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ TagResource+newTagResource pResourceArn_ =+ TagResource'+ { resourceArn = pResourceArn_,+ tags = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the resource to which the tags are to+-- be added+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | A list of tags to be added to this resource. A tag is a key-value pair.+-- A tag key must be accompanied by a tag value, although null is accepted.+tagResource_tags :: Lens.Lens' TagResource [Tag]+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.receiveJSON+ ( \s h x ->+ TagResourceResponse'+ Prelude.<$> (x Data..?> "TagList" Core..!@ Prelude.mempty)+ 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+ [ "X-Amz-Target"+ Data.=# ("AmazonMemoryDB.TagResource" :: Prelude.ByteString),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON TagResource where+ toJSON TagResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("ResourceArn" Data..= resourceArn),+ Prelude.Just ("Tags" Data..= tags)+ ]+ )++instance Data.ToPath TagResource where+ toPath = Prelude.const "/"++instance Data.ToQuery TagResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+ { -- | A list of tags as key-value pairs.+ tagList :: Prelude.Maybe [Tag],+ -- | 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:+--+-- 'tagList', 'tagResourceResponse_tagList' - A list of tags as key-value pairs.+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ TagResourceResponse+newTagResourceResponse pHttpStatus_ =+ TagResourceResponse'+ { tagList = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of tags as key-value pairs.+tagResourceResponse_tagList :: Lens.Lens' TagResourceResponse (Prelude.Maybe [Tag])+tagResourceResponse_tagList = Lens.lens (\TagResourceResponse' {tagList} -> tagList) (\s@TagResourceResponse' {} a -> s {tagList = a} :: TagResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | 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 tagList+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/Types.hs view
@@ -0,0 +1,845 @@+{-# 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.MemoryDb.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.MemoryDb.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _ACLAlreadyExistsFault,+ _ACLNotFoundFault,+ _ACLQuotaExceededFault,+ _APICallRateForCustomerExceededFault,+ _ClusterAlreadyExistsFault,+ _ClusterNotFoundFault,+ _ClusterQuotaForCustomerExceededFault,+ _DefaultUserRequired,+ _DuplicateUserNameFault,+ _InsufficientClusterCapacityFault,+ _InvalidACLStateFault,+ _InvalidARNFault,+ _InvalidClusterStateFault,+ _InvalidCredentialsException,+ _InvalidKMSKeyFault,+ _InvalidNodeStateFault,+ _InvalidParameterCombinationException,+ _InvalidParameterGroupStateFault,+ _InvalidParameterValueException,+ _InvalidSnapshotStateFault,+ _InvalidSubnet,+ _InvalidUserStateFault,+ _InvalidVPCNetworkStateFault,+ _NoOperationFault,+ _NodeQuotaForClusterExceededFault,+ _NodeQuotaForCustomerExceededFault,+ _ParameterGroupAlreadyExistsFault,+ _ParameterGroupNotFoundFault,+ _ParameterGroupQuotaExceededFault,+ _ReservedNodeAlreadyExistsFault,+ _ReservedNodeNotFoundFault,+ _ReservedNodeQuotaExceededFault,+ _ReservedNodesOfferingNotFoundFault,+ _ServiceLinkedRoleNotFoundFault,+ _ServiceUpdateNotFoundFault,+ _ShardNotFoundFault,+ _ShardsPerClusterQuotaExceededFault,+ _SnapshotAlreadyExistsFault,+ _SnapshotNotFoundFault,+ _SnapshotQuotaExceededFault,+ _SubnetGroupAlreadyExistsFault,+ _SubnetGroupInUseFault,+ _SubnetGroupNotFoundFault,+ _SubnetGroupQuotaExceededFault,+ _SubnetInUse,+ _SubnetNotAllowedFault,+ _SubnetQuotaExceededFault,+ _TagNotFoundFault,+ _TagQuotaPerResourceExceeded,+ _TestFailoverNotAvailableFault,+ _UserAlreadyExistsFault,+ _UserNotFoundFault,+ _UserQuotaExceededFault,++ -- * AZStatus+ AZStatus (..),++ -- * AuthenticationType+ AuthenticationType (..),++ -- * DataTieringStatus+ DataTieringStatus (..),++ -- * InputAuthenticationType+ InputAuthenticationType (..),++ -- * ServiceUpdateStatus+ ServiceUpdateStatus (..),++ -- * ServiceUpdateType+ ServiceUpdateType (..),++ -- * SourceType+ SourceType (..),++ -- * ACL+ ACL (..),+ newACL,+ acl_arn,+ acl_clusters,+ acl_minimumEngineVersion,+ acl_name,+ acl_pendingChanges,+ acl_status,+ acl_userNames,++ -- * ACLPendingChanges+ ACLPendingChanges (..),+ newACLPendingChanges,+ aCLPendingChanges_userNamesToAdd,+ aCLPendingChanges_userNamesToRemove,++ -- * ACLsUpdateStatus+ ACLsUpdateStatus (..),+ newACLsUpdateStatus,+ aCLsUpdateStatus_aCLToApply,++ -- * Authentication+ Authentication (..),+ newAuthentication,+ authentication_passwordCount,+ authentication_type,++ -- * AuthenticationMode+ AuthenticationMode (..),+ newAuthenticationMode,+ authenticationMode_passwords,+ authenticationMode_type,++ -- * AvailabilityZone+ AvailabilityZone (..),+ newAvailabilityZone,+ availabilityZone_name,++ -- * Cluster+ Cluster (..),+ newCluster,+ cluster_aCLName,+ cluster_arn,+ cluster_autoMinorVersionUpgrade,+ cluster_availabilityMode,+ cluster_clusterEndpoint,+ cluster_dataTiering,+ cluster_description,+ cluster_enginePatchVersion,+ cluster_engineVersion,+ cluster_kmsKeyId,+ cluster_maintenanceWindow,+ cluster_name,+ cluster_nodeType,+ cluster_numberOfShards,+ cluster_parameterGroupName,+ cluster_parameterGroupStatus,+ cluster_pendingUpdates,+ cluster_securityGroups,+ cluster_shards,+ cluster_snapshotRetentionLimit,+ cluster_snapshotWindow,+ cluster_snsTopicArn,+ cluster_snsTopicStatus,+ cluster_status,+ cluster_subnetGroupName,+ cluster_tLSEnabled,++ -- * ClusterConfiguration+ ClusterConfiguration (..),+ newClusterConfiguration,+ clusterConfiguration_description,+ clusterConfiguration_engineVersion,+ clusterConfiguration_maintenanceWindow,+ clusterConfiguration_name,+ clusterConfiguration_nodeType,+ clusterConfiguration_numShards,+ clusterConfiguration_parameterGroupName,+ clusterConfiguration_port,+ clusterConfiguration_shards,+ clusterConfiguration_snapshotRetentionLimit,+ clusterConfiguration_snapshotWindow,+ clusterConfiguration_subnetGroupName,+ clusterConfiguration_topicArn,+ clusterConfiguration_vpcId,++ -- * ClusterPendingUpdates+ ClusterPendingUpdates (..),+ newClusterPendingUpdates,+ clusterPendingUpdates_aCLs,+ clusterPendingUpdates_resharding,+ clusterPendingUpdates_serviceUpdates,++ -- * Endpoint+ Endpoint (..),+ newEndpoint,+ endpoint_address,+ endpoint_port,++ -- * EngineVersionInfo+ EngineVersionInfo (..),+ newEngineVersionInfo,+ engineVersionInfo_enginePatchVersion,+ engineVersionInfo_engineVersion,+ engineVersionInfo_parameterGroupFamily,++ -- * Event+ Event (..),+ newEvent,+ event_date,+ event_message,+ event_sourceName,+ event_sourceType,++ -- * Filter+ Filter (..),+ newFilter,+ filter_name,+ filter_values,++ -- * Node+ Node (..),+ newNode,+ node_availabilityZone,+ node_createTime,+ node_endpoint,+ node_name,+ node_status,++ -- * Parameter+ Parameter (..),+ newParameter,+ parameter_allowedValues,+ parameter_dataType,+ parameter_description,+ parameter_minimumEngineVersion,+ parameter_name,+ parameter_value,++ -- * ParameterGroup+ ParameterGroup (..),+ newParameterGroup,+ parameterGroup_arn,+ parameterGroup_description,+ parameterGroup_family,+ parameterGroup_name,++ -- * ParameterNameValue+ ParameterNameValue (..),+ newParameterNameValue,+ parameterNameValue_parameterName,+ parameterNameValue_parameterValue,++ -- * PendingModifiedServiceUpdate+ PendingModifiedServiceUpdate (..),+ newPendingModifiedServiceUpdate,+ pendingModifiedServiceUpdate_serviceUpdateName,+ pendingModifiedServiceUpdate_status,++ -- * RecurringCharge+ RecurringCharge (..),+ newRecurringCharge,+ recurringCharge_recurringChargeAmount,+ recurringCharge_recurringChargeFrequency,++ -- * ReplicaConfigurationRequest+ ReplicaConfigurationRequest (..),+ newReplicaConfigurationRequest,+ replicaConfigurationRequest_replicaCount,++ -- * ReservedNode+ ReservedNode (..),+ newReservedNode,+ reservedNode_arn,+ reservedNode_duration,+ reservedNode_fixedPrice,+ reservedNode_nodeCount,+ reservedNode_nodeType,+ reservedNode_offeringType,+ reservedNode_recurringCharges,+ reservedNode_reservationId,+ reservedNode_reservedNodesOfferingId,+ reservedNode_startTime,+ reservedNode_state,++ -- * ReservedNodesOffering+ ReservedNodesOffering (..),+ newReservedNodesOffering,+ reservedNodesOffering_duration,+ reservedNodesOffering_fixedPrice,+ reservedNodesOffering_nodeType,+ reservedNodesOffering_offeringType,+ reservedNodesOffering_recurringCharges,+ reservedNodesOffering_reservedNodesOfferingId,++ -- * ReshardingStatus+ ReshardingStatus (..),+ newReshardingStatus,+ reshardingStatus_slotMigration,++ -- * SecurityGroupMembership+ SecurityGroupMembership (..),+ newSecurityGroupMembership,+ securityGroupMembership_securityGroupId,+ securityGroupMembership_status,++ -- * ServiceUpdate+ ServiceUpdate (..),+ newServiceUpdate,+ serviceUpdate_autoUpdateStartDate,+ serviceUpdate_clusterName,+ serviceUpdate_description,+ serviceUpdate_nodesUpdated,+ serviceUpdate_releaseDate,+ serviceUpdate_serviceUpdateName,+ serviceUpdate_status,+ serviceUpdate_type,++ -- * ServiceUpdateRequest+ ServiceUpdateRequest (..),+ newServiceUpdateRequest,+ serviceUpdateRequest_serviceUpdateNameToApply,++ -- * Shard+ Shard (..),+ newShard,+ shard_name,+ shard_nodes,+ shard_numberOfNodes,+ shard_slots,+ shard_status,++ -- * ShardConfiguration+ ShardConfiguration (..),+ newShardConfiguration,+ shardConfiguration_replicaCount,+ shardConfiguration_slots,++ -- * ShardConfigurationRequest+ ShardConfigurationRequest (..),+ newShardConfigurationRequest,+ shardConfigurationRequest_shardCount,++ -- * ShardDetail+ ShardDetail (..),+ newShardDetail,+ shardDetail_configuration,+ shardDetail_name,+ shardDetail_size,+ shardDetail_snapshotCreationTime,++ -- * SlotMigration+ SlotMigration (..),+ newSlotMigration,+ slotMigration_progressPercentage,++ -- * Snapshot+ Snapshot (..),+ newSnapshot,+ snapshot_arn,+ snapshot_clusterConfiguration,+ snapshot_dataTiering,+ snapshot_kmsKeyId,+ snapshot_name,+ snapshot_source,+ snapshot_status,++ -- * Subnet+ Subnet (..),+ newSubnet,+ subnet_availabilityZone,+ subnet_identifier,++ -- * SubnetGroup+ SubnetGroup (..),+ newSubnetGroup,+ subnetGroup_arn,+ subnetGroup_description,+ subnetGroup_name,+ subnetGroup_subnets,+ subnetGroup_vpcId,++ -- * Tag+ Tag (..),+ newTag,+ tag_key,+ tag_value,++ -- * UnprocessedCluster+ UnprocessedCluster (..),+ newUnprocessedCluster,+ unprocessedCluster_clusterName,+ unprocessedCluster_errorMessage,+ unprocessedCluster_errorType,++ -- * User+ User (..),+ newUser,+ user_aCLNames,+ user_arn,+ user_accessString,+ user_authentication,+ user_minimumEngineVersion,+ user_name,+ user_status,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.MemoryDb.Types.ACL+import Amazonka.MemoryDb.Types.ACLPendingChanges+import Amazonka.MemoryDb.Types.ACLsUpdateStatus+import Amazonka.MemoryDb.Types.AZStatus+import Amazonka.MemoryDb.Types.Authentication+import Amazonka.MemoryDb.Types.AuthenticationMode+import Amazonka.MemoryDb.Types.AuthenticationType+import Amazonka.MemoryDb.Types.AvailabilityZone+import Amazonka.MemoryDb.Types.Cluster+import Amazonka.MemoryDb.Types.ClusterConfiguration+import Amazonka.MemoryDb.Types.ClusterPendingUpdates+import Amazonka.MemoryDb.Types.DataTieringStatus+import Amazonka.MemoryDb.Types.Endpoint+import Amazonka.MemoryDb.Types.EngineVersionInfo+import Amazonka.MemoryDb.Types.Event+import Amazonka.MemoryDb.Types.Filter+import Amazonka.MemoryDb.Types.InputAuthenticationType+import Amazonka.MemoryDb.Types.Node+import Amazonka.MemoryDb.Types.Parameter+import Amazonka.MemoryDb.Types.ParameterGroup+import Amazonka.MemoryDb.Types.ParameterNameValue+import Amazonka.MemoryDb.Types.PendingModifiedServiceUpdate+import Amazonka.MemoryDb.Types.RecurringCharge+import Amazonka.MemoryDb.Types.ReplicaConfigurationRequest+import Amazonka.MemoryDb.Types.ReservedNode+import Amazonka.MemoryDb.Types.ReservedNodesOffering+import Amazonka.MemoryDb.Types.ReshardingStatus+import Amazonka.MemoryDb.Types.SecurityGroupMembership+import Amazonka.MemoryDb.Types.ServiceUpdate+import Amazonka.MemoryDb.Types.ServiceUpdateRequest+import Amazonka.MemoryDb.Types.ServiceUpdateStatus+import Amazonka.MemoryDb.Types.ServiceUpdateType+import Amazonka.MemoryDb.Types.Shard+import Amazonka.MemoryDb.Types.ShardConfiguration+import Amazonka.MemoryDb.Types.ShardConfigurationRequest+import Amazonka.MemoryDb.Types.ShardDetail+import Amazonka.MemoryDb.Types.SlotMigration+import Amazonka.MemoryDb.Types.Snapshot+import Amazonka.MemoryDb.Types.SourceType+import Amazonka.MemoryDb.Types.Subnet+import Amazonka.MemoryDb.Types.SubnetGroup+import Amazonka.MemoryDb.Types.Tag+import Amazonka.MemoryDb.Types.UnprocessedCluster+import Amazonka.MemoryDb.Types.User+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2021-01-01@ of the Amazon MemoryDB SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "MemoryDb",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "memory-db",+ Core.signingName = "memorydb",+ Core.version = "2021-01-01",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "MemoryDb",+ 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++_ACLAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ACLAlreadyExistsFault =+ Core._MatchServiceError+ defaultService+ "ACLAlreadyExistsFault"++_ACLNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ACLNotFoundFault =+ Core._MatchServiceError+ defaultService+ "ACLNotFoundFault"++_ACLQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ACLQuotaExceededFault =+ Core._MatchServiceError+ defaultService+ "ACLQuotaExceededFault"++_APICallRateForCustomerExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_APICallRateForCustomerExceededFault =+ Core._MatchServiceError+ defaultService+ "APICallRateForCustomerExceededFault"++_ClusterAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ClusterAlreadyExistsFault =+ Core._MatchServiceError+ defaultService+ "ClusterAlreadyExistsFault"++_ClusterNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ClusterNotFoundFault =+ Core._MatchServiceError+ defaultService+ "ClusterNotFoundFault"++_ClusterQuotaForCustomerExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ClusterQuotaForCustomerExceededFault =+ Core._MatchServiceError+ defaultService+ "ClusterQuotaForCustomerExceededFault"++_DefaultUserRequired :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DefaultUserRequired =+ Core._MatchServiceError+ defaultService+ "DefaultUserRequired"++_DuplicateUserNameFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DuplicateUserNameFault =+ Core._MatchServiceError+ defaultService+ "DuplicateUserNameFault"++_InsufficientClusterCapacityFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InsufficientClusterCapacityFault =+ Core._MatchServiceError+ defaultService+ "InsufficientClusterCapacityFault"++_InvalidACLStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidACLStateFault =+ Core._MatchServiceError+ defaultService+ "InvalidACLStateFault"++_InvalidARNFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidARNFault =+ Core._MatchServiceError+ defaultService+ "InvalidARNFault"++_InvalidClusterStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidClusterStateFault =+ Core._MatchServiceError+ defaultService+ "InvalidClusterStateFault"++_InvalidCredentialsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidCredentialsException =+ Core._MatchServiceError+ defaultService+ "InvalidCredentialsException"++_InvalidKMSKeyFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidKMSKeyFault =+ Core._MatchServiceError+ defaultService+ "InvalidKMSKeyFault"++_InvalidNodeStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidNodeStateFault =+ Core._MatchServiceError+ defaultService+ "InvalidNodeStateFault"++_InvalidParameterCombinationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidParameterCombinationException =+ Core._MatchServiceError+ defaultService+ "InvalidParameterCombinationException"++_InvalidParameterGroupStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidParameterGroupStateFault =+ Core._MatchServiceError+ defaultService+ "InvalidParameterGroupStateFault"++_InvalidParameterValueException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidParameterValueException =+ Core._MatchServiceError+ defaultService+ "InvalidParameterValueException"++_InvalidSnapshotStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidSnapshotStateFault =+ Core._MatchServiceError+ defaultService+ "InvalidSnapshotStateFault"++_InvalidSubnet :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidSubnet =+ Core._MatchServiceError+ defaultService+ "InvalidSubnet"++_InvalidUserStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidUserStateFault =+ Core._MatchServiceError+ defaultService+ "InvalidUserStateFault"++_InvalidVPCNetworkStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidVPCNetworkStateFault =+ Core._MatchServiceError+ defaultService+ "InvalidVPCNetworkStateFault"++_NoOperationFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_NoOperationFault =+ Core._MatchServiceError+ defaultService+ "NoOperationFault"++_NodeQuotaForClusterExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_NodeQuotaForClusterExceededFault =+ Core._MatchServiceError+ defaultService+ "NodeQuotaForClusterExceededFault"++_NodeQuotaForCustomerExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_NodeQuotaForCustomerExceededFault =+ Core._MatchServiceError+ defaultService+ "NodeQuotaForCustomerExceededFault"++_ParameterGroupAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ParameterGroupAlreadyExistsFault =+ Core._MatchServiceError+ defaultService+ "ParameterGroupAlreadyExistsFault"++_ParameterGroupNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ParameterGroupNotFoundFault =+ Core._MatchServiceError+ defaultService+ "ParameterGroupNotFoundFault"++_ParameterGroupQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ParameterGroupQuotaExceededFault =+ Core._MatchServiceError+ defaultService+ "ParameterGroupQuotaExceededFault"++-- | You already have a reservation with the given identifier.+_ReservedNodeAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ReservedNodeAlreadyExistsFault =+ Core._MatchServiceError+ defaultService+ "ReservedNodeAlreadyExistsFault"++-- | The requested node does not exist.+_ReservedNodeNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ReservedNodeNotFoundFault =+ Core._MatchServiceError+ defaultService+ "ReservedNodeNotFoundFault"++-- | The request cannot be processed because it would exceed the user\'s node+-- quota.+_ReservedNodeQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ReservedNodeQuotaExceededFault =+ Core._MatchServiceError+ defaultService+ "ReservedNodeQuotaExceededFault"++-- | The requested node offering does not exist.+_ReservedNodesOfferingNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ReservedNodesOfferingNotFoundFault =+ Core._MatchServiceError+ defaultService+ "ReservedNodesOfferingNotFoundFault"++_ServiceLinkedRoleNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceLinkedRoleNotFoundFault =+ Core._MatchServiceError+ defaultService+ "ServiceLinkedRoleNotFoundFault"++_ServiceUpdateNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceUpdateNotFoundFault =+ Core._MatchServiceError+ defaultService+ "ServiceUpdateNotFoundFault"++_ShardNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ShardNotFoundFault =+ Core._MatchServiceError+ defaultService+ "ShardNotFoundFault"++_ShardsPerClusterQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ShardsPerClusterQuotaExceededFault =+ Core._MatchServiceError+ defaultService+ "ShardsPerClusterQuotaExceededFault"++_SnapshotAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SnapshotAlreadyExistsFault =+ Core._MatchServiceError+ defaultService+ "SnapshotAlreadyExistsFault"++_SnapshotNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SnapshotNotFoundFault =+ Core._MatchServiceError+ defaultService+ "SnapshotNotFoundFault"++_SnapshotQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SnapshotQuotaExceededFault =+ Core._MatchServiceError+ defaultService+ "SnapshotQuotaExceededFault"++_SubnetGroupAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SubnetGroupAlreadyExistsFault =+ Core._MatchServiceError+ defaultService+ "SubnetGroupAlreadyExistsFault"++_SubnetGroupInUseFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SubnetGroupInUseFault =+ Core._MatchServiceError+ defaultService+ "SubnetGroupInUseFault"++_SubnetGroupNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SubnetGroupNotFoundFault =+ Core._MatchServiceError+ defaultService+ "SubnetGroupNotFoundFault"++_SubnetGroupQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SubnetGroupQuotaExceededFault =+ Core._MatchServiceError+ defaultService+ "SubnetGroupQuotaExceededFault"++_SubnetInUse :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SubnetInUse =+ Core._MatchServiceError+ defaultService+ "SubnetInUse"++_SubnetNotAllowedFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SubnetNotAllowedFault =+ Core._MatchServiceError+ defaultService+ "SubnetNotAllowedFault"++_SubnetQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SubnetQuotaExceededFault =+ Core._MatchServiceError+ defaultService+ "SubnetQuotaExceededFault"++_TagNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TagNotFoundFault =+ Core._MatchServiceError+ defaultService+ "TagNotFoundFault"++_TagQuotaPerResourceExceeded :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TagQuotaPerResourceExceeded =+ Core._MatchServiceError+ defaultService+ "TagQuotaPerResourceExceeded"++_TestFailoverNotAvailableFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TestFailoverNotAvailableFault =+ Core._MatchServiceError+ defaultService+ "TestFailoverNotAvailableFault"++_UserAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UserAlreadyExistsFault =+ Core._MatchServiceError+ defaultService+ "UserAlreadyExistsFault"++_UserNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UserNotFoundFault =+ Core._MatchServiceError+ defaultService+ "UserNotFoundFault"++_UserQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UserQuotaExceededFault =+ Core._MatchServiceError+ defaultService+ "UserQuotaExceededFault"
+ gen/Amazonka/MemoryDb/Types/ACL.hs view
@@ -0,0 +1,151 @@+{-# 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.MemoryDb.Types.ACL+-- 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.MemoryDb.Types.ACL where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.ACLPendingChanges+import qualified Amazonka.Prelude as Prelude++-- | An Access Control List. You can authenticate users with Access Contol+-- Lists. ACLs enable you to control cluster access by grouping users.+-- These Access control lists are designed as a way to organize access to+-- clusters.+--+-- /See:/ 'newACL' smart constructor.+data ACL = ACL'+ { -- | The Amazon Resource Name (ARN) of the ACL+ arn :: Prelude.Maybe Prelude.Text,+ -- | A list of clusters associated with the ACL.+ clusters :: Prelude.Maybe [Prelude.Text],+ -- | The minimum engine version supported for the ACL+ minimumEngineVersion :: Prelude.Maybe Prelude.Text,+ -- | The name of the Access Control List+ name :: Prelude.Maybe Prelude.Text,+ -- | A list of updates being applied to the ACL.+ pendingChanges :: Prelude.Maybe ACLPendingChanges,+ -- | Indicates ACL status. Can be \"creating\", \"active\", \"modifying\",+ -- \"deleting\".+ status :: Prelude.Maybe Prelude.Text,+ -- | The list of user names that belong to the ACL.+ userNames :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ACL' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'acl_arn' - The Amazon Resource Name (ARN) of the ACL+--+-- 'clusters', 'acl_clusters' - A list of clusters associated with the ACL.+--+-- 'minimumEngineVersion', 'acl_minimumEngineVersion' - The minimum engine version supported for the ACL+--+-- 'name', 'acl_name' - The name of the Access Control List+--+-- 'pendingChanges', 'acl_pendingChanges' - A list of updates being applied to the ACL.+--+-- 'status', 'acl_status' - Indicates ACL status. Can be \"creating\", \"active\", \"modifying\",+-- \"deleting\".+--+-- 'userNames', 'acl_userNames' - The list of user names that belong to the ACL.+newACL ::+ ACL+newACL =+ ACL'+ { arn = Prelude.Nothing,+ clusters = Prelude.Nothing,+ minimumEngineVersion = Prelude.Nothing,+ name = Prelude.Nothing,+ pendingChanges = Prelude.Nothing,+ status = Prelude.Nothing,+ userNames = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the ACL+acl_arn :: Lens.Lens' ACL (Prelude.Maybe Prelude.Text)+acl_arn = Lens.lens (\ACL' {arn} -> arn) (\s@ACL' {} a -> s {arn = a} :: ACL)++-- | A list of clusters associated with the ACL.+acl_clusters :: Lens.Lens' ACL (Prelude.Maybe [Prelude.Text])+acl_clusters = Lens.lens (\ACL' {clusters} -> clusters) (\s@ACL' {} a -> s {clusters = a} :: ACL) Prelude.. Lens.mapping Lens.coerced++-- | The minimum engine version supported for the ACL+acl_minimumEngineVersion :: Lens.Lens' ACL (Prelude.Maybe Prelude.Text)+acl_minimumEngineVersion = Lens.lens (\ACL' {minimumEngineVersion} -> minimumEngineVersion) (\s@ACL' {} a -> s {minimumEngineVersion = a} :: ACL)++-- | The name of the Access Control List+acl_name :: Lens.Lens' ACL (Prelude.Maybe Prelude.Text)+acl_name = Lens.lens (\ACL' {name} -> name) (\s@ACL' {} a -> s {name = a} :: ACL)++-- | A list of updates being applied to the ACL.+acl_pendingChanges :: Lens.Lens' ACL (Prelude.Maybe ACLPendingChanges)+acl_pendingChanges = Lens.lens (\ACL' {pendingChanges} -> pendingChanges) (\s@ACL' {} a -> s {pendingChanges = a} :: ACL)++-- | Indicates ACL status. Can be \"creating\", \"active\", \"modifying\",+-- \"deleting\".+acl_status :: Lens.Lens' ACL (Prelude.Maybe Prelude.Text)+acl_status = Lens.lens (\ACL' {status} -> status) (\s@ACL' {} a -> s {status = a} :: ACL)++-- | The list of user names that belong to the ACL.+acl_userNames :: Lens.Lens' ACL (Prelude.Maybe [Prelude.Text])+acl_userNames = Lens.lens (\ACL' {userNames} -> userNames) (\s@ACL' {} a -> s {userNames = a} :: ACL) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ACL where+ parseJSON =+ Data.withObject+ "ACL"+ ( \x ->+ ACL'+ Prelude.<$> (x Data..:? "ARN")+ Prelude.<*> (x Data..:? "Clusters" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "MinimumEngineVersion")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "PendingChanges")+ Prelude.<*> (x Data..:? "Status")+ Prelude.<*> (x Data..:? "UserNames" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ACL where+ hashWithSalt _salt ACL' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` clusters+ `Prelude.hashWithSalt` minimumEngineVersion+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` pendingChanges+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` userNames++instance Prelude.NFData ACL where+ rnf ACL' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf clusters+ `Prelude.seq` Prelude.rnf minimumEngineVersion+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf pendingChanges+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf userNames
+ gen/Amazonka/MemoryDb/Types/ACLPendingChanges.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.MemoryDb.Types.ACLPendingChanges+-- 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.MemoryDb.Types.ACLPendingChanges 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++-- | Returns the updates being applied to the ACL.+--+-- /See:/ 'newACLPendingChanges' smart constructor.+data ACLPendingChanges = ACLPendingChanges'+ { -- | A list of users being added to the ACL+ userNamesToAdd :: Prelude.Maybe [Prelude.Text],+ -- | A list of user names being removed from the ACL+ userNamesToRemove :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ACLPendingChanges' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'userNamesToAdd', 'aCLPendingChanges_userNamesToAdd' - A list of users being added to the ACL+--+-- 'userNamesToRemove', 'aCLPendingChanges_userNamesToRemove' - A list of user names being removed from the ACL+newACLPendingChanges ::+ ACLPendingChanges+newACLPendingChanges =+ ACLPendingChanges'+ { userNamesToAdd =+ Prelude.Nothing,+ userNamesToRemove = Prelude.Nothing+ }++-- | A list of users being added to the ACL+aCLPendingChanges_userNamesToAdd :: Lens.Lens' ACLPendingChanges (Prelude.Maybe [Prelude.Text])+aCLPendingChanges_userNamesToAdd = Lens.lens (\ACLPendingChanges' {userNamesToAdd} -> userNamesToAdd) (\s@ACLPendingChanges' {} a -> s {userNamesToAdd = a} :: ACLPendingChanges) Prelude.. Lens.mapping Lens.coerced++-- | A list of user names being removed from the ACL+aCLPendingChanges_userNamesToRemove :: Lens.Lens' ACLPendingChanges (Prelude.Maybe [Prelude.Text])+aCLPendingChanges_userNamesToRemove = Lens.lens (\ACLPendingChanges' {userNamesToRemove} -> userNamesToRemove) (\s@ACLPendingChanges' {} a -> s {userNamesToRemove = a} :: ACLPendingChanges) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ACLPendingChanges where+ parseJSON =+ Data.withObject+ "ACLPendingChanges"+ ( \x ->+ ACLPendingChanges'+ Prelude.<$> (x Data..:? "UserNamesToAdd" Data..!= Prelude.mempty)+ Prelude.<*> ( x+ Data..:? "UserNamesToRemove"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable ACLPendingChanges where+ hashWithSalt _salt ACLPendingChanges' {..} =+ _salt+ `Prelude.hashWithSalt` userNamesToAdd+ `Prelude.hashWithSalt` userNamesToRemove++instance Prelude.NFData ACLPendingChanges where+ rnf ACLPendingChanges' {..} =+ Prelude.rnf userNamesToAdd+ `Prelude.seq` Prelude.rnf userNamesToRemove
+ gen/Amazonka/MemoryDb/Types/ACLsUpdateStatus.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.MemoryDb.Types.ACLsUpdateStatus+-- 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.MemoryDb.Types.ACLsUpdateStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The status of the ACL update+--+-- /See:/ 'newACLsUpdateStatus' smart constructor.+data ACLsUpdateStatus = ACLsUpdateStatus'+ { -- | A list of ACLs pending to be applied.+ aCLToApply :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ACLsUpdateStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'aCLToApply', 'aCLsUpdateStatus_aCLToApply' - A list of ACLs pending to be applied.+newACLsUpdateStatus ::+ ACLsUpdateStatus+newACLsUpdateStatus =+ ACLsUpdateStatus' {aCLToApply = Prelude.Nothing}++-- | A list of ACLs pending to be applied.+aCLsUpdateStatus_aCLToApply :: Lens.Lens' ACLsUpdateStatus (Prelude.Maybe Prelude.Text)+aCLsUpdateStatus_aCLToApply = Lens.lens (\ACLsUpdateStatus' {aCLToApply} -> aCLToApply) (\s@ACLsUpdateStatus' {} a -> s {aCLToApply = a} :: ACLsUpdateStatus)++instance Data.FromJSON ACLsUpdateStatus where+ parseJSON =+ Data.withObject+ "ACLsUpdateStatus"+ ( \x ->+ ACLsUpdateStatus'+ Prelude.<$> (x Data..:? "ACLToApply")+ )++instance Prelude.Hashable ACLsUpdateStatus where+ hashWithSalt _salt ACLsUpdateStatus' {..} =+ _salt `Prelude.hashWithSalt` aCLToApply++instance Prelude.NFData ACLsUpdateStatus where+ rnf ACLsUpdateStatus' {..} = Prelude.rnf aCLToApply
+ gen/Amazonka/MemoryDb/Types/AZStatus.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.Types.AZStatus+-- 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.MemoryDb.Types.AZStatus+ ( AZStatus+ ( ..,+ AZStatus_Multiaz,+ AZStatus_Singleaz+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AZStatus = AZStatus'+ { fromAZStatus ::+ 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 AZStatus_Multiaz :: AZStatus+pattern AZStatus_Multiaz = AZStatus' "multiaz"++pattern AZStatus_Singleaz :: AZStatus+pattern AZStatus_Singleaz = AZStatus' "singleaz"++{-# COMPLETE+ AZStatus_Multiaz,+ AZStatus_Singleaz,+ AZStatus'+ #-}
+ gen/Amazonka/MemoryDb/Types/Authentication.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.MemoryDb.Types.Authentication+-- 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.MemoryDb.Types.Authentication where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.AuthenticationType+import qualified Amazonka.Prelude as Prelude++-- | Denotes the user\'s authentication properties, such as whether it+-- requires a password to authenticate. Used in output responses.+--+-- /See:/ 'newAuthentication' smart constructor.+data Authentication = Authentication'+ { -- | The number of passwords belonging to the user. The maximum is two.+ passwordCount :: Prelude.Maybe Prelude.Int,+ -- | Indicates whether the user requires a password to authenticate.+ type' :: Prelude.Maybe AuthenticationType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Authentication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'passwordCount', 'authentication_passwordCount' - The number of passwords belonging to the user. The maximum is two.+--+-- 'type'', 'authentication_type' - Indicates whether the user requires a password to authenticate.+newAuthentication ::+ Authentication+newAuthentication =+ Authentication'+ { passwordCount = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | The number of passwords belonging to the user. The maximum is two.+authentication_passwordCount :: Lens.Lens' Authentication (Prelude.Maybe Prelude.Int)+authentication_passwordCount = Lens.lens (\Authentication' {passwordCount} -> passwordCount) (\s@Authentication' {} a -> s {passwordCount = a} :: Authentication)++-- | Indicates whether the user requires a password to authenticate.+authentication_type :: Lens.Lens' Authentication (Prelude.Maybe AuthenticationType)+authentication_type = Lens.lens (\Authentication' {type'} -> type') (\s@Authentication' {} a -> s {type' = a} :: Authentication)++instance Data.FromJSON Authentication where+ parseJSON =+ Data.withObject+ "Authentication"+ ( \x ->+ Authentication'+ Prelude.<$> (x Data..:? "PasswordCount")+ Prelude.<*> (x Data..:? "Type")+ )++instance Prelude.Hashable Authentication where+ hashWithSalt _salt Authentication' {..} =+ _salt+ `Prelude.hashWithSalt` passwordCount+ `Prelude.hashWithSalt` type'++instance Prelude.NFData Authentication where+ rnf Authentication' {..} =+ Prelude.rnf passwordCount+ `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/MemoryDb/Types/AuthenticationMode.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.MemoryDb.Types.AuthenticationMode+-- 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.MemoryDb.Types.AuthenticationMode where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.InputAuthenticationType+import qualified Amazonka.Prelude as Prelude++-- | Denotes the user\'s authentication properties, such as whether it+-- requires a password to authenticate. Used in output responses.+--+-- /See:/ 'newAuthenticationMode' smart constructor.+data AuthenticationMode = AuthenticationMode'+ { -- | The password(s) used for authentication+ passwords :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | Indicates whether the user requires a password to authenticate. All+ -- newly-created users require a password.+ type' :: Prelude.Maybe InputAuthenticationType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AuthenticationMode' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'passwords', 'authenticationMode_passwords' - The password(s) used for authentication+--+-- 'type'', 'authenticationMode_type' - Indicates whether the user requires a password to authenticate. All+-- newly-created users require a password.+newAuthenticationMode ::+ AuthenticationMode+newAuthenticationMode =+ AuthenticationMode'+ { passwords = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | The password(s) used for authentication+authenticationMode_passwords :: Lens.Lens' AuthenticationMode (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+authenticationMode_passwords = Lens.lens (\AuthenticationMode' {passwords} -> passwords) (\s@AuthenticationMode' {} a -> s {passwords = a} :: AuthenticationMode) Prelude.. Lens.mapping Lens.coerced++-- | Indicates whether the user requires a password to authenticate. All+-- newly-created users require a password.+authenticationMode_type :: Lens.Lens' AuthenticationMode (Prelude.Maybe InputAuthenticationType)+authenticationMode_type = Lens.lens (\AuthenticationMode' {type'} -> type') (\s@AuthenticationMode' {} a -> s {type' = a} :: AuthenticationMode)++instance Prelude.Hashable AuthenticationMode where+ hashWithSalt _salt AuthenticationMode' {..} =+ _salt+ `Prelude.hashWithSalt` passwords+ `Prelude.hashWithSalt` type'++instance Prelude.NFData AuthenticationMode where+ rnf AuthenticationMode' {..} =+ Prelude.rnf passwords+ `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON AuthenticationMode where+ toJSON AuthenticationMode' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Passwords" Data..=) Prelude.<$> passwords,+ ("Type" Data..=) Prelude.<$> type'+ ]+ )
+ gen/Amazonka/MemoryDb/Types/AuthenticationType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.Types.AuthenticationType+-- 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.MemoryDb.Types.AuthenticationType+ ( AuthenticationType+ ( ..,+ AuthenticationType_No_password,+ AuthenticationType_Password+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AuthenticationType = AuthenticationType'+ { fromAuthenticationType ::+ 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 AuthenticationType_No_password :: AuthenticationType+pattern AuthenticationType_No_password = AuthenticationType' "no-password"++pattern AuthenticationType_Password :: AuthenticationType+pattern AuthenticationType_Password = AuthenticationType' "password"++{-# COMPLETE+ AuthenticationType_No_password,+ AuthenticationType_Password,+ AuthenticationType'+ #-}
+ gen/Amazonka/MemoryDb/Types/AvailabilityZone.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.MemoryDb.Types.AvailabilityZone+-- 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.MemoryDb.Types.AvailabilityZone 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++-- | Indicates if the cluster has a Multi-AZ configuration (multiaz) or not+-- (singleaz).+--+-- /See:/ 'newAvailabilityZone' smart constructor.+data AvailabilityZone = AvailabilityZone'+ { -- | The name of the Availability Zone.+ name :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AvailabilityZone' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'availabilityZone_name' - The name of the Availability Zone.+newAvailabilityZone ::+ AvailabilityZone+newAvailabilityZone =+ AvailabilityZone' {name = Prelude.Nothing}++-- | The name of the Availability Zone.+availabilityZone_name :: Lens.Lens' AvailabilityZone (Prelude.Maybe Prelude.Text)+availabilityZone_name = Lens.lens (\AvailabilityZone' {name} -> name) (\s@AvailabilityZone' {} a -> s {name = a} :: AvailabilityZone)++instance Data.FromJSON AvailabilityZone where+ parseJSON =+ Data.withObject+ "AvailabilityZone"+ ( \x ->+ AvailabilityZone' Prelude.<$> (x Data..:? "Name")+ )++instance Prelude.Hashable AvailabilityZone where+ hashWithSalt _salt AvailabilityZone' {..} =+ _salt `Prelude.hashWithSalt` name++instance Prelude.NFData AvailabilityZone where+ rnf AvailabilityZone' {..} = Prelude.rnf name
+ gen/Amazonka/MemoryDb/Types/Cluster.hs view
@@ -0,0 +1,430 @@+{-# 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.MemoryDb.Types.Cluster+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MemoryDb.Types.Cluster where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.AZStatus+import Amazonka.MemoryDb.Types.ClusterPendingUpdates+import Amazonka.MemoryDb.Types.DataTieringStatus+import Amazonka.MemoryDb.Types.Endpoint+import Amazonka.MemoryDb.Types.SecurityGroupMembership+import Amazonka.MemoryDb.Types.Shard+import qualified Amazonka.Prelude as Prelude++-- | Contains all of the attributes of a specific cluster.+--+-- /See:/ 'newCluster' smart constructor.+data Cluster = Cluster'+ { -- | The name of the Access Control List associated with this cluster.+ aCLName :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the cluster.+ arn :: Prelude.Maybe Prelude.Text,+ -- | When set to true, the cluster will automatically receive minor engine+ -- version upgrades after launch.+ autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,+ -- | Indicates if the cluster has a Multi-AZ configuration (multiaz) or not+ -- (singleaz).+ availabilityMode :: Prelude.Maybe AZStatus,+ -- | The cluster\'s configuration endpoint+ clusterEndpoint :: Prelude.Maybe Endpoint,+ -- | Enables data tiering. Data tiering is only supported for clusters using+ -- the r6gd node type. This parameter must be set when using r6gd nodes.+ -- For more information, see+ -- <https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html Data tiering>.+ dataTiering :: Prelude.Maybe DataTieringStatus,+ -- | A description of the cluster+ description :: Prelude.Maybe Prelude.Text,+ -- | The Redis engine patch version used by the cluster+ enginePatchVersion :: Prelude.Maybe Prelude.Text,+ -- | The Redis engine version used by the cluster+ engineVersion :: Prelude.Maybe Prelude.Text,+ -- | The ID of the KMS key used to encrypt the cluster+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | Specifies the weekly time range during which maintenance on the cluster+ -- is performed. It is specified as a range in the format+ -- ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window+ -- is a 60 minute period.+ maintenanceWindow :: Prelude.Maybe Prelude.Text,+ -- | The user-supplied name of the cluster. This identifier is a unique key+ -- that identifies a cluster.+ name :: Prelude.Maybe Prelude.Text,+ -- | The cluster\'s node type+ nodeType :: Prelude.Maybe Prelude.Text,+ -- | The number of shards in the cluster+ numberOfShards :: Prelude.Maybe Prelude.Int,+ -- | The name of the parameter group used by the cluster+ parameterGroupName :: Prelude.Maybe Prelude.Text,+ -- | The status of the parameter group used by the cluster, for example+ -- \'active\' or \'applying\'.+ parameterGroupStatus :: Prelude.Maybe Prelude.Text,+ -- | A group of settings that are currently being applied.+ pendingUpdates :: Prelude.Maybe ClusterPendingUpdates,+ -- | A list of security groups used by the cluster+ securityGroups :: Prelude.Maybe [SecurityGroupMembership],+ -- | A list of shards that are members of the cluster.+ shards :: Prelude.Maybe [Shard],+ -- | The number of days for which MemoryDB retains automatic snapshots before+ -- deleting them. For example, if you set SnapshotRetentionLimit to 5, a+ -- snapshot that was taken today is retained for 5 days before being+ -- deleted.+ snapshotRetentionLimit :: Prelude.Maybe Prelude.Int,+ -- | The daily time range (in UTC) during which MemoryDB begins taking a+ -- daily snapshot of your shard. Example: 05:00-09:00 If you do not specify+ -- this parameter, MemoryDB automatically chooses an appropriate time+ -- range.+ snapshotWindow :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the SNS notification topic+ snsTopicArn :: Prelude.Maybe Prelude.Text,+ -- | The SNS topic must be in Active status to receive notifications+ snsTopicStatus :: Prelude.Maybe Prelude.Text,+ -- | The status of the cluster. For example, Available, Updating, Creating.+ status :: Prelude.Maybe Prelude.Text,+ -- | The name of the subnet group used by the cluster+ subnetGroupName :: Prelude.Maybe Prelude.Text,+ -- | A flag to indicate if In-transit encryption is enabled+ tLSEnabled :: Prelude.Maybe Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Cluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'aCLName', 'cluster_aCLName' - The name of the Access Control List associated with this cluster.+--+-- 'arn', 'cluster_arn' - The Amazon Resource Name (ARN) of the cluster.+--+-- 'autoMinorVersionUpgrade', 'cluster_autoMinorVersionUpgrade' - When set to true, the cluster will automatically receive minor engine+-- version upgrades after launch.+--+-- 'availabilityMode', 'cluster_availabilityMode' - Indicates if the cluster has a Multi-AZ configuration (multiaz) or not+-- (singleaz).+--+-- 'clusterEndpoint', 'cluster_clusterEndpoint' - The cluster\'s configuration endpoint+--+-- 'dataTiering', 'cluster_dataTiering' - Enables data tiering. Data tiering is only supported for clusters using+-- the r6gd node type. This parameter must be set when using r6gd nodes.+-- For more information, see+-- <https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html Data tiering>.+--+-- 'description', 'cluster_description' - A description of the cluster+--+-- 'enginePatchVersion', 'cluster_enginePatchVersion' - The Redis engine patch version used by the cluster+--+-- 'engineVersion', 'cluster_engineVersion' - The Redis engine version used by the cluster+--+-- 'kmsKeyId', 'cluster_kmsKeyId' - The ID of the KMS key used to encrypt the cluster+--+-- 'maintenanceWindow', 'cluster_maintenanceWindow' - Specifies the weekly time range during which maintenance on the cluster+-- is performed. It is specified as a range in the format+-- ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window+-- is a 60 minute period.+--+-- 'name', 'cluster_name' - The user-supplied name of the cluster. This identifier is a unique key+-- that identifies a cluster.+--+-- 'nodeType', 'cluster_nodeType' - The cluster\'s node type+--+-- 'numberOfShards', 'cluster_numberOfShards' - The number of shards in the cluster+--+-- 'parameterGroupName', 'cluster_parameterGroupName' - The name of the parameter group used by the cluster+--+-- 'parameterGroupStatus', 'cluster_parameterGroupStatus' - The status of the parameter group used by the cluster, for example+-- \'active\' or \'applying\'.+--+-- 'pendingUpdates', 'cluster_pendingUpdates' - A group of settings that are currently being applied.+--+-- 'securityGroups', 'cluster_securityGroups' - A list of security groups used by the cluster+--+-- 'shards', 'cluster_shards' - A list of shards that are members of the cluster.+--+-- 'snapshotRetentionLimit', 'cluster_snapshotRetentionLimit' - The number of days for which MemoryDB retains automatic snapshots before+-- deleting them. For example, if you set SnapshotRetentionLimit to 5, a+-- snapshot that was taken today is retained for 5 days before being+-- deleted.+--+-- 'snapshotWindow', 'cluster_snapshotWindow' - The daily time range (in UTC) during which MemoryDB begins taking a+-- daily snapshot of your shard. Example: 05:00-09:00 If you do not specify+-- this parameter, MemoryDB automatically chooses an appropriate time+-- range.+--+-- 'snsTopicArn', 'cluster_snsTopicArn' - The Amazon Resource Name (ARN) of the SNS notification topic+--+-- 'snsTopicStatus', 'cluster_snsTopicStatus' - The SNS topic must be in Active status to receive notifications+--+-- 'status', 'cluster_status' - The status of the cluster. For example, Available, Updating, Creating.+--+-- 'subnetGroupName', 'cluster_subnetGroupName' - The name of the subnet group used by the cluster+--+-- 'tLSEnabled', 'cluster_tLSEnabled' - A flag to indicate if In-transit encryption is enabled+newCluster ::+ Cluster+newCluster =+ Cluster'+ { aCLName = Prelude.Nothing,+ arn = Prelude.Nothing,+ autoMinorVersionUpgrade = Prelude.Nothing,+ availabilityMode = Prelude.Nothing,+ clusterEndpoint = Prelude.Nothing,+ dataTiering = Prelude.Nothing,+ description = Prelude.Nothing,+ enginePatchVersion = Prelude.Nothing,+ engineVersion = Prelude.Nothing,+ kmsKeyId = Prelude.Nothing,+ maintenanceWindow = Prelude.Nothing,+ name = Prelude.Nothing,+ nodeType = Prelude.Nothing,+ numberOfShards = Prelude.Nothing,+ parameterGroupName = Prelude.Nothing,+ parameterGroupStatus = Prelude.Nothing,+ pendingUpdates = Prelude.Nothing,+ securityGroups = Prelude.Nothing,+ shards = Prelude.Nothing,+ snapshotRetentionLimit = Prelude.Nothing,+ snapshotWindow = Prelude.Nothing,+ snsTopicArn = Prelude.Nothing,+ snsTopicStatus = Prelude.Nothing,+ status = Prelude.Nothing,+ subnetGroupName = Prelude.Nothing,+ tLSEnabled = Prelude.Nothing+ }++-- | The name of the Access Control List associated with this cluster.+cluster_aCLName :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_aCLName = Lens.lens (\Cluster' {aCLName} -> aCLName) (\s@Cluster' {} a -> s {aCLName = a} :: Cluster)++-- | The Amazon Resource Name (ARN) of the cluster.+cluster_arn :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_arn = Lens.lens (\Cluster' {arn} -> arn) (\s@Cluster' {} a -> s {arn = a} :: Cluster)++-- | When set to true, the cluster will automatically receive minor engine+-- version upgrades after launch.+cluster_autoMinorVersionUpgrade :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Bool)+cluster_autoMinorVersionUpgrade = Lens.lens (\Cluster' {autoMinorVersionUpgrade} -> autoMinorVersionUpgrade) (\s@Cluster' {} a -> s {autoMinorVersionUpgrade = a} :: Cluster)++-- | Indicates if the cluster has a Multi-AZ configuration (multiaz) or not+-- (singleaz).+cluster_availabilityMode :: Lens.Lens' Cluster (Prelude.Maybe AZStatus)+cluster_availabilityMode = Lens.lens (\Cluster' {availabilityMode} -> availabilityMode) (\s@Cluster' {} a -> s {availabilityMode = a} :: Cluster)++-- | The cluster\'s configuration endpoint+cluster_clusterEndpoint :: Lens.Lens' Cluster (Prelude.Maybe Endpoint)+cluster_clusterEndpoint = Lens.lens (\Cluster' {clusterEndpoint} -> clusterEndpoint) (\s@Cluster' {} a -> s {clusterEndpoint = a} :: Cluster)++-- | Enables data tiering. Data tiering is only supported for clusters using+-- the r6gd node type. This parameter must be set when using r6gd nodes.+-- For more information, see+-- <https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html Data tiering>.+cluster_dataTiering :: Lens.Lens' Cluster (Prelude.Maybe DataTieringStatus)+cluster_dataTiering = Lens.lens (\Cluster' {dataTiering} -> dataTiering) (\s@Cluster' {} a -> s {dataTiering = a} :: Cluster)++-- | A description of the cluster+cluster_description :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_description = Lens.lens (\Cluster' {description} -> description) (\s@Cluster' {} a -> s {description = a} :: Cluster)++-- | The Redis engine patch version used by the cluster+cluster_enginePatchVersion :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_enginePatchVersion = Lens.lens (\Cluster' {enginePatchVersion} -> enginePatchVersion) (\s@Cluster' {} a -> s {enginePatchVersion = a} :: Cluster)++-- | The Redis engine version used by the cluster+cluster_engineVersion :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_engineVersion = Lens.lens (\Cluster' {engineVersion} -> engineVersion) (\s@Cluster' {} a -> s {engineVersion = a} :: Cluster)++-- | The ID of the KMS key used to encrypt the cluster+cluster_kmsKeyId :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_kmsKeyId = Lens.lens (\Cluster' {kmsKeyId} -> kmsKeyId) (\s@Cluster' {} a -> s {kmsKeyId = a} :: Cluster)++-- | Specifies the weekly time range during which maintenance on the cluster+-- is performed. It is specified as a range in the format+-- ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window+-- is a 60 minute period.+cluster_maintenanceWindow :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_maintenanceWindow = Lens.lens (\Cluster' {maintenanceWindow} -> maintenanceWindow) (\s@Cluster' {} a -> s {maintenanceWindow = a} :: Cluster)++-- | The user-supplied name of the cluster. This identifier is a unique key+-- that identifies a cluster.+cluster_name :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_name = Lens.lens (\Cluster' {name} -> name) (\s@Cluster' {} a -> s {name = a} :: Cluster)++-- | The cluster\'s node type+cluster_nodeType :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_nodeType = Lens.lens (\Cluster' {nodeType} -> nodeType) (\s@Cluster' {} a -> s {nodeType = a} :: Cluster)++-- | The number of shards in the cluster+cluster_numberOfShards :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Int)+cluster_numberOfShards = Lens.lens (\Cluster' {numberOfShards} -> numberOfShards) (\s@Cluster' {} a -> s {numberOfShards = a} :: Cluster)++-- | The name of the parameter group used by the cluster+cluster_parameterGroupName :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_parameterGroupName = Lens.lens (\Cluster' {parameterGroupName} -> parameterGroupName) (\s@Cluster' {} a -> s {parameterGroupName = a} :: Cluster)++-- | The status of the parameter group used by the cluster, for example+-- \'active\' or \'applying\'.+cluster_parameterGroupStatus :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_parameterGroupStatus = Lens.lens (\Cluster' {parameterGroupStatus} -> parameterGroupStatus) (\s@Cluster' {} a -> s {parameterGroupStatus = a} :: Cluster)++-- | A group of settings that are currently being applied.+cluster_pendingUpdates :: Lens.Lens' Cluster (Prelude.Maybe ClusterPendingUpdates)+cluster_pendingUpdates = Lens.lens (\Cluster' {pendingUpdates} -> pendingUpdates) (\s@Cluster' {} a -> s {pendingUpdates = a} :: Cluster)++-- | A list of security groups used by the cluster+cluster_securityGroups :: Lens.Lens' Cluster (Prelude.Maybe [SecurityGroupMembership])+cluster_securityGroups = Lens.lens (\Cluster' {securityGroups} -> securityGroups) (\s@Cluster' {} a -> s {securityGroups = a} :: Cluster) Prelude.. Lens.mapping Lens.coerced++-- | A list of shards that are members of the cluster.+cluster_shards :: Lens.Lens' Cluster (Prelude.Maybe [Shard])+cluster_shards = Lens.lens (\Cluster' {shards} -> shards) (\s@Cluster' {} a -> s {shards = a} :: Cluster) Prelude.. Lens.mapping Lens.coerced++-- | The number of days for which MemoryDB retains automatic snapshots before+-- deleting them. For example, if you set SnapshotRetentionLimit to 5, a+-- snapshot that was taken today is retained for 5 days before being+-- deleted.+cluster_snapshotRetentionLimit :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Int)+cluster_snapshotRetentionLimit = Lens.lens (\Cluster' {snapshotRetentionLimit} -> snapshotRetentionLimit) (\s@Cluster' {} a -> s {snapshotRetentionLimit = a} :: Cluster)++-- | The daily time range (in UTC) during which MemoryDB begins taking a+-- daily snapshot of your shard. Example: 05:00-09:00 If you do not specify+-- this parameter, MemoryDB automatically chooses an appropriate time+-- range.+cluster_snapshotWindow :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_snapshotWindow = Lens.lens (\Cluster' {snapshotWindow} -> snapshotWindow) (\s@Cluster' {} a -> s {snapshotWindow = a} :: Cluster)++-- | The Amazon Resource Name (ARN) of the SNS notification topic+cluster_snsTopicArn :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_snsTopicArn = Lens.lens (\Cluster' {snsTopicArn} -> snsTopicArn) (\s@Cluster' {} a -> s {snsTopicArn = a} :: Cluster)++-- | The SNS topic must be in Active status to receive notifications+cluster_snsTopicStatus :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_snsTopicStatus = Lens.lens (\Cluster' {snsTopicStatus} -> snsTopicStatus) (\s@Cluster' {} a -> s {snsTopicStatus = a} :: Cluster)++-- | The status of the cluster. For example, Available, Updating, Creating.+cluster_status :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_status = Lens.lens (\Cluster' {status} -> status) (\s@Cluster' {} a -> s {status = a} :: Cluster)++-- | The name of the subnet group used by the cluster+cluster_subnetGroupName :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Text)+cluster_subnetGroupName = Lens.lens (\Cluster' {subnetGroupName} -> subnetGroupName) (\s@Cluster' {} a -> s {subnetGroupName = a} :: Cluster)++-- | A flag to indicate if In-transit encryption is enabled+cluster_tLSEnabled :: Lens.Lens' Cluster (Prelude.Maybe Prelude.Bool)+cluster_tLSEnabled = Lens.lens (\Cluster' {tLSEnabled} -> tLSEnabled) (\s@Cluster' {} a -> s {tLSEnabled = a} :: Cluster)++instance Data.FromJSON Cluster where+ parseJSON =+ Data.withObject+ "Cluster"+ ( \x ->+ Cluster'+ Prelude.<$> (x Data..:? "ACLName")+ Prelude.<*> (x Data..:? "ARN")+ Prelude.<*> (x Data..:? "AutoMinorVersionUpgrade")+ Prelude.<*> (x Data..:? "AvailabilityMode")+ Prelude.<*> (x Data..:? "ClusterEndpoint")+ Prelude.<*> (x Data..:? "DataTiering")+ Prelude.<*> (x Data..:? "Description")+ Prelude.<*> (x Data..:? "EnginePatchVersion")+ Prelude.<*> (x Data..:? "EngineVersion")+ Prelude.<*> (x Data..:? "KmsKeyId")+ Prelude.<*> (x Data..:? "MaintenanceWindow")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "NodeType")+ Prelude.<*> (x Data..:? "NumberOfShards")+ Prelude.<*> (x Data..:? "ParameterGroupName")+ Prelude.<*> (x Data..:? "ParameterGroupStatus")+ Prelude.<*> (x Data..:? "PendingUpdates")+ Prelude.<*> (x Data..:? "SecurityGroups" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "Shards" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "SnapshotRetentionLimit")+ Prelude.<*> (x Data..:? "SnapshotWindow")+ Prelude.<*> (x Data..:? "SnsTopicArn")+ Prelude.<*> (x Data..:? "SnsTopicStatus")+ Prelude.<*> (x Data..:? "Status")+ Prelude.<*> (x Data..:? "SubnetGroupName")+ Prelude.<*> (x Data..:? "TLSEnabled")+ )++instance Prelude.Hashable Cluster where+ hashWithSalt _salt Cluster' {..} =+ _salt+ `Prelude.hashWithSalt` aCLName+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` autoMinorVersionUpgrade+ `Prelude.hashWithSalt` availabilityMode+ `Prelude.hashWithSalt` clusterEndpoint+ `Prelude.hashWithSalt` dataTiering+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` enginePatchVersion+ `Prelude.hashWithSalt` engineVersion+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` maintenanceWindow+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` nodeType+ `Prelude.hashWithSalt` numberOfShards+ `Prelude.hashWithSalt` parameterGroupName+ `Prelude.hashWithSalt` parameterGroupStatus+ `Prelude.hashWithSalt` pendingUpdates+ `Prelude.hashWithSalt` securityGroups+ `Prelude.hashWithSalt` shards+ `Prelude.hashWithSalt` snapshotRetentionLimit+ `Prelude.hashWithSalt` snapshotWindow+ `Prelude.hashWithSalt` snsTopicArn+ `Prelude.hashWithSalt` snsTopicStatus+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` subnetGroupName+ `Prelude.hashWithSalt` tLSEnabled++instance Prelude.NFData Cluster where+ rnf Cluster' {..} =+ Prelude.rnf aCLName+ `Prelude.seq` Prelude.rnf arn+ `Prelude.seq` Prelude.rnf autoMinorVersionUpgrade+ `Prelude.seq` Prelude.rnf availabilityMode+ `Prelude.seq` Prelude.rnf clusterEndpoint+ `Prelude.seq` Prelude.rnf dataTiering+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf enginePatchVersion+ `Prelude.seq` Prelude.rnf engineVersion+ `Prelude.seq` Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf maintenanceWindow+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf nodeType+ `Prelude.seq` Prelude.rnf numberOfShards+ `Prelude.seq` Prelude.rnf parameterGroupName+ `Prelude.seq` Prelude.rnf parameterGroupStatus+ `Prelude.seq` Prelude.rnf pendingUpdates+ `Prelude.seq` Prelude.rnf securityGroups+ `Prelude.seq` Prelude.rnf shards+ `Prelude.seq` Prelude.rnf+ snapshotRetentionLimit+ `Prelude.seq` Prelude.rnf snapshotWindow+ `Prelude.seq` Prelude.rnf snsTopicArn+ `Prelude.seq` Prelude.rnf+ snsTopicStatus+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf+ subnetGroupName+ `Prelude.seq` Prelude.rnf+ tLSEnabled
+ gen/Amazonka/MemoryDb/Types/ClusterConfiguration.hs view
@@ -0,0 +1,233 @@+{-# 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.MemoryDb.Types.ClusterConfiguration+-- 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.MemoryDb.Types.ClusterConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.ShardDetail+import qualified Amazonka.Prelude as Prelude++-- | A list of cluster configuration options.+--+-- /See:/ 'newClusterConfiguration' smart constructor.+data ClusterConfiguration = ClusterConfiguration'+ { -- | The description of the cluster configuration+ description :: Prelude.Maybe Prelude.Text,+ -- | The Redis engine version used by the cluster+ engineVersion :: Prelude.Maybe Prelude.Text,+ -- | The specified maintenance window for the cluster+ maintenanceWindow :: Prelude.Maybe Prelude.Text,+ -- | The name of the cluster+ name :: Prelude.Maybe Prelude.Text,+ -- | The node type used for the cluster+ nodeType :: Prelude.Maybe Prelude.Text,+ -- | The number of shards in the cluster+ numShards :: Prelude.Maybe Prelude.Int,+ -- | The name of parameter group used by the cluster+ parameterGroupName :: Prelude.Maybe Prelude.Text,+ -- | The port used by the cluster+ port :: Prelude.Maybe Prelude.Int,+ -- | The list of shards in the cluster+ shards :: Prelude.Maybe [ShardDetail],+ -- | The snapshot retention limit set by the cluster+ snapshotRetentionLimit :: Prelude.Maybe Prelude.Int,+ -- | The snapshot window set by the cluster+ snapshotWindow :: Prelude.Maybe Prelude.Text,+ -- | The name of the subnet group used by the cluster+ subnetGroupName :: Prelude.Maybe Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the SNS notification topic for the+ -- cluster+ topicArn :: Prelude.Maybe Prelude.Text,+ -- | The ID of the VPC the cluster belongs to+ vpcId :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClusterConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'clusterConfiguration_description' - The description of the cluster configuration+--+-- 'engineVersion', 'clusterConfiguration_engineVersion' - The Redis engine version used by the cluster+--+-- 'maintenanceWindow', 'clusterConfiguration_maintenanceWindow' - The specified maintenance window for the cluster+--+-- 'name', 'clusterConfiguration_name' - The name of the cluster+--+-- 'nodeType', 'clusterConfiguration_nodeType' - The node type used for the cluster+--+-- 'numShards', 'clusterConfiguration_numShards' - The number of shards in the cluster+--+-- 'parameterGroupName', 'clusterConfiguration_parameterGroupName' - The name of parameter group used by the cluster+--+-- 'port', 'clusterConfiguration_port' - The port used by the cluster+--+-- 'shards', 'clusterConfiguration_shards' - The list of shards in the cluster+--+-- 'snapshotRetentionLimit', 'clusterConfiguration_snapshotRetentionLimit' - The snapshot retention limit set by the cluster+--+-- 'snapshotWindow', 'clusterConfiguration_snapshotWindow' - The snapshot window set by the cluster+--+-- 'subnetGroupName', 'clusterConfiguration_subnetGroupName' - The name of the subnet group used by the cluster+--+-- 'topicArn', 'clusterConfiguration_topicArn' - The Amazon Resource Name (ARN) of the SNS notification topic for the+-- cluster+--+-- 'vpcId', 'clusterConfiguration_vpcId' - The ID of the VPC the cluster belongs to+newClusterConfiguration ::+ ClusterConfiguration+newClusterConfiguration =+ ClusterConfiguration'+ { description =+ Prelude.Nothing,+ engineVersion = Prelude.Nothing,+ maintenanceWindow = Prelude.Nothing,+ name = Prelude.Nothing,+ nodeType = Prelude.Nothing,+ numShards = Prelude.Nothing,+ parameterGroupName = Prelude.Nothing,+ port = Prelude.Nothing,+ shards = Prelude.Nothing,+ snapshotRetentionLimit = Prelude.Nothing,+ snapshotWindow = Prelude.Nothing,+ subnetGroupName = Prelude.Nothing,+ topicArn = Prelude.Nothing,+ vpcId = Prelude.Nothing+ }++-- | The description of the cluster configuration+clusterConfiguration_description :: Lens.Lens' ClusterConfiguration (Prelude.Maybe Prelude.Text)+clusterConfiguration_description = Lens.lens (\ClusterConfiguration' {description} -> description) (\s@ClusterConfiguration' {} a -> s {description = a} :: ClusterConfiguration)++-- | The Redis engine version used by the cluster+clusterConfiguration_engineVersion :: Lens.Lens' ClusterConfiguration (Prelude.Maybe Prelude.Text)+clusterConfiguration_engineVersion = Lens.lens (\ClusterConfiguration' {engineVersion} -> engineVersion) (\s@ClusterConfiguration' {} a -> s {engineVersion = a} :: ClusterConfiguration)++-- | The specified maintenance window for the cluster+clusterConfiguration_maintenanceWindow :: Lens.Lens' ClusterConfiguration (Prelude.Maybe Prelude.Text)+clusterConfiguration_maintenanceWindow = Lens.lens (\ClusterConfiguration' {maintenanceWindow} -> maintenanceWindow) (\s@ClusterConfiguration' {} a -> s {maintenanceWindow = a} :: ClusterConfiguration)++-- | The name of the cluster+clusterConfiguration_name :: Lens.Lens' ClusterConfiguration (Prelude.Maybe Prelude.Text)+clusterConfiguration_name = Lens.lens (\ClusterConfiguration' {name} -> name) (\s@ClusterConfiguration' {} a -> s {name = a} :: ClusterConfiguration)++-- | The node type used for the cluster+clusterConfiguration_nodeType :: Lens.Lens' ClusterConfiguration (Prelude.Maybe Prelude.Text)+clusterConfiguration_nodeType = Lens.lens (\ClusterConfiguration' {nodeType} -> nodeType) (\s@ClusterConfiguration' {} a -> s {nodeType = a} :: ClusterConfiguration)++-- | The number of shards in the cluster+clusterConfiguration_numShards :: Lens.Lens' ClusterConfiguration (Prelude.Maybe Prelude.Int)+clusterConfiguration_numShards = Lens.lens (\ClusterConfiguration' {numShards} -> numShards) (\s@ClusterConfiguration' {} a -> s {numShards = a} :: ClusterConfiguration)++-- | The name of parameter group used by the cluster+clusterConfiguration_parameterGroupName :: Lens.Lens' ClusterConfiguration (Prelude.Maybe Prelude.Text)+clusterConfiguration_parameterGroupName = Lens.lens (\ClusterConfiguration' {parameterGroupName} -> parameterGroupName) (\s@ClusterConfiguration' {} a -> s {parameterGroupName = a} :: ClusterConfiguration)++-- | The port used by the cluster+clusterConfiguration_port :: Lens.Lens' ClusterConfiguration (Prelude.Maybe Prelude.Int)+clusterConfiguration_port = Lens.lens (\ClusterConfiguration' {port} -> port) (\s@ClusterConfiguration' {} a -> s {port = a} :: ClusterConfiguration)++-- | The list of shards in the cluster+clusterConfiguration_shards :: Lens.Lens' ClusterConfiguration (Prelude.Maybe [ShardDetail])+clusterConfiguration_shards = Lens.lens (\ClusterConfiguration' {shards} -> shards) (\s@ClusterConfiguration' {} a -> s {shards = a} :: ClusterConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The snapshot retention limit set by the cluster+clusterConfiguration_snapshotRetentionLimit :: Lens.Lens' ClusterConfiguration (Prelude.Maybe Prelude.Int)+clusterConfiguration_snapshotRetentionLimit = Lens.lens (\ClusterConfiguration' {snapshotRetentionLimit} -> snapshotRetentionLimit) (\s@ClusterConfiguration' {} a -> s {snapshotRetentionLimit = a} :: ClusterConfiguration)++-- | The snapshot window set by the cluster+clusterConfiguration_snapshotWindow :: Lens.Lens' ClusterConfiguration (Prelude.Maybe Prelude.Text)+clusterConfiguration_snapshotWindow = Lens.lens (\ClusterConfiguration' {snapshotWindow} -> snapshotWindow) (\s@ClusterConfiguration' {} a -> s {snapshotWindow = a} :: ClusterConfiguration)++-- | The name of the subnet group used by the cluster+clusterConfiguration_subnetGroupName :: Lens.Lens' ClusterConfiguration (Prelude.Maybe Prelude.Text)+clusterConfiguration_subnetGroupName = Lens.lens (\ClusterConfiguration' {subnetGroupName} -> subnetGroupName) (\s@ClusterConfiguration' {} a -> s {subnetGroupName = a} :: ClusterConfiguration)++-- | The Amazon Resource Name (ARN) of the SNS notification topic for the+-- cluster+clusterConfiguration_topicArn :: Lens.Lens' ClusterConfiguration (Prelude.Maybe Prelude.Text)+clusterConfiguration_topicArn = Lens.lens (\ClusterConfiguration' {topicArn} -> topicArn) (\s@ClusterConfiguration' {} a -> s {topicArn = a} :: ClusterConfiguration)++-- | The ID of the VPC the cluster belongs to+clusterConfiguration_vpcId :: Lens.Lens' ClusterConfiguration (Prelude.Maybe Prelude.Text)+clusterConfiguration_vpcId = Lens.lens (\ClusterConfiguration' {vpcId} -> vpcId) (\s@ClusterConfiguration' {} a -> s {vpcId = a} :: ClusterConfiguration)++instance Data.FromJSON ClusterConfiguration where+ parseJSON =+ Data.withObject+ "ClusterConfiguration"+ ( \x ->+ ClusterConfiguration'+ Prelude.<$> (x Data..:? "Description")+ Prelude.<*> (x Data..:? "EngineVersion")+ Prelude.<*> (x Data..:? "MaintenanceWindow")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "NodeType")+ Prelude.<*> (x Data..:? "NumShards")+ Prelude.<*> (x Data..:? "ParameterGroupName")+ Prelude.<*> (x Data..:? "Port")+ Prelude.<*> (x Data..:? "Shards" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "SnapshotRetentionLimit")+ Prelude.<*> (x Data..:? "SnapshotWindow")+ Prelude.<*> (x Data..:? "SubnetGroupName")+ Prelude.<*> (x Data..:? "TopicArn")+ Prelude.<*> (x Data..:? "VpcId")+ )++instance Prelude.Hashable ClusterConfiguration where+ hashWithSalt _salt ClusterConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` engineVersion+ `Prelude.hashWithSalt` maintenanceWindow+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` nodeType+ `Prelude.hashWithSalt` numShards+ `Prelude.hashWithSalt` parameterGroupName+ `Prelude.hashWithSalt` port+ `Prelude.hashWithSalt` shards+ `Prelude.hashWithSalt` snapshotRetentionLimit+ `Prelude.hashWithSalt` snapshotWindow+ `Prelude.hashWithSalt` subnetGroupName+ `Prelude.hashWithSalt` topicArn+ `Prelude.hashWithSalt` vpcId++instance Prelude.NFData ClusterConfiguration where+ rnf ClusterConfiguration' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf engineVersion+ `Prelude.seq` Prelude.rnf maintenanceWindow+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf nodeType+ `Prelude.seq` Prelude.rnf numShards+ `Prelude.seq` Prelude.rnf parameterGroupName+ `Prelude.seq` Prelude.rnf port+ `Prelude.seq` Prelude.rnf shards+ `Prelude.seq` Prelude.rnf snapshotRetentionLimit+ `Prelude.seq` Prelude.rnf snapshotWindow+ `Prelude.seq` Prelude.rnf subnetGroupName+ `Prelude.seq` Prelude.rnf topicArn+ `Prelude.seq` Prelude.rnf vpcId
+ gen/Amazonka/MemoryDb/Types/ClusterPendingUpdates.hs view
@@ -0,0 +1,102 @@+{-# 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.MemoryDb.Types.ClusterPendingUpdates+-- 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.MemoryDb.Types.ClusterPendingUpdates where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.ACLsUpdateStatus+import Amazonka.MemoryDb.Types.PendingModifiedServiceUpdate+import Amazonka.MemoryDb.Types.ReshardingStatus+import qualified Amazonka.Prelude as Prelude++-- | A list of updates being applied to the cluster+--+-- /See:/ 'newClusterPendingUpdates' smart constructor.+data ClusterPendingUpdates = ClusterPendingUpdates'+ { -- | A list of ACLs associated with the cluster that are being updated+ aCLs :: Prelude.Maybe ACLsUpdateStatus,+ -- | The status of an online resharding operation.+ resharding :: Prelude.Maybe ReshardingStatus,+ -- | A list of service updates being applied to the cluster+ serviceUpdates :: Prelude.Maybe [PendingModifiedServiceUpdate]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClusterPendingUpdates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'aCLs', 'clusterPendingUpdates_aCLs' - A list of ACLs associated with the cluster that are being updated+--+-- 'resharding', 'clusterPendingUpdates_resharding' - The status of an online resharding operation.+--+-- 'serviceUpdates', 'clusterPendingUpdates_serviceUpdates' - A list of service updates being applied to the cluster+newClusterPendingUpdates ::+ ClusterPendingUpdates+newClusterPendingUpdates =+ ClusterPendingUpdates'+ { aCLs = Prelude.Nothing,+ resharding = Prelude.Nothing,+ serviceUpdates = Prelude.Nothing+ }++-- | A list of ACLs associated with the cluster that are being updated+clusterPendingUpdates_aCLs :: Lens.Lens' ClusterPendingUpdates (Prelude.Maybe ACLsUpdateStatus)+clusterPendingUpdates_aCLs = Lens.lens (\ClusterPendingUpdates' {aCLs} -> aCLs) (\s@ClusterPendingUpdates' {} a -> s {aCLs = a} :: ClusterPendingUpdates)++-- | The status of an online resharding operation.+clusterPendingUpdates_resharding :: Lens.Lens' ClusterPendingUpdates (Prelude.Maybe ReshardingStatus)+clusterPendingUpdates_resharding = Lens.lens (\ClusterPendingUpdates' {resharding} -> resharding) (\s@ClusterPendingUpdates' {} a -> s {resharding = a} :: ClusterPendingUpdates)++-- | A list of service updates being applied to the cluster+clusterPendingUpdates_serviceUpdates :: Lens.Lens' ClusterPendingUpdates (Prelude.Maybe [PendingModifiedServiceUpdate])+clusterPendingUpdates_serviceUpdates = Lens.lens (\ClusterPendingUpdates' {serviceUpdates} -> serviceUpdates) (\s@ClusterPendingUpdates' {} a -> s {serviceUpdates = a} :: ClusterPendingUpdates) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ClusterPendingUpdates where+ parseJSON =+ Data.withObject+ "ClusterPendingUpdates"+ ( \x ->+ ClusterPendingUpdates'+ Prelude.<$> (x Data..:? "ACLs")+ Prelude.<*> (x Data..:? "Resharding")+ Prelude.<*> ( x+ Data..:? "ServiceUpdates"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable ClusterPendingUpdates where+ hashWithSalt _salt ClusterPendingUpdates' {..} =+ _salt+ `Prelude.hashWithSalt` aCLs+ `Prelude.hashWithSalt` resharding+ `Prelude.hashWithSalt` serviceUpdates++instance Prelude.NFData ClusterPendingUpdates where+ rnf ClusterPendingUpdates' {..} =+ Prelude.rnf aCLs+ `Prelude.seq` Prelude.rnf resharding+ `Prelude.seq` Prelude.rnf serviceUpdates
+ gen/Amazonka/MemoryDb/Types/DataTieringStatus.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.Types.DataTieringStatus+-- 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.MemoryDb.Types.DataTieringStatus+ ( DataTieringStatus+ ( ..,+ DataTieringStatus_False,+ DataTieringStatus_True+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataTieringStatus = DataTieringStatus'+ { fromDataTieringStatus ::+ 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 DataTieringStatus_False :: DataTieringStatus+pattern DataTieringStatus_False = DataTieringStatus' "false"++pattern DataTieringStatus_True :: DataTieringStatus+pattern DataTieringStatus_True = DataTieringStatus' "true"++{-# COMPLETE+ DataTieringStatus_False,+ DataTieringStatus_True,+ DataTieringStatus'+ #-}
+ gen/Amazonka/MemoryDb/Types/Endpoint.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.MemoryDb.Types.Endpoint+-- 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.MemoryDb.Types.Endpoint 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++-- | Represents the information required for client programs to connect to+-- the cluster and its nodes.+--+-- /See:/ 'newEndpoint' smart constructor.+data Endpoint = Endpoint'+ { -- | The DNS hostname of the node.+ address :: Prelude.Maybe Prelude.Text,+ -- | The port number that the engine is listening on.+ port :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Endpoint' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'address', 'endpoint_address' - The DNS hostname of the node.+--+-- 'port', 'endpoint_port' - The port number that the engine is listening on.+newEndpoint ::+ Endpoint+newEndpoint =+ Endpoint'+ { address = Prelude.Nothing,+ port = Prelude.Nothing+ }++-- | The DNS hostname of the node.+endpoint_address :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)+endpoint_address = Lens.lens (\Endpoint' {address} -> address) (\s@Endpoint' {} a -> s {address = a} :: Endpoint)++-- | The port number that the engine is listening on.+endpoint_port :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Int)+endpoint_port = Lens.lens (\Endpoint' {port} -> port) (\s@Endpoint' {} a -> s {port = a} :: Endpoint)++instance Data.FromJSON Endpoint where+ parseJSON =+ Data.withObject+ "Endpoint"+ ( \x ->+ Endpoint'+ Prelude.<$> (x Data..:? "Address")+ Prelude.<*> (x Data..:? "Port")+ )++instance Prelude.Hashable Endpoint where+ hashWithSalt _salt Endpoint' {..} =+ _salt+ `Prelude.hashWithSalt` address+ `Prelude.hashWithSalt` port++instance Prelude.NFData Endpoint where+ rnf Endpoint' {..} =+ Prelude.rnf address `Prelude.seq` Prelude.rnf port
+ gen/Amazonka/MemoryDb/Types/EngineVersionInfo.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.MemoryDb.Types.EngineVersionInfo+-- 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.MemoryDb.Types.EngineVersionInfo 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 details of the Redis engine version+--+-- /See:/ 'newEngineVersionInfo' smart constructor.+data EngineVersionInfo = EngineVersionInfo'+ { -- | The patched engine version+ enginePatchVersion :: Prelude.Maybe Prelude.Text,+ -- | The engine version+ engineVersion :: Prelude.Maybe Prelude.Text,+ -- | Specifies the name of the parameter group family to which the engine+ -- default parameters apply.+ parameterGroupFamily :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EngineVersionInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'enginePatchVersion', 'engineVersionInfo_enginePatchVersion' - The patched engine version+--+-- 'engineVersion', 'engineVersionInfo_engineVersion' - The engine version+--+-- 'parameterGroupFamily', 'engineVersionInfo_parameterGroupFamily' - Specifies the name of the parameter group family to which the engine+-- default parameters apply.+newEngineVersionInfo ::+ EngineVersionInfo+newEngineVersionInfo =+ EngineVersionInfo'+ { enginePatchVersion =+ Prelude.Nothing,+ engineVersion = Prelude.Nothing,+ parameterGroupFamily = Prelude.Nothing+ }++-- | The patched engine version+engineVersionInfo_enginePatchVersion :: Lens.Lens' EngineVersionInfo (Prelude.Maybe Prelude.Text)+engineVersionInfo_enginePatchVersion = Lens.lens (\EngineVersionInfo' {enginePatchVersion} -> enginePatchVersion) (\s@EngineVersionInfo' {} a -> s {enginePatchVersion = a} :: EngineVersionInfo)++-- | The engine version+engineVersionInfo_engineVersion :: Lens.Lens' EngineVersionInfo (Prelude.Maybe Prelude.Text)+engineVersionInfo_engineVersion = Lens.lens (\EngineVersionInfo' {engineVersion} -> engineVersion) (\s@EngineVersionInfo' {} a -> s {engineVersion = a} :: EngineVersionInfo)++-- | Specifies the name of the parameter group family to which the engine+-- default parameters apply.+engineVersionInfo_parameterGroupFamily :: Lens.Lens' EngineVersionInfo (Prelude.Maybe Prelude.Text)+engineVersionInfo_parameterGroupFamily = Lens.lens (\EngineVersionInfo' {parameterGroupFamily} -> parameterGroupFamily) (\s@EngineVersionInfo' {} a -> s {parameterGroupFamily = a} :: EngineVersionInfo)++instance Data.FromJSON EngineVersionInfo where+ parseJSON =+ Data.withObject+ "EngineVersionInfo"+ ( \x ->+ EngineVersionInfo'+ Prelude.<$> (x Data..:? "EnginePatchVersion")+ Prelude.<*> (x Data..:? "EngineVersion")+ Prelude.<*> (x Data..:? "ParameterGroupFamily")+ )++instance Prelude.Hashable EngineVersionInfo where+ hashWithSalt _salt EngineVersionInfo' {..} =+ _salt+ `Prelude.hashWithSalt` enginePatchVersion+ `Prelude.hashWithSalt` engineVersion+ `Prelude.hashWithSalt` parameterGroupFamily++instance Prelude.NFData EngineVersionInfo where+ rnf EngineVersionInfo' {..} =+ Prelude.rnf enginePatchVersion+ `Prelude.seq` Prelude.rnf engineVersion+ `Prelude.seq` Prelude.rnf parameterGroupFamily
+ gen/Amazonka/MemoryDb/Types/Event.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.Types.Event+-- 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.MemoryDb.Types.Event where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.SourceType+import qualified Amazonka.Prelude as Prelude++-- | Represents a single occurrence of something interesting within the+-- system. Some examples of events are creating a cluster or adding or+-- removing a node.+--+-- /See:/ 'newEvent' smart constructor.+data Event = Event'+ { -- | The date and time when the event occurred.+ date :: Prelude.Maybe Data.POSIX,+ -- | The text of the event.+ message :: Prelude.Maybe Prelude.Text,+ -- | The name for the source of the event. For example, if the event occurred+ -- at the cluster level, the identifier would be the name of the cluster.+ sourceName :: Prelude.Maybe Prelude.Text,+ -- | Specifies the origin of this event - a cluster, a parameter group, a+ -- security group, etc.+ sourceType :: Prelude.Maybe SourceType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Event' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'date', 'event_date' - The date and time when the event occurred.+--+-- 'message', 'event_message' - The text of the event.+--+-- 'sourceName', 'event_sourceName' - The name for the source of the event. For example, if the event occurred+-- at the cluster level, the identifier would be the name of the cluster.+--+-- 'sourceType', 'event_sourceType' - Specifies the origin of this event - a cluster, a parameter group, a+-- security group, etc.+newEvent ::+ Event+newEvent =+ Event'+ { date = Prelude.Nothing,+ message = Prelude.Nothing,+ sourceName = Prelude.Nothing,+ sourceType = Prelude.Nothing+ }++-- | The date and time when the event occurred.+event_date :: Lens.Lens' Event (Prelude.Maybe Prelude.UTCTime)+event_date = Lens.lens (\Event' {date} -> date) (\s@Event' {} a -> s {date = a} :: Event) Prelude.. Lens.mapping Data._Time++-- | The text of the event.+event_message :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)+event_message = Lens.lens (\Event' {message} -> message) (\s@Event' {} a -> s {message = a} :: Event)++-- | The name for the source of the event. For example, if the event occurred+-- at the cluster level, the identifier would be the name of the cluster.+event_sourceName :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)+event_sourceName = Lens.lens (\Event' {sourceName} -> sourceName) (\s@Event' {} a -> s {sourceName = a} :: Event)++-- | Specifies the origin of this event - a cluster, a parameter group, a+-- security group, etc.+event_sourceType :: Lens.Lens' Event (Prelude.Maybe SourceType)+event_sourceType = Lens.lens (\Event' {sourceType} -> sourceType) (\s@Event' {} a -> s {sourceType = a} :: Event)++instance Data.FromJSON Event where+ parseJSON =+ Data.withObject+ "Event"+ ( \x ->+ Event'+ Prelude.<$> (x Data..:? "Date")+ Prelude.<*> (x Data..:? "Message")+ Prelude.<*> (x Data..:? "SourceName")+ Prelude.<*> (x Data..:? "SourceType")+ )++instance Prelude.Hashable Event where+ hashWithSalt _salt Event' {..} =+ _salt+ `Prelude.hashWithSalt` date+ `Prelude.hashWithSalt` message+ `Prelude.hashWithSalt` sourceName+ `Prelude.hashWithSalt` sourceType++instance Prelude.NFData Event where+ rnf Event' {..} =+ Prelude.rnf date+ `Prelude.seq` Prelude.rnf message+ `Prelude.seq` Prelude.rnf sourceName+ `Prelude.seq` Prelude.rnf sourceType
+ gen/Amazonka/MemoryDb/Types/Filter.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.MemoryDb.Types.Filter+-- 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.MemoryDb.Types.Filter 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++-- | Used to streamline results of a search based on the property being+-- filtered.+--+-- /See:/ 'newFilter' smart constructor.+data Filter = Filter'+ { -- | The property being filtered. For example, UserName.+ name :: Prelude.Text,+ -- | The property values to filter on. For example, \"user-123\".+ values :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Filter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'filter_name' - The property being filtered. For example, UserName.+--+-- 'values', 'filter_values' - The property values to filter on. For example, \"user-123\".+newFilter ::+ -- | 'name'+ Prelude.Text ->+ -- | 'values'+ Prelude.NonEmpty Prelude.Text ->+ Filter+newFilter pName_ pValues_ =+ Filter'+ { name = pName_,+ values = Lens.coerced Lens.# pValues_+ }++-- | The property being filtered. For example, UserName.+filter_name :: Lens.Lens' Filter Prelude.Text+filter_name = Lens.lens (\Filter' {name} -> name) (\s@Filter' {} a -> s {name = a} :: Filter)++-- | The property values to filter on. For example, \"user-123\".+filter_values :: Lens.Lens' Filter (Prelude.NonEmpty Prelude.Text)+filter_values = Lens.lens (\Filter' {values} -> values) (\s@Filter' {} a -> s {values = a} :: Filter) Prelude.. Lens.coerced++instance Prelude.Hashable Filter where+ hashWithSalt _salt Filter' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` values++instance Prelude.NFData Filter where+ rnf Filter' {..} =+ Prelude.rnf name `Prelude.seq` Prelude.rnf values++instance Data.ToJSON Filter where+ toJSON Filter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("Name" Data..= name),+ Prelude.Just ("Values" Data..= values)+ ]+ )
+ gen/Amazonka/MemoryDb/Types/InputAuthenticationType.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.Types.InputAuthenticationType+-- 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.MemoryDb.Types.InputAuthenticationType+ ( InputAuthenticationType+ ( ..,+ InputAuthenticationType_Password+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype InputAuthenticationType = InputAuthenticationType'+ { fromInputAuthenticationType ::+ 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 InputAuthenticationType_Password :: InputAuthenticationType+pattern InputAuthenticationType_Password = InputAuthenticationType' "password"++{-# COMPLETE+ InputAuthenticationType_Password,+ InputAuthenticationType'+ #-}
+ gen/Amazonka/MemoryDb/Types/Node.hs view
@@ -0,0 +1,128 @@+{-# 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.MemoryDb.Types.Node+-- 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.MemoryDb.Types.Node where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.Endpoint+import qualified Amazonka.Prelude as Prelude++-- | Represents an individual node within a cluster. Each node runs its own+-- instance of the cluster\'s protocol-compliant caching software.+--+-- /See:/ 'newNode' smart constructor.+data Node = Node'+ { -- | The Availability Zone in which the node resides+ availabilityZone :: Prelude.Maybe Prelude.Text,+ -- | The date and time when the node was created.+ createTime :: Prelude.Maybe Data.POSIX,+ -- | The hostname for connecting to this node.+ endpoint :: Prelude.Maybe Endpoint,+ -- | The node identifier. A node name is a numeric identifier (0001, 0002,+ -- etc.). The combination of cluster name, shard name and node name+ -- uniquely identifies every node used in a customer\'s Amazon account.+ name :: Prelude.Maybe Prelude.Text,+ -- | The status of the service update on the node+ status :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Node' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'availabilityZone', 'node_availabilityZone' - The Availability Zone in which the node resides+--+-- 'createTime', 'node_createTime' - The date and time when the node was created.+--+-- 'endpoint', 'node_endpoint' - The hostname for connecting to this node.+--+-- 'name', 'node_name' - The node identifier. A node name is a numeric identifier (0001, 0002,+-- etc.). The combination of cluster name, shard name and node name+-- uniquely identifies every node used in a customer\'s Amazon account.+--+-- 'status', 'node_status' - The status of the service update on the node+newNode ::+ Node+newNode =+ Node'+ { availabilityZone = Prelude.Nothing,+ createTime = Prelude.Nothing,+ endpoint = Prelude.Nothing,+ name = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The Availability Zone in which the node resides+node_availabilityZone :: Lens.Lens' Node (Prelude.Maybe Prelude.Text)+node_availabilityZone = Lens.lens (\Node' {availabilityZone} -> availabilityZone) (\s@Node' {} a -> s {availabilityZone = a} :: Node)++-- | The date and time when the node was created.+node_createTime :: Lens.Lens' Node (Prelude.Maybe Prelude.UTCTime)+node_createTime = Lens.lens (\Node' {createTime} -> createTime) (\s@Node' {} a -> s {createTime = a} :: Node) Prelude.. Lens.mapping Data._Time++-- | The hostname for connecting to this node.+node_endpoint :: Lens.Lens' Node (Prelude.Maybe Endpoint)+node_endpoint = Lens.lens (\Node' {endpoint} -> endpoint) (\s@Node' {} a -> s {endpoint = a} :: Node)++-- | The node identifier. A node name is a numeric identifier (0001, 0002,+-- etc.). The combination of cluster name, shard name and node name+-- uniquely identifies every node used in a customer\'s Amazon account.+node_name :: Lens.Lens' Node (Prelude.Maybe Prelude.Text)+node_name = Lens.lens (\Node' {name} -> name) (\s@Node' {} a -> s {name = a} :: Node)++-- | The status of the service update on the node+node_status :: Lens.Lens' Node (Prelude.Maybe Prelude.Text)+node_status = Lens.lens (\Node' {status} -> status) (\s@Node' {} a -> s {status = a} :: Node)++instance Data.FromJSON Node where+ parseJSON =+ Data.withObject+ "Node"+ ( \x ->+ Node'+ Prelude.<$> (x Data..:? "AvailabilityZone")+ Prelude.<*> (x Data..:? "CreateTime")+ Prelude.<*> (x Data..:? "Endpoint")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable Node where+ hashWithSalt _salt Node' {..} =+ _salt+ `Prelude.hashWithSalt` availabilityZone+ `Prelude.hashWithSalt` createTime+ `Prelude.hashWithSalt` endpoint+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` status++instance Prelude.NFData Node where+ rnf Node' {..} =+ Prelude.rnf availabilityZone+ `Prelude.seq` Prelude.rnf createTime+ `Prelude.seq` Prelude.rnf endpoint+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/MemoryDb/Types/Parameter.hs view
@@ -0,0 +1,133 @@+{-# 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.MemoryDb.Types.Parameter+-- 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.MemoryDb.Types.Parameter 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 individual setting that controls some aspect of MemoryDB+-- behavior.+--+-- /See:/ 'newParameter' smart constructor.+data Parameter = Parameter'+ { -- | The valid range of values for the parameter.+ allowedValues :: Prelude.Maybe Prelude.Text,+ -- | The parameter\'s data type+ dataType :: Prelude.Maybe Prelude.Text,+ -- | A description of the parameter+ description :: Prelude.Maybe Prelude.Text,+ -- | The earliest engine version to which the parameter can apply.+ minimumEngineVersion :: Prelude.Maybe Prelude.Text,+ -- | The name of the parameter+ name :: Prelude.Maybe Prelude.Text,+ -- | The value of the parameter+ value :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Parameter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowedValues', 'parameter_allowedValues' - The valid range of values for the parameter.+--+-- 'dataType', 'parameter_dataType' - The parameter\'s data type+--+-- 'description', 'parameter_description' - A description of the parameter+--+-- 'minimumEngineVersion', 'parameter_minimumEngineVersion' - The earliest engine version to which the parameter can apply.+--+-- 'name', 'parameter_name' - The name of the parameter+--+-- 'value', 'parameter_value' - The value of the parameter+newParameter ::+ Parameter+newParameter =+ Parameter'+ { allowedValues = Prelude.Nothing,+ dataType = Prelude.Nothing,+ description = Prelude.Nothing,+ minimumEngineVersion = Prelude.Nothing,+ name = Prelude.Nothing,+ value = Prelude.Nothing+ }++-- | The valid range of values for the parameter.+parameter_allowedValues :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)+parameter_allowedValues = Lens.lens (\Parameter' {allowedValues} -> allowedValues) (\s@Parameter' {} a -> s {allowedValues = a} :: Parameter)++-- | The parameter\'s data type+parameter_dataType :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)+parameter_dataType = Lens.lens (\Parameter' {dataType} -> dataType) (\s@Parameter' {} a -> s {dataType = a} :: Parameter)++-- | A description of the parameter+parameter_description :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)+parameter_description = Lens.lens (\Parameter' {description} -> description) (\s@Parameter' {} a -> s {description = a} :: Parameter)++-- | The earliest engine version to which the parameter can apply.+parameter_minimumEngineVersion :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)+parameter_minimumEngineVersion = Lens.lens (\Parameter' {minimumEngineVersion} -> minimumEngineVersion) (\s@Parameter' {} a -> s {minimumEngineVersion = a} :: Parameter)++-- | The name of the parameter+parameter_name :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)+parameter_name = Lens.lens (\Parameter' {name} -> name) (\s@Parameter' {} a -> s {name = a} :: Parameter)++-- | The value of the parameter+parameter_value :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)+parameter_value = Lens.lens (\Parameter' {value} -> value) (\s@Parameter' {} a -> s {value = a} :: Parameter)++instance Data.FromJSON Parameter where+ parseJSON =+ Data.withObject+ "Parameter"+ ( \x ->+ Parameter'+ Prelude.<$> (x Data..:? "AllowedValues")+ Prelude.<*> (x Data..:? "DataType")+ Prelude.<*> (x Data..:? "Description")+ Prelude.<*> (x Data..:? "MinimumEngineVersion")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Value")+ )++instance Prelude.Hashable Parameter where+ hashWithSalt _salt Parameter' {..} =+ _salt+ `Prelude.hashWithSalt` allowedValues+ `Prelude.hashWithSalt` dataType+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` minimumEngineVersion+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` value++instance Prelude.NFData Parameter where+ rnf Parameter' {..} =+ Prelude.rnf allowedValues+ `Prelude.seq` Prelude.rnf dataType+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf minimumEngineVersion+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/MemoryDb/Types/ParameterGroup.hs view
@@ -0,0 +1,113 @@+{-# 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.MemoryDb.Types.ParameterGroup+-- 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.MemoryDb.Types.ParameterGroup 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++-- | Represents the output of a CreateParameterGroup operation. A parameter+-- group represents a combination of specific values for the parameters+-- that are passed to the engine software during startup.+--+-- /See:/ 'newParameterGroup' smart constructor.+data ParameterGroup = ParameterGroup'+ { -- | The Amazon Resource Name (ARN) of the parameter group+ arn :: Prelude.Maybe Prelude.Text,+ -- | A description of the parameter group+ description :: Prelude.Maybe Prelude.Text,+ -- | The name of the parameter group family that this parameter group is+ -- compatible with.+ family :: Prelude.Maybe Prelude.Text,+ -- | The name of the parameter group+ name :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ParameterGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'parameterGroup_arn' - The Amazon Resource Name (ARN) of the parameter group+--+-- 'description', 'parameterGroup_description' - A description of the parameter group+--+-- 'family', 'parameterGroup_family' - The name of the parameter group family that this parameter group is+-- compatible with.+--+-- 'name', 'parameterGroup_name' - The name of the parameter group+newParameterGroup ::+ ParameterGroup+newParameterGroup =+ ParameterGroup'+ { arn = Prelude.Nothing,+ description = Prelude.Nothing,+ family = Prelude.Nothing,+ name = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the parameter group+parameterGroup_arn :: Lens.Lens' ParameterGroup (Prelude.Maybe Prelude.Text)+parameterGroup_arn = Lens.lens (\ParameterGroup' {arn} -> arn) (\s@ParameterGroup' {} a -> s {arn = a} :: ParameterGroup)++-- | A description of the parameter group+parameterGroup_description :: Lens.Lens' ParameterGroup (Prelude.Maybe Prelude.Text)+parameterGroup_description = Lens.lens (\ParameterGroup' {description} -> description) (\s@ParameterGroup' {} a -> s {description = a} :: ParameterGroup)++-- | The name of the parameter group family that this parameter group is+-- compatible with.+parameterGroup_family :: Lens.Lens' ParameterGroup (Prelude.Maybe Prelude.Text)+parameterGroup_family = Lens.lens (\ParameterGroup' {family} -> family) (\s@ParameterGroup' {} a -> s {family = a} :: ParameterGroup)++-- | The name of the parameter group+parameterGroup_name :: Lens.Lens' ParameterGroup (Prelude.Maybe Prelude.Text)+parameterGroup_name = Lens.lens (\ParameterGroup' {name} -> name) (\s@ParameterGroup' {} a -> s {name = a} :: ParameterGroup)++instance Data.FromJSON ParameterGroup where+ parseJSON =+ Data.withObject+ "ParameterGroup"+ ( \x ->+ ParameterGroup'+ Prelude.<$> (x Data..:? "ARN")+ Prelude.<*> (x Data..:? "Description")+ Prelude.<*> (x Data..:? "Family")+ Prelude.<*> (x Data..:? "Name")+ )++instance Prelude.Hashable ParameterGroup where+ hashWithSalt _salt ParameterGroup' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` family+ `Prelude.hashWithSalt` name++instance Prelude.NFData ParameterGroup where+ rnf ParameterGroup' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf family+ `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/MemoryDb/Types/ParameterNameValue.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.MemoryDb.Types.ParameterNameValue+-- 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.MemoryDb.Types.ParameterNameValue 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 name-value pair that is used to update the value of a+-- parameter.+--+-- /See:/ 'newParameterNameValue' smart constructor.+data ParameterNameValue = ParameterNameValue'+ { -- | The name of the parameter+ parameterName :: Prelude.Maybe Prelude.Text,+ -- | The value of the parameter+ parameterValue :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ParameterNameValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'parameterName', 'parameterNameValue_parameterName' - The name of the parameter+--+-- 'parameterValue', 'parameterNameValue_parameterValue' - The value of the parameter+newParameterNameValue ::+ ParameterNameValue+newParameterNameValue =+ ParameterNameValue'+ { parameterName =+ Prelude.Nothing,+ parameterValue = Prelude.Nothing+ }++-- | The name of the parameter+parameterNameValue_parameterName :: Lens.Lens' ParameterNameValue (Prelude.Maybe Prelude.Text)+parameterNameValue_parameterName = Lens.lens (\ParameterNameValue' {parameterName} -> parameterName) (\s@ParameterNameValue' {} a -> s {parameterName = a} :: ParameterNameValue)++-- | The value of the parameter+parameterNameValue_parameterValue :: Lens.Lens' ParameterNameValue (Prelude.Maybe Prelude.Text)+parameterNameValue_parameterValue = Lens.lens (\ParameterNameValue' {parameterValue} -> parameterValue) (\s@ParameterNameValue' {} a -> s {parameterValue = a} :: ParameterNameValue)++instance Prelude.Hashable ParameterNameValue where+ hashWithSalt _salt ParameterNameValue' {..} =+ _salt+ `Prelude.hashWithSalt` parameterName+ `Prelude.hashWithSalt` parameterValue++instance Prelude.NFData ParameterNameValue where+ rnf ParameterNameValue' {..} =+ Prelude.rnf parameterName+ `Prelude.seq` Prelude.rnf parameterValue++instance Data.ToJSON ParameterNameValue where+ toJSON ParameterNameValue' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ParameterName" Data..=) Prelude.<$> parameterName,+ ("ParameterValue" Data..=)+ Prelude.<$> parameterValue+ ]+ )
+ gen/Amazonka/MemoryDb/Types/PendingModifiedServiceUpdate.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.MemoryDb.Types.PendingModifiedServiceUpdate+-- 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.MemoryDb.Types.PendingModifiedServiceUpdate where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.ServiceUpdateStatus+import qualified Amazonka.Prelude as Prelude++-- | Update action that has yet to be processed for the corresponding+-- apply\/stop request+--+-- /See:/ 'newPendingModifiedServiceUpdate' smart constructor.+data PendingModifiedServiceUpdate = PendingModifiedServiceUpdate'+ { -- | The unique ID of the service update+ serviceUpdateName :: Prelude.Maybe Prelude.Text,+ -- | The status of the service update+ status :: Prelude.Maybe ServiceUpdateStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PendingModifiedServiceUpdate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'serviceUpdateName', 'pendingModifiedServiceUpdate_serviceUpdateName' - The unique ID of the service update+--+-- 'status', 'pendingModifiedServiceUpdate_status' - The status of the service update+newPendingModifiedServiceUpdate ::+ PendingModifiedServiceUpdate+newPendingModifiedServiceUpdate =+ PendingModifiedServiceUpdate'+ { serviceUpdateName =+ Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The unique ID of the service update+pendingModifiedServiceUpdate_serviceUpdateName :: Lens.Lens' PendingModifiedServiceUpdate (Prelude.Maybe Prelude.Text)+pendingModifiedServiceUpdate_serviceUpdateName = Lens.lens (\PendingModifiedServiceUpdate' {serviceUpdateName} -> serviceUpdateName) (\s@PendingModifiedServiceUpdate' {} a -> s {serviceUpdateName = a} :: PendingModifiedServiceUpdate)++-- | The status of the service update+pendingModifiedServiceUpdate_status :: Lens.Lens' PendingModifiedServiceUpdate (Prelude.Maybe ServiceUpdateStatus)+pendingModifiedServiceUpdate_status = Lens.lens (\PendingModifiedServiceUpdate' {status} -> status) (\s@PendingModifiedServiceUpdate' {} a -> s {status = a} :: PendingModifiedServiceUpdate)++instance Data.FromJSON PendingModifiedServiceUpdate where+ parseJSON =+ Data.withObject+ "PendingModifiedServiceUpdate"+ ( \x ->+ PendingModifiedServiceUpdate'+ Prelude.<$> (x Data..:? "ServiceUpdateName")+ Prelude.<*> (x Data..:? "Status")+ )++instance+ Prelude.Hashable+ PendingModifiedServiceUpdate+ where+ hashWithSalt _salt PendingModifiedServiceUpdate' {..} =+ _salt+ `Prelude.hashWithSalt` serviceUpdateName+ `Prelude.hashWithSalt` status++instance Prelude.NFData PendingModifiedServiceUpdate where+ rnf PendingModifiedServiceUpdate' {..} =+ Prelude.rnf serviceUpdateName+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/MemoryDb/Types/RecurringCharge.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.MemoryDb.Types.RecurringCharge+-- 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.MemoryDb.Types.RecurringCharge where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The recurring charge to run this reserved node.+--+-- /See:/ 'newRecurringCharge' smart constructor.+data RecurringCharge = RecurringCharge'+ { -- | The amount of the recurring charge to run this reserved node.+ recurringChargeAmount :: Prelude.Maybe Prelude.Double,+ -- | The frequency of the recurring price charged to run this reserved node.+ recurringChargeFrequency :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecurringCharge' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recurringChargeAmount', 'recurringCharge_recurringChargeAmount' - The amount of the recurring charge to run this reserved node.+--+-- 'recurringChargeFrequency', 'recurringCharge_recurringChargeFrequency' - The frequency of the recurring price charged to run this reserved node.+newRecurringCharge ::+ RecurringCharge+newRecurringCharge =+ RecurringCharge'+ { recurringChargeAmount =+ Prelude.Nothing,+ recurringChargeFrequency = Prelude.Nothing+ }++-- | The amount of the recurring charge to run this reserved node.+recurringCharge_recurringChargeAmount :: Lens.Lens' RecurringCharge (Prelude.Maybe Prelude.Double)+recurringCharge_recurringChargeAmount = Lens.lens (\RecurringCharge' {recurringChargeAmount} -> recurringChargeAmount) (\s@RecurringCharge' {} a -> s {recurringChargeAmount = a} :: RecurringCharge)++-- | The frequency of the recurring price charged to run this reserved node.+recurringCharge_recurringChargeFrequency :: Lens.Lens' RecurringCharge (Prelude.Maybe Prelude.Text)+recurringCharge_recurringChargeFrequency = Lens.lens (\RecurringCharge' {recurringChargeFrequency} -> recurringChargeFrequency) (\s@RecurringCharge' {} a -> s {recurringChargeFrequency = a} :: RecurringCharge)++instance Data.FromJSON RecurringCharge where+ parseJSON =+ Data.withObject+ "RecurringCharge"+ ( \x ->+ RecurringCharge'+ Prelude.<$> (x Data..:? "RecurringChargeAmount")+ Prelude.<*> (x Data..:? "RecurringChargeFrequency")+ )++instance Prelude.Hashable RecurringCharge where+ hashWithSalt _salt RecurringCharge' {..} =+ _salt+ `Prelude.hashWithSalt` recurringChargeAmount+ `Prelude.hashWithSalt` recurringChargeFrequency++instance Prelude.NFData RecurringCharge where+ rnf RecurringCharge' {..} =+ Prelude.rnf recurringChargeAmount+ `Prelude.seq` Prelude.rnf recurringChargeFrequency
+ gen/Amazonka/MemoryDb/Types/ReplicaConfigurationRequest.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.Types.ReplicaConfigurationRequest+-- 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.MemoryDb.Types.ReplicaConfigurationRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A request to configure the number of replicas in a shard+--+-- /See:/ 'newReplicaConfigurationRequest' smart constructor.+data ReplicaConfigurationRequest = ReplicaConfigurationRequest'+ { -- | The number of replicas to scale up or down to+ replicaCount :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReplicaConfigurationRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'replicaCount', 'replicaConfigurationRequest_replicaCount' - The number of replicas to scale up or down to+newReplicaConfigurationRequest ::+ ReplicaConfigurationRequest+newReplicaConfigurationRequest =+ ReplicaConfigurationRequest'+ { replicaCount =+ Prelude.Nothing+ }++-- | The number of replicas to scale up or down to+replicaConfigurationRequest_replicaCount :: Lens.Lens' ReplicaConfigurationRequest (Prelude.Maybe Prelude.Int)+replicaConfigurationRequest_replicaCount = Lens.lens (\ReplicaConfigurationRequest' {replicaCount} -> replicaCount) (\s@ReplicaConfigurationRequest' {} a -> s {replicaCount = a} :: ReplicaConfigurationRequest)++instance Prelude.Hashable ReplicaConfigurationRequest where+ hashWithSalt _salt ReplicaConfigurationRequest' {..} =+ _salt `Prelude.hashWithSalt` replicaCount++instance Prelude.NFData ReplicaConfigurationRequest where+ rnf ReplicaConfigurationRequest' {..} =+ Prelude.rnf replicaCount++instance Data.ToJSON ReplicaConfigurationRequest where+ toJSON ReplicaConfigurationRequest' {..} =+ Data.object+ ( Prelude.catMaybes+ [("ReplicaCount" Data..=) Prelude.<$> replicaCount]+ )
+ gen/Amazonka/MemoryDb/Types/ReservedNode.hs view
@@ -0,0 +1,196 @@+{-# 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.MemoryDb.Types.ReservedNode+-- 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.MemoryDb.Types.ReservedNode where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.RecurringCharge+import qualified Amazonka.Prelude as Prelude++-- | Represents the output of a @PurchaseReservedNodesOffering@ operation.+--+-- /See:/ 'newReservedNode' smart constructor.+data ReservedNode = ReservedNode'+ { -- | The Amazon Resource Name (ARN) of the reserved node.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The duration of the reservation in seconds.+ duration :: Prelude.Maybe Prelude.Int,+ -- | The fixed price charged for this reserved node.+ fixedPrice :: Prelude.Maybe Prelude.Double,+ -- | The number of nodes that have been reserved.+ nodeCount :: Prelude.Maybe Prelude.Int,+ -- | The node type for the reserved nodes.+ nodeType :: Prelude.Maybe Prelude.Text,+ -- | The offering type of this reserved node.+ offeringType :: Prelude.Maybe Prelude.Text,+ -- | The recurring price charged to run this reserved node.+ recurringCharges :: Prelude.Maybe [RecurringCharge],+ -- | A customer-specified identifier to track this reservation.+ reservationId :: Prelude.Maybe Prelude.Text,+ -- | The ID of the reserved node offering to purchase.+ reservedNodesOfferingId :: Prelude.Maybe Prelude.Text,+ -- | The time the reservation started.+ startTime :: Prelude.Maybe Data.POSIX,+ -- | The state of the reserved node.+ state :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReservedNode' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'reservedNode_arn' - The Amazon Resource Name (ARN) of the reserved node.+--+-- 'duration', 'reservedNode_duration' - The duration of the reservation in seconds.+--+-- 'fixedPrice', 'reservedNode_fixedPrice' - The fixed price charged for this reserved node.+--+-- 'nodeCount', 'reservedNode_nodeCount' - The number of nodes that have been reserved.+--+-- 'nodeType', 'reservedNode_nodeType' - The node type for the reserved nodes.+--+-- 'offeringType', 'reservedNode_offeringType' - The offering type of this reserved node.+--+-- 'recurringCharges', 'reservedNode_recurringCharges' - The recurring price charged to run this reserved node.+--+-- 'reservationId', 'reservedNode_reservationId' - A customer-specified identifier to track this reservation.+--+-- 'reservedNodesOfferingId', 'reservedNode_reservedNodesOfferingId' - The ID of the reserved node offering to purchase.+--+-- 'startTime', 'reservedNode_startTime' - The time the reservation started.+--+-- 'state', 'reservedNode_state' - The state of the reserved node.+newReservedNode ::+ ReservedNode+newReservedNode =+ ReservedNode'+ { arn = Prelude.Nothing,+ duration = Prelude.Nothing,+ fixedPrice = Prelude.Nothing,+ nodeCount = Prelude.Nothing,+ nodeType = Prelude.Nothing,+ offeringType = Prelude.Nothing,+ recurringCharges = Prelude.Nothing,+ reservationId = Prelude.Nothing,+ reservedNodesOfferingId = Prelude.Nothing,+ startTime = Prelude.Nothing,+ state = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the reserved node.+reservedNode_arn :: Lens.Lens' ReservedNode (Prelude.Maybe Prelude.Text)+reservedNode_arn = Lens.lens (\ReservedNode' {arn} -> arn) (\s@ReservedNode' {} a -> s {arn = a} :: ReservedNode)++-- | The duration of the reservation in seconds.+reservedNode_duration :: Lens.Lens' ReservedNode (Prelude.Maybe Prelude.Int)+reservedNode_duration = Lens.lens (\ReservedNode' {duration} -> duration) (\s@ReservedNode' {} a -> s {duration = a} :: ReservedNode)++-- | The fixed price charged for this reserved node.+reservedNode_fixedPrice :: Lens.Lens' ReservedNode (Prelude.Maybe Prelude.Double)+reservedNode_fixedPrice = Lens.lens (\ReservedNode' {fixedPrice} -> fixedPrice) (\s@ReservedNode' {} a -> s {fixedPrice = a} :: ReservedNode)++-- | The number of nodes that have been reserved.+reservedNode_nodeCount :: Lens.Lens' ReservedNode (Prelude.Maybe Prelude.Int)+reservedNode_nodeCount = Lens.lens (\ReservedNode' {nodeCount} -> nodeCount) (\s@ReservedNode' {} a -> s {nodeCount = a} :: ReservedNode)++-- | The node type for the reserved nodes.+reservedNode_nodeType :: Lens.Lens' ReservedNode (Prelude.Maybe Prelude.Text)+reservedNode_nodeType = Lens.lens (\ReservedNode' {nodeType} -> nodeType) (\s@ReservedNode' {} a -> s {nodeType = a} :: ReservedNode)++-- | The offering type of this reserved node.+reservedNode_offeringType :: Lens.Lens' ReservedNode (Prelude.Maybe Prelude.Text)+reservedNode_offeringType = Lens.lens (\ReservedNode' {offeringType} -> offeringType) (\s@ReservedNode' {} a -> s {offeringType = a} :: ReservedNode)++-- | The recurring price charged to run this reserved node.+reservedNode_recurringCharges :: Lens.Lens' ReservedNode (Prelude.Maybe [RecurringCharge])+reservedNode_recurringCharges = Lens.lens (\ReservedNode' {recurringCharges} -> recurringCharges) (\s@ReservedNode' {} a -> s {recurringCharges = a} :: ReservedNode) Prelude.. Lens.mapping Lens.coerced++-- | A customer-specified identifier to track this reservation.+reservedNode_reservationId :: Lens.Lens' ReservedNode (Prelude.Maybe Prelude.Text)+reservedNode_reservationId = Lens.lens (\ReservedNode' {reservationId} -> reservationId) (\s@ReservedNode' {} a -> s {reservationId = a} :: ReservedNode)++-- | The ID of the reserved node offering to purchase.+reservedNode_reservedNodesOfferingId :: Lens.Lens' ReservedNode (Prelude.Maybe Prelude.Text)+reservedNode_reservedNodesOfferingId = Lens.lens (\ReservedNode' {reservedNodesOfferingId} -> reservedNodesOfferingId) (\s@ReservedNode' {} a -> s {reservedNodesOfferingId = a} :: ReservedNode)++-- | The time the reservation started.+reservedNode_startTime :: Lens.Lens' ReservedNode (Prelude.Maybe Prelude.UTCTime)+reservedNode_startTime = Lens.lens (\ReservedNode' {startTime} -> startTime) (\s@ReservedNode' {} a -> s {startTime = a} :: ReservedNode) Prelude.. Lens.mapping Data._Time++-- | The state of the reserved node.+reservedNode_state :: Lens.Lens' ReservedNode (Prelude.Maybe Prelude.Text)+reservedNode_state = Lens.lens (\ReservedNode' {state} -> state) (\s@ReservedNode' {} a -> s {state = a} :: ReservedNode)++instance Data.FromJSON ReservedNode where+ parseJSON =+ Data.withObject+ "ReservedNode"+ ( \x ->+ ReservedNode'+ Prelude.<$> (x Data..:? "ARN")+ Prelude.<*> (x Data..:? "Duration")+ Prelude.<*> (x Data..:? "FixedPrice")+ Prelude.<*> (x Data..:? "NodeCount")+ Prelude.<*> (x Data..:? "NodeType")+ Prelude.<*> (x Data..:? "OfferingType")+ Prelude.<*> ( x+ Data..:? "RecurringCharges"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "ReservationId")+ Prelude.<*> (x Data..:? "ReservedNodesOfferingId")+ Prelude.<*> (x Data..:? "StartTime")+ Prelude.<*> (x Data..:? "State")+ )++instance Prelude.Hashable ReservedNode where+ hashWithSalt _salt ReservedNode' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` duration+ `Prelude.hashWithSalt` fixedPrice+ `Prelude.hashWithSalt` nodeCount+ `Prelude.hashWithSalt` nodeType+ `Prelude.hashWithSalt` offeringType+ `Prelude.hashWithSalt` recurringCharges+ `Prelude.hashWithSalt` reservationId+ `Prelude.hashWithSalt` reservedNodesOfferingId+ `Prelude.hashWithSalt` startTime+ `Prelude.hashWithSalt` state++instance Prelude.NFData ReservedNode where+ rnf ReservedNode' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf duration+ `Prelude.seq` Prelude.rnf fixedPrice+ `Prelude.seq` Prelude.rnf nodeCount+ `Prelude.seq` Prelude.rnf nodeType+ `Prelude.seq` Prelude.rnf offeringType+ `Prelude.seq` Prelude.rnf recurringCharges+ `Prelude.seq` Prelude.rnf reservationId+ `Prelude.seq` Prelude.rnf reservedNodesOfferingId+ `Prelude.seq` Prelude.rnf startTime+ `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/MemoryDb/Types/ReservedNodesOffering.hs view
@@ -0,0 +1,139 @@+{-# 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.MemoryDb.Types.ReservedNodesOffering+-- 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.MemoryDb.Types.ReservedNodesOffering where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.RecurringCharge+import qualified Amazonka.Prelude as Prelude++-- | The offering type of this node.+--+-- /See:/ 'newReservedNodesOffering' smart constructor.+data ReservedNodesOffering = ReservedNodesOffering'+ { -- | The duration of the reservation in seconds.+ duration :: Prelude.Maybe Prelude.Int,+ -- | The fixed price charged for this reserved node.+ fixedPrice :: Prelude.Maybe Prelude.Double,+ -- | The node type for the reserved nodes. For more information, see+ -- <https://docs.aws.amazon.com/memorydb/latest/devguide/nodes.reserved.html#reserved-nodes-supported Supported node types>.+ nodeType :: Prelude.Maybe Prelude.Text,+ -- | The offering type of this reserved node.+ offeringType :: Prelude.Maybe Prelude.Text,+ -- | The recurring price charged to run this reserved node.+ recurringCharges :: Prelude.Maybe [RecurringCharge],+ -- | The offering identifier.+ reservedNodesOfferingId :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReservedNodesOffering' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'duration', 'reservedNodesOffering_duration' - The duration of the reservation in seconds.+--+-- 'fixedPrice', 'reservedNodesOffering_fixedPrice' - The fixed price charged for this reserved node.+--+-- 'nodeType', 'reservedNodesOffering_nodeType' - The node type for the reserved nodes. For more information, see+-- <https://docs.aws.amazon.com/memorydb/latest/devguide/nodes.reserved.html#reserved-nodes-supported Supported node types>.+--+-- 'offeringType', 'reservedNodesOffering_offeringType' - The offering type of this reserved node.+--+-- 'recurringCharges', 'reservedNodesOffering_recurringCharges' - The recurring price charged to run this reserved node.+--+-- 'reservedNodesOfferingId', 'reservedNodesOffering_reservedNodesOfferingId' - The offering identifier.+newReservedNodesOffering ::+ ReservedNodesOffering+newReservedNodesOffering =+ ReservedNodesOffering'+ { duration = Prelude.Nothing,+ fixedPrice = Prelude.Nothing,+ nodeType = Prelude.Nothing,+ offeringType = Prelude.Nothing,+ recurringCharges = Prelude.Nothing,+ reservedNodesOfferingId = Prelude.Nothing+ }++-- | The duration of the reservation in seconds.+reservedNodesOffering_duration :: Lens.Lens' ReservedNodesOffering (Prelude.Maybe Prelude.Int)+reservedNodesOffering_duration = Lens.lens (\ReservedNodesOffering' {duration} -> duration) (\s@ReservedNodesOffering' {} a -> s {duration = a} :: ReservedNodesOffering)++-- | The fixed price charged for this reserved node.+reservedNodesOffering_fixedPrice :: Lens.Lens' ReservedNodesOffering (Prelude.Maybe Prelude.Double)+reservedNodesOffering_fixedPrice = Lens.lens (\ReservedNodesOffering' {fixedPrice} -> fixedPrice) (\s@ReservedNodesOffering' {} a -> s {fixedPrice = a} :: ReservedNodesOffering)++-- | The node type for the reserved nodes. For more information, see+-- <https://docs.aws.amazon.com/memorydb/latest/devguide/nodes.reserved.html#reserved-nodes-supported Supported node types>.+reservedNodesOffering_nodeType :: Lens.Lens' ReservedNodesOffering (Prelude.Maybe Prelude.Text)+reservedNodesOffering_nodeType = Lens.lens (\ReservedNodesOffering' {nodeType} -> nodeType) (\s@ReservedNodesOffering' {} a -> s {nodeType = a} :: ReservedNodesOffering)++-- | The offering type of this reserved node.+reservedNodesOffering_offeringType :: Lens.Lens' ReservedNodesOffering (Prelude.Maybe Prelude.Text)+reservedNodesOffering_offeringType = Lens.lens (\ReservedNodesOffering' {offeringType} -> offeringType) (\s@ReservedNodesOffering' {} a -> s {offeringType = a} :: ReservedNodesOffering)++-- | The recurring price charged to run this reserved node.+reservedNodesOffering_recurringCharges :: Lens.Lens' ReservedNodesOffering (Prelude.Maybe [RecurringCharge])+reservedNodesOffering_recurringCharges = Lens.lens (\ReservedNodesOffering' {recurringCharges} -> recurringCharges) (\s@ReservedNodesOffering' {} a -> s {recurringCharges = a} :: ReservedNodesOffering) Prelude.. Lens.mapping Lens.coerced++-- | The offering identifier.+reservedNodesOffering_reservedNodesOfferingId :: Lens.Lens' ReservedNodesOffering (Prelude.Maybe Prelude.Text)+reservedNodesOffering_reservedNodesOfferingId = Lens.lens (\ReservedNodesOffering' {reservedNodesOfferingId} -> reservedNodesOfferingId) (\s@ReservedNodesOffering' {} a -> s {reservedNodesOfferingId = a} :: ReservedNodesOffering)++instance Data.FromJSON ReservedNodesOffering where+ parseJSON =+ Data.withObject+ "ReservedNodesOffering"+ ( \x ->+ ReservedNodesOffering'+ Prelude.<$> (x Data..:? "Duration")+ Prelude.<*> (x Data..:? "FixedPrice")+ Prelude.<*> (x Data..:? "NodeType")+ Prelude.<*> (x Data..:? "OfferingType")+ Prelude.<*> ( x+ Data..:? "RecurringCharges"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "ReservedNodesOfferingId")+ )++instance Prelude.Hashable ReservedNodesOffering where+ hashWithSalt _salt ReservedNodesOffering' {..} =+ _salt+ `Prelude.hashWithSalt` duration+ `Prelude.hashWithSalt` fixedPrice+ `Prelude.hashWithSalt` nodeType+ `Prelude.hashWithSalt` offeringType+ `Prelude.hashWithSalt` recurringCharges+ `Prelude.hashWithSalt` reservedNodesOfferingId++instance Prelude.NFData ReservedNodesOffering where+ rnf ReservedNodesOffering' {..} =+ Prelude.rnf duration+ `Prelude.seq` Prelude.rnf fixedPrice+ `Prelude.seq` Prelude.rnf nodeType+ `Prelude.seq` Prelude.rnf offeringType+ `Prelude.seq` Prelude.rnf recurringCharges+ `Prelude.seq` Prelude.rnf reservedNodesOfferingId
+ gen/Amazonka/MemoryDb/Types/ReshardingStatus.hs view
@@ -0,0 +1,69 @@+{-# 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.MemoryDb.Types.ReshardingStatus+-- 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.MemoryDb.Types.ReshardingStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.SlotMigration+import qualified Amazonka.Prelude as Prelude++-- | The status of the online resharding+--+-- /See:/ 'newReshardingStatus' smart constructor.+data ReshardingStatus = ReshardingStatus'+ { -- | The status of the online resharding slot migration+ slotMigration :: Prelude.Maybe SlotMigration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReshardingStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'slotMigration', 'reshardingStatus_slotMigration' - The status of the online resharding slot migration+newReshardingStatus ::+ ReshardingStatus+newReshardingStatus =+ ReshardingStatus' {slotMigration = Prelude.Nothing}++-- | The status of the online resharding slot migration+reshardingStatus_slotMigration :: Lens.Lens' ReshardingStatus (Prelude.Maybe SlotMigration)+reshardingStatus_slotMigration = Lens.lens (\ReshardingStatus' {slotMigration} -> slotMigration) (\s@ReshardingStatus' {} a -> s {slotMigration = a} :: ReshardingStatus)++instance Data.FromJSON ReshardingStatus where+ parseJSON =+ Data.withObject+ "ReshardingStatus"+ ( \x ->+ ReshardingStatus'+ Prelude.<$> (x Data..:? "SlotMigration")+ )++instance Prelude.Hashable ReshardingStatus where+ hashWithSalt _salt ReshardingStatus' {..} =+ _salt `Prelude.hashWithSalt` slotMigration++instance Prelude.NFData ReshardingStatus where+ rnf ReshardingStatus' {..} = Prelude.rnf slotMigration
+ gen/Amazonka/MemoryDb/Types/SecurityGroupMembership.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.Types.SecurityGroupMembership+-- 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.MemoryDb.Types.SecurityGroupMembership 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++-- | Represents a single security group and its status.+--+-- /See:/ 'newSecurityGroupMembership' smart constructor.+data SecurityGroupMembership = SecurityGroupMembership'+ { -- | The identifier of the security group.+ securityGroupId :: Prelude.Maybe Prelude.Text,+ -- | The status of the security group membership. The status changes whenever+ -- a security group is modified, or when the security groups assigned to a+ -- cluster are modified.+ status :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SecurityGroupMembership' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'securityGroupId', 'securityGroupMembership_securityGroupId' - The identifier of the security group.+--+-- 'status', 'securityGroupMembership_status' - The status of the security group membership. The status changes whenever+-- a security group is modified, or when the security groups assigned to a+-- cluster are modified.+newSecurityGroupMembership ::+ SecurityGroupMembership+newSecurityGroupMembership =+ SecurityGroupMembership'+ { securityGroupId =+ Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The identifier of the security group.+securityGroupMembership_securityGroupId :: Lens.Lens' SecurityGroupMembership (Prelude.Maybe Prelude.Text)+securityGroupMembership_securityGroupId = Lens.lens (\SecurityGroupMembership' {securityGroupId} -> securityGroupId) (\s@SecurityGroupMembership' {} a -> s {securityGroupId = a} :: SecurityGroupMembership)++-- | The status of the security group membership. The status changes whenever+-- a security group is modified, or when the security groups assigned to a+-- cluster are modified.+securityGroupMembership_status :: Lens.Lens' SecurityGroupMembership (Prelude.Maybe Prelude.Text)+securityGroupMembership_status = Lens.lens (\SecurityGroupMembership' {status} -> status) (\s@SecurityGroupMembership' {} a -> s {status = a} :: SecurityGroupMembership)++instance Data.FromJSON SecurityGroupMembership where+ parseJSON =+ Data.withObject+ "SecurityGroupMembership"+ ( \x ->+ SecurityGroupMembership'+ Prelude.<$> (x Data..:? "SecurityGroupId")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable SecurityGroupMembership where+ hashWithSalt _salt SecurityGroupMembership' {..} =+ _salt+ `Prelude.hashWithSalt` securityGroupId+ `Prelude.hashWithSalt` status++instance Prelude.NFData SecurityGroupMembership where+ rnf SecurityGroupMembership' {..} =+ Prelude.rnf securityGroupId+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/MemoryDb/Types/ServiceUpdate.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.MemoryDb.Types.ServiceUpdate+-- 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.MemoryDb.Types.ServiceUpdate where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.ServiceUpdateStatus+import Amazonka.MemoryDb.Types.ServiceUpdateType+import qualified Amazonka.Prelude as Prelude++-- | An update that you can apply to your MemoryDB clusters.+--+-- /See:/ 'newServiceUpdate' smart constructor.+data ServiceUpdate = ServiceUpdate'+ { -- | The date at which the service update will be automatically applied+ autoUpdateStartDate :: Prelude.Maybe Data.POSIX,+ -- | The name of the cluster to which the service update applies+ clusterName :: Prelude.Maybe Prelude.Text,+ -- | Provides details of the service update+ description :: Prelude.Maybe Prelude.Text,+ -- | A list of nodes updated by the service update+ nodesUpdated :: Prelude.Maybe Prelude.Text,+ -- | The date when the service update is initially available+ releaseDate :: Prelude.Maybe Data.POSIX,+ -- | The unique ID of the service update+ serviceUpdateName :: Prelude.Maybe Prelude.Text,+ -- | The status of the service update+ status :: Prelude.Maybe ServiceUpdateStatus,+ -- | Reflects the nature of the service update+ type' :: Prelude.Maybe ServiceUpdateType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceUpdate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoUpdateStartDate', 'serviceUpdate_autoUpdateStartDate' - The date at which the service update will be automatically applied+--+-- 'clusterName', 'serviceUpdate_clusterName' - The name of the cluster to which the service update applies+--+-- 'description', 'serviceUpdate_description' - Provides details of the service update+--+-- 'nodesUpdated', 'serviceUpdate_nodesUpdated' - A list of nodes updated by the service update+--+-- 'releaseDate', 'serviceUpdate_releaseDate' - The date when the service update is initially available+--+-- 'serviceUpdateName', 'serviceUpdate_serviceUpdateName' - The unique ID of the service update+--+-- 'status', 'serviceUpdate_status' - The status of the service update+--+-- 'type'', 'serviceUpdate_type' - Reflects the nature of the service update+newServiceUpdate ::+ ServiceUpdate+newServiceUpdate =+ ServiceUpdate'+ { autoUpdateStartDate =+ Prelude.Nothing,+ clusterName = Prelude.Nothing,+ description = Prelude.Nothing,+ nodesUpdated = Prelude.Nothing,+ releaseDate = Prelude.Nothing,+ serviceUpdateName = Prelude.Nothing,+ status = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | The date at which the service update will be automatically applied+serviceUpdate_autoUpdateStartDate :: Lens.Lens' ServiceUpdate (Prelude.Maybe Prelude.UTCTime)+serviceUpdate_autoUpdateStartDate = Lens.lens (\ServiceUpdate' {autoUpdateStartDate} -> autoUpdateStartDate) (\s@ServiceUpdate' {} a -> s {autoUpdateStartDate = a} :: ServiceUpdate) Prelude.. Lens.mapping Data._Time++-- | The name of the cluster to which the service update applies+serviceUpdate_clusterName :: Lens.Lens' ServiceUpdate (Prelude.Maybe Prelude.Text)+serviceUpdate_clusterName = Lens.lens (\ServiceUpdate' {clusterName} -> clusterName) (\s@ServiceUpdate' {} a -> s {clusterName = a} :: ServiceUpdate)++-- | Provides details of the service update+serviceUpdate_description :: Lens.Lens' ServiceUpdate (Prelude.Maybe Prelude.Text)+serviceUpdate_description = Lens.lens (\ServiceUpdate' {description} -> description) (\s@ServiceUpdate' {} a -> s {description = a} :: ServiceUpdate)++-- | A list of nodes updated by the service update+serviceUpdate_nodesUpdated :: Lens.Lens' ServiceUpdate (Prelude.Maybe Prelude.Text)+serviceUpdate_nodesUpdated = Lens.lens (\ServiceUpdate' {nodesUpdated} -> nodesUpdated) (\s@ServiceUpdate' {} a -> s {nodesUpdated = a} :: ServiceUpdate)++-- | The date when the service update is initially available+serviceUpdate_releaseDate :: Lens.Lens' ServiceUpdate (Prelude.Maybe Prelude.UTCTime)+serviceUpdate_releaseDate = Lens.lens (\ServiceUpdate' {releaseDate} -> releaseDate) (\s@ServiceUpdate' {} a -> s {releaseDate = a} :: ServiceUpdate) Prelude.. Lens.mapping Data._Time++-- | The unique ID of the service update+serviceUpdate_serviceUpdateName :: Lens.Lens' ServiceUpdate (Prelude.Maybe Prelude.Text)+serviceUpdate_serviceUpdateName = Lens.lens (\ServiceUpdate' {serviceUpdateName} -> serviceUpdateName) (\s@ServiceUpdate' {} a -> s {serviceUpdateName = a} :: ServiceUpdate)++-- | The status of the service update+serviceUpdate_status :: Lens.Lens' ServiceUpdate (Prelude.Maybe ServiceUpdateStatus)+serviceUpdate_status = Lens.lens (\ServiceUpdate' {status} -> status) (\s@ServiceUpdate' {} a -> s {status = a} :: ServiceUpdate)++-- | Reflects the nature of the service update+serviceUpdate_type :: Lens.Lens' ServiceUpdate (Prelude.Maybe ServiceUpdateType)+serviceUpdate_type = Lens.lens (\ServiceUpdate' {type'} -> type') (\s@ServiceUpdate' {} a -> s {type' = a} :: ServiceUpdate)++instance Data.FromJSON ServiceUpdate where+ parseJSON =+ Data.withObject+ "ServiceUpdate"+ ( \x ->+ ServiceUpdate'+ Prelude.<$> (x Data..:? "AutoUpdateStartDate")+ Prelude.<*> (x Data..:? "ClusterName")+ Prelude.<*> (x Data..:? "Description")+ Prelude.<*> (x Data..:? "NodesUpdated")+ Prelude.<*> (x Data..:? "ReleaseDate")+ Prelude.<*> (x Data..:? "ServiceUpdateName")+ Prelude.<*> (x Data..:? "Status")+ Prelude.<*> (x Data..:? "Type")+ )++instance Prelude.Hashable ServiceUpdate where+ hashWithSalt _salt ServiceUpdate' {..} =+ _salt+ `Prelude.hashWithSalt` autoUpdateStartDate+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` nodesUpdated+ `Prelude.hashWithSalt` releaseDate+ `Prelude.hashWithSalt` serviceUpdateName+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` type'++instance Prelude.NFData ServiceUpdate where+ rnf ServiceUpdate' {..} =+ Prelude.rnf autoUpdateStartDate+ `Prelude.seq` Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf nodesUpdated+ `Prelude.seq` Prelude.rnf releaseDate+ `Prelude.seq` Prelude.rnf serviceUpdateName+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/MemoryDb/Types/ServiceUpdateRequest.hs view
@@ -0,0 +1,73 @@+{-# 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.MemoryDb.Types.ServiceUpdateRequest+-- 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.MemoryDb.Types.ServiceUpdateRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A request to apply a service update+--+-- /See:/ 'newServiceUpdateRequest' smart constructor.+data ServiceUpdateRequest = ServiceUpdateRequest'+ { -- | The unique ID of the service update+ serviceUpdateNameToApply :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceUpdateRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'serviceUpdateNameToApply', 'serviceUpdateRequest_serviceUpdateNameToApply' - The unique ID of the service update+newServiceUpdateRequest ::+ ServiceUpdateRequest+newServiceUpdateRequest =+ ServiceUpdateRequest'+ { serviceUpdateNameToApply =+ Prelude.Nothing+ }++-- | The unique ID of the service update+serviceUpdateRequest_serviceUpdateNameToApply :: Lens.Lens' ServiceUpdateRequest (Prelude.Maybe Prelude.Text)+serviceUpdateRequest_serviceUpdateNameToApply = Lens.lens (\ServiceUpdateRequest' {serviceUpdateNameToApply} -> serviceUpdateNameToApply) (\s@ServiceUpdateRequest' {} a -> s {serviceUpdateNameToApply = a} :: ServiceUpdateRequest)++instance Prelude.Hashable ServiceUpdateRequest where+ hashWithSalt _salt ServiceUpdateRequest' {..} =+ _salt+ `Prelude.hashWithSalt` serviceUpdateNameToApply++instance Prelude.NFData ServiceUpdateRequest where+ rnf ServiceUpdateRequest' {..} =+ Prelude.rnf serviceUpdateNameToApply++instance Data.ToJSON ServiceUpdateRequest where+ toJSON ServiceUpdateRequest' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ServiceUpdateNameToApply" Data..=)+ Prelude.<$> serviceUpdateNameToApply+ ]+ )
+ gen/Amazonka/MemoryDb/Types/ServiceUpdateStatus.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.Types.ServiceUpdateStatus+-- 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.MemoryDb.Types.ServiceUpdateStatus+ ( ServiceUpdateStatus+ ( ..,+ ServiceUpdateStatus_Available,+ ServiceUpdateStatus_Complete,+ ServiceUpdateStatus_In_progress,+ ServiceUpdateStatus_Scheduled+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ServiceUpdateStatus = ServiceUpdateStatus'+ { fromServiceUpdateStatus ::+ 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 ServiceUpdateStatus_Available :: ServiceUpdateStatus+pattern ServiceUpdateStatus_Available = ServiceUpdateStatus' "available"++pattern ServiceUpdateStatus_Complete :: ServiceUpdateStatus+pattern ServiceUpdateStatus_Complete = ServiceUpdateStatus' "complete"++pattern ServiceUpdateStatus_In_progress :: ServiceUpdateStatus+pattern ServiceUpdateStatus_In_progress = ServiceUpdateStatus' "in-progress"++pattern ServiceUpdateStatus_Scheduled :: ServiceUpdateStatus+pattern ServiceUpdateStatus_Scheduled = ServiceUpdateStatus' "scheduled"++{-# COMPLETE+ ServiceUpdateStatus_Available,+ ServiceUpdateStatus_Complete,+ ServiceUpdateStatus_In_progress,+ ServiceUpdateStatus_Scheduled,+ ServiceUpdateStatus'+ #-}
+ gen/Amazonka/MemoryDb/Types/ServiceUpdateType.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.Types.ServiceUpdateType+-- 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.MemoryDb.Types.ServiceUpdateType+ ( ServiceUpdateType+ ( ..,+ ServiceUpdateType_Security_update+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ServiceUpdateType = ServiceUpdateType'+ { fromServiceUpdateType ::+ 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 ServiceUpdateType_Security_update :: ServiceUpdateType+pattern ServiceUpdateType_Security_update = ServiceUpdateType' "security-update"++{-# COMPLETE+ ServiceUpdateType_Security_update,+ ServiceUpdateType'+ #-}
+ gen/Amazonka/MemoryDb/Types/Shard.hs view
@@ -0,0 +1,126 @@+{-# 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.MemoryDb.Types.Shard+-- 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.MemoryDb.Types.Shard where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.Node+import qualified Amazonka.Prelude as Prelude++-- | Represents a collection of nodes in a cluster. One node in the node+-- group is the read\/write primary node. All the other nodes are read-only+-- Replica nodes.+--+-- /See:/ 'newShard' smart constructor.+data Shard = Shard'+ { -- | The name of the shard+ name :: Prelude.Maybe Prelude.Text,+ -- | A list containing information about individual nodes within the shard+ nodes :: Prelude.Maybe [Node],+ -- | The number of nodes in the shard+ numberOfNodes :: Prelude.Maybe Prelude.Int,+ -- | The keyspace for this shard.+ slots :: Prelude.Maybe Prelude.Text,+ -- | The current state of this replication group - creating, available,+ -- modifying, deleting.+ status :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Shard' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'shard_name' - The name of the shard+--+-- 'nodes', 'shard_nodes' - A list containing information about individual nodes within the shard+--+-- 'numberOfNodes', 'shard_numberOfNodes' - The number of nodes in the shard+--+-- 'slots', 'shard_slots' - The keyspace for this shard.+--+-- 'status', 'shard_status' - The current state of this replication group - creating, available,+-- modifying, deleting.+newShard ::+ Shard+newShard =+ Shard'+ { name = Prelude.Nothing,+ nodes = Prelude.Nothing,+ numberOfNodes = Prelude.Nothing,+ slots = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The name of the shard+shard_name :: Lens.Lens' Shard (Prelude.Maybe Prelude.Text)+shard_name = Lens.lens (\Shard' {name} -> name) (\s@Shard' {} a -> s {name = a} :: Shard)++-- | A list containing information about individual nodes within the shard+shard_nodes :: Lens.Lens' Shard (Prelude.Maybe [Node])+shard_nodes = Lens.lens (\Shard' {nodes} -> nodes) (\s@Shard' {} a -> s {nodes = a} :: Shard) Prelude.. Lens.mapping Lens.coerced++-- | The number of nodes in the shard+shard_numberOfNodes :: Lens.Lens' Shard (Prelude.Maybe Prelude.Int)+shard_numberOfNodes = Lens.lens (\Shard' {numberOfNodes} -> numberOfNodes) (\s@Shard' {} a -> s {numberOfNodes = a} :: Shard)++-- | The keyspace for this shard.+shard_slots :: Lens.Lens' Shard (Prelude.Maybe Prelude.Text)+shard_slots = Lens.lens (\Shard' {slots} -> slots) (\s@Shard' {} a -> s {slots = a} :: Shard)++-- | The current state of this replication group - creating, available,+-- modifying, deleting.+shard_status :: Lens.Lens' Shard (Prelude.Maybe Prelude.Text)+shard_status = Lens.lens (\Shard' {status} -> status) (\s@Shard' {} a -> s {status = a} :: Shard)++instance Data.FromJSON Shard where+ parseJSON =+ Data.withObject+ "Shard"+ ( \x ->+ Shard'+ Prelude.<$> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Nodes" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "NumberOfNodes")+ Prelude.<*> (x Data..:? "Slots")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable Shard where+ hashWithSalt _salt Shard' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` nodes+ `Prelude.hashWithSalt` numberOfNodes+ `Prelude.hashWithSalt` slots+ `Prelude.hashWithSalt` status++instance Prelude.NFData Shard where+ rnf Shard' {..} =+ Prelude.rnf name+ `Prelude.seq` Prelude.rnf nodes+ `Prelude.seq` Prelude.rnf numberOfNodes+ `Prelude.seq` Prelude.rnf slots+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/MemoryDb/Types/ShardConfiguration.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.Types.ShardConfiguration+-- 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.MemoryDb.Types.ShardConfiguration 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++-- | Shard configuration options. Each shard configuration has the following:+-- Slots and ReplicaCount.+--+-- /See:/ 'newShardConfiguration' smart constructor.+data ShardConfiguration = ShardConfiguration'+ { -- | The number of read replica nodes in this shard.+ replicaCount :: Prelude.Maybe Prelude.Int,+ -- | A string that specifies the keyspace for a particular node group.+ -- Keyspaces range from 0 to 16,383. The string is in the format+ -- startkey-endkey.+ slots :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ShardConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'replicaCount', 'shardConfiguration_replicaCount' - The number of read replica nodes in this shard.+--+-- 'slots', 'shardConfiguration_slots' - A string that specifies the keyspace for a particular node group.+-- Keyspaces range from 0 to 16,383. The string is in the format+-- startkey-endkey.+newShardConfiguration ::+ ShardConfiguration+newShardConfiguration =+ ShardConfiguration'+ { replicaCount = Prelude.Nothing,+ slots = Prelude.Nothing+ }++-- | The number of read replica nodes in this shard.+shardConfiguration_replicaCount :: Lens.Lens' ShardConfiguration (Prelude.Maybe Prelude.Int)+shardConfiguration_replicaCount = Lens.lens (\ShardConfiguration' {replicaCount} -> replicaCount) (\s@ShardConfiguration' {} a -> s {replicaCount = a} :: ShardConfiguration)++-- | A string that specifies the keyspace for a particular node group.+-- Keyspaces range from 0 to 16,383. The string is in the format+-- startkey-endkey.+shardConfiguration_slots :: Lens.Lens' ShardConfiguration (Prelude.Maybe Prelude.Text)+shardConfiguration_slots = Lens.lens (\ShardConfiguration' {slots} -> slots) (\s@ShardConfiguration' {} a -> s {slots = a} :: ShardConfiguration)++instance Data.FromJSON ShardConfiguration where+ parseJSON =+ Data.withObject+ "ShardConfiguration"+ ( \x ->+ ShardConfiguration'+ Prelude.<$> (x Data..:? "ReplicaCount")+ Prelude.<*> (x Data..:? "Slots")+ )++instance Prelude.Hashable ShardConfiguration where+ hashWithSalt _salt ShardConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` replicaCount+ `Prelude.hashWithSalt` slots++instance Prelude.NFData ShardConfiguration where+ rnf ShardConfiguration' {..} =+ Prelude.rnf replicaCount+ `Prelude.seq` Prelude.rnf slots
+ gen/Amazonka/MemoryDb/Types/ShardConfigurationRequest.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.Types.ShardConfigurationRequest+-- 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.MemoryDb.Types.ShardConfigurationRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A request to configure the sharding properties of a cluster+--+-- /See:/ 'newShardConfigurationRequest' smart constructor.+data ShardConfigurationRequest = ShardConfigurationRequest'+ { -- | The number of shards in the cluster+ shardCount :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ShardConfigurationRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'shardCount', 'shardConfigurationRequest_shardCount' - The number of shards in the cluster+newShardConfigurationRequest ::+ ShardConfigurationRequest+newShardConfigurationRequest =+ ShardConfigurationRequest'+ { shardCount =+ Prelude.Nothing+ }++-- | The number of shards in the cluster+shardConfigurationRequest_shardCount :: Lens.Lens' ShardConfigurationRequest (Prelude.Maybe Prelude.Int)+shardConfigurationRequest_shardCount = Lens.lens (\ShardConfigurationRequest' {shardCount} -> shardCount) (\s@ShardConfigurationRequest' {} a -> s {shardCount = a} :: ShardConfigurationRequest)++instance Prelude.Hashable ShardConfigurationRequest where+ hashWithSalt _salt ShardConfigurationRequest' {..} =+ _salt `Prelude.hashWithSalt` shardCount++instance Prelude.NFData ShardConfigurationRequest where+ rnf ShardConfigurationRequest' {..} =+ Prelude.rnf shardCount++instance Data.ToJSON ShardConfigurationRequest where+ toJSON ShardConfigurationRequest' {..} =+ Data.object+ ( Prelude.catMaybes+ [("ShardCount" Data..=) Prelude.<$> shardCount]+ )
+ gen/Amazonka/MemoryDb/Types/ShardDetail.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.MemoryDb.Types.ShardDetail+-- 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.MemoryDb.Types.ShardDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.ShardConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides details of a shard in a snapshot+--+-- /See:/ 'newShardDetail' smart constructor.+data ShardDetail = ShardDetail'+ { -- | The configuration details of the shard+ configuration :: Prelude.Maybe ShardConfiguration,+ -- | The name of the shard+ name :: Prelude.Maybe Prelude.Text,+ -- | The size of the shard\'s snapshot+ size :: Prelude.Maybe Prelude.Text,+ -- | The date and time that the shard\'s snapshot was created+ snapshotCreationTime :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ShardDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'shardDetail_configuration' - The configuration details of the shard+--+-- 'name', 'shardDetail_name' - The name of the shard+--+-- 'size', 'shardDetail_size' - The size of the shard\'s snapshot+--+-- 'snapshotCreationTime', 'shardDetail_snapshotCreationTime' - The date and time that the shard\'s snapshot was created+newShardDetail ::+ ShardDetail+newShardDetail =+ ShardDetail'+ { configuration = Prelude.Nothing,+ name = Prelude.Nothing,+ size = Prelude.Nothing,+ snapshotCreationTime = Prelude.Nothing+ }++-- | The configuration details of the shard+shardDetail_configuration :: Lens.Lens' ShardDetail (Prelude.Maybe ShardConfiguration)+shardDetail_configuration = Lens.lens (\ShardDetail' {configuration} -> configuration) (\s@ShardDetail' {} a -> s {configuration = a} :: ShardDetail)++-- | The name of the shard+shardDetail_name :: Lens.Lens' ShardDetail (Prelude.Maybe Prelude.Text)+shardDetail_name = Lens.lens (\ShardDetail' {name} -> name) (\s@ShardDetail' {} a -> s {name = a} :: ShardDetail)++-- | The size of the shard\'s snapshot+shardDetail_size :: Lens.Lens' ShardDetail (Prelude.Maybe Prelude.Text)+shardDetail_size = Lens.lens (\ShardDetail' {size} -> size) (\s@ShardDetail' {} a -> s {size = a} :: ShardDetail)++-- | The date and time that the shard\'s snapshot was created+shardDetail_snapshotCreationTime :: Lens.Lens' ShardDetail (Prelude.Maybe Prelude.UTCTime)+shardDetail_snapshotCreationTime = Lens.lens (\ShardDetail' {snapshotCreationTime} -> snapshotCreationTime) (\s@ShardDetail' {} a -> s {snapshotCreationTime = a} :: ShardDetail) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON ShardDetail where+ parseJSON =+ Data.withObject+ "ShardDetail"+ ( \x ->+ ShardDetail'+ Prelude.<$> (x Data..:? "Configuration")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Size")+ Prelude.<*> (x Data..:? "SnapshotCreationTime")+ )++instance Prelude.Hashable ShardDetail where+ hashWithSalt _salt ShardDetail' {..} =+ _salt+ `Prelude.hashWithSalt` configuration+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` size+ `Prelude.hashWithSalt` snapshotCreationTime++instance Prelude.NFData ShardDetail where+ rnf ShardDetail' {..} =+ Prelude.rnf configuration+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf size+ `Prelude.seq` Prelude.rnf snapshotCreationTime
+ gen/Amazonka/MemoryDb/Types/SlotMigration.hs view
@@ -0,0 +1,72 @@+{-# 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.MemoryDb.Types.SlotMigration+-- 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.MemoryDb.Types.SlotMigration 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++-- | Represents the progress of an online resharding operation.+--+-- /See:/ 'newSlotMigration' smart constructor.+data SlotMigration = SlotMigration'+ { -- | The percentage of the slot migration that is complete.+ progressPercentage :: Prelude.Maybe Prelude.Double+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotMigration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'progressPercentage', 'slotMigration_progressPercentage' - The percentage of the slot migration that is complete.+newSlotMigration ::+ SlotMigration+newSlotMigration =+ SlotMigration'+ { progressPercentage =+ Prelude.Nothing+ }++-- | The percentage of the slot migration that is complete.+slotMigration_progressPercentage :: Lens.Lens' SlotMigration (Prelude.Maybe Prelude.Double)+slotMigration_progressPercentage = Lens.lens (\SlotMigration' {progressPercentage} -> progressPercentage) (\s@SlotMigration' {} a -> s {progressPercentage = a} :: SlotMigration)++instance Data.FromJSON SlotMigration where+ parseJSON =+ Data.withObject+ "SlotMigration"+ ( \x ->+ SlotMigration'+ Prelude.<$> (x Data..:? "ProgressPercentage")+ )++instance Prelude.Hashable SlotMigration where+ hashWithSalt _salt SlotMigration' {..} =+ _salt `Prelude.hashWithSalt` progressPercentage++instance Prelude.NFData SlotMigration where+ rnf SlotMigration' {..} =+ Prelude.rnf progressPercentage
+ gen/Amazonka/MemoryDb/Types/Snapshot.hs view
@@ -0,0 +1,162 @@+{-# 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.MemoryDb.Types.Snapshot+-- 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.MemoryDb.Types.Snapshot where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.ClusterConfiguration+import Amazonka.MemoryDb.Types.DataTieringStatus+import qualified Amazonka.Prelude as Prelude++-- | Represents a copy of an entire cluster as of the time when the snapshot+-- was taken.+--+-- /See:/ 'newSnapshot' smart constructor.+data Snapshot = Snapshot'+ { -- | The ARN (Amazon Resource Name) of the snapshot.+ arn :: Prelude.Maybe Prelude.Text,+ -- | The configuration of the cluster from which the snapshot was taken+ clusterConfiguration :: Prelude.Maybe ClusterConfiguration,+ -- | Enables data tiering. Data tiering is only supported for clusters using+ -- the r6gd node type. This parameter must be set when using r6gd nodes.+ -- For more information, see+ -- <https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html Data tiering>.+ dataTiering :: Prelude.Maybe DataTieringStatus,+ -- | The ID of the KMS key used to encrypt the snapshot.+ kmsKeyId :: Prelude.Maybe Prelude.Text,+ -- | The name of the snapshot+ name :: Prelude.Maybe Prelude.Text,+ -- | Indicates whether the snapshot is from an automatic backup (automated)+ -- or was created manually (manual).+ source :: Prelude.Maybe Prelude.Text,+ -- | The status of the snapshot. Valid values: creating | available |+ -- restoring | copying | deleting.+ status :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Snapshot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'snapshot_arn' - The ARN (Amazon Resource Name) of the snapshot.+--+-- 'clusterConfiguration', 'snapshot_clusterConfiguration' - The configuration of the cluster from which the snapshot was taken+--+-- 'dataTiering', 'snapshot_dataTiering' - Enables data tiering. Data tiering is only supported for clusters using+-- the r6gd node type. This parameter must be set when using r6gd nodes.+-- For more information, see+-- <https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html Data tiering>.+--+-- 'kmsKeyId', 'snapshot_kmsKeyId' - The ID of the KMS key used to encrypt the snapshot.+--+-- 'name', 'snapshot_name' - The name of the snapshot+--+-- 'source', 'snapshot_source' - Indicates whether the snapshot is from an automatic backup (automated)+-- or was created manually (manual).+--+-- 'status', 'snapshot_status' - The status of the snapshot. Valid values: creating | available |+-- restoring | copying | deleting.+newSnapshot ::+ Snapshot+newSnapshot =+ Snapshot'+ { arn = Prelude.Nothing,+ clusterConfiguration = Prelude.Nothing,+ dataTiering = Prelude.Nothing,+ kmsKeyId = Prelude.Nothing,+ name = Prelude.Nothing,+ source = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The ARN (Amazon Resource Name) of the snapshot.+snapshot_arn :: Lens.Lens' Snapshot (Prelude.Maybe Prelude.Text)+snapshot_arn = Lens.lens (\Snapshot' {arn} -> arn) (\s@Snapshot' {} a -> s {arn = a} :: Snapshot)++-- | The configuration of the cluster from which the snapshot was taken+snapshot_clusterConfiguration :: Lens.Lens' Snapshot (Prelude.Maybe ClusterConfiguration)+snapshot_clusterConfiguration = Lens.lens (\Snapshot' {clusterConfiguration} -> clusterConfiguration) (\s@Snapshot' {} a -> s {clusterConfiguration = a} :: Snapshot)++-- | Enables data tiering. Data tiering is only supported for clusters using+-- the r6gd node type. This parameter must be set when using r6gd nodes.+-- For more information, see+-- <https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html Data tiering>.+snapshot_dataTiering :: Lens.Lens' Snapshot (Prelude.Maybe DataTieringStatus)+snapshot_dataTiering = Lens.lens (\Snapshot' {dataTiering} -> dataTiering) (\s@Snapshot' {} a -> s {dataTiering = a} :: Snapshot)++-- | The ID of the KMS key used to encrypt the snapshot.+snapshot_kmsKeyId :: Lens.Lens' Snapshot (Prelude.Maybe Prelude.Text)+snapshot_kmsKeyId = Lens.lens (\Snapshot' {kmsKeyId} -> kmsKeyId) (\s@Snapshot' {} a -> s {kmsKeyId = a} :: Snapshot)++-- | The name of the snapshot+snapshot_name :: Lens.Lens' Snapshot (Prelude.Maybe Prelude.Text)+snapshot_name = Lens.lens (\Snapshot' {name} -> name) (\s@Snapshot' {} a -> s {name = a} :: Snapshot)++-- | Indicates whether the snapshot is from an automatic backup (automated)+-- or was created manually (manual).+snapshot_source :: Lens.Lens' Snapshot (Prelude.Maybe Prelude.Text)+snapshot_source = Lens.lens (\Snapshot' {source} -> source) (\s@Snapshot' {} a -> s {source = a} :: Snapshot)++-- | The status of the snapshot. Valid values: creating | available |+-- restoring | copying | deleting.+snapshot_status :: Lens.Lens' Snapshot (Prelude.Maybe Prelude.Text)+snapshot_status = Lens.lens (\Snapshot' {status} -> status) (\s@Snapshot' {} a -> s {status = a} :: Snapshot)++instance Data.FromJSON Snapshot where+ parseJSON =+ Data.withObject+ "Snapshot"+ ( \x ->+ Snapshot'+ Prelude.<$> (x Data..:? "ARN")+ Prelude.<*> (x Data..:? "ClusterConfiguration")+ Prelude.<*> (x Data..:? "DataTiering")+ Prelude.<*> (x Data..:? "KmsKeyId")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Source")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable Snapshot where+ hashWithSalt _salt Snapshot' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` clusterConfiguration+ `Prelude.hashWithSalt` dataTiering+ `Prelude.hashWithSalt` kmsKeyId+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` source+ `Prelude.hashWithSalt` status++instance Prelude.NFData Snapshot where+ rnf Snapshot' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf clusterConfiguration+ `Prelude.seq` Prelude.rnf dataTiering+ `Prelude.seq` Prelude.rnf kmsKeyId+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf source+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/MemoryDb/Types/SourceType.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.Types.SourceType+-- 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.MemoryDb.Types.SourceType+ ( SourceType+ ( ..,+ SourceType_Acl,+ SourceType_Cluster,+ SourceType_Node,+ SourceType_Parameter_group,+ SourceType_Subnet_group,+ SourceType_User+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SourceType = SourceType'+ { fromSourceType ::+ 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 SourceType_Acl :: SourceType+pattern SourceType_Acl = SourceType' "acl"++pattern SourceType_Cluster :: SourceType+pattern SourceType_Cluster = SourceType' "cluster"++pattern SourceType_Node :: SourceType+pattern SourceType_Node = SourceType' "node"++pattern SourceType_Parameter_group :: SourceType+pattern SourceType_Parameter_group = SourceType' "parameter-group"++pattern SourceType_Subnet_group :: SourceType+pattern SourceType_Subnet_group = SourceType' "subnet-group"++pattern SourceType_User :: SourceType+pattern SourceType_User = SourceType' "user"++{-# COMPLETE+ SourceType_Acl,+ SourceType_Cluster,+ SourceType_Node,+ SourceType_Parameter_group,+ SourceType_Subnet_group,+ SourceType_User,+ SourceType'+ #-}
+ gen/Amazonka/MemoryDb/Types/Subnet.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.MemoryDb.Types.Subnet+-- 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.MemoryDb.Types.Subnet where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.AvailabilityZone+import qualified Amazonka.Prelude as Prelude++-- | Represents the subnet associated with a cluster. This parameter refers+-- to subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used+-- with MemoryDB.+--+-- /See:/ 'newSubnet' smart constructor.+data Subnet = Subnet'+ { -- | The Availability Zone where the subnet resides+ availabilityZone :: Prelude.Maybe AvailabilityZone,+ -- | The unique identifier for the subnet.+ identifier :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Subnet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'availabilityZone', 'subnet_availabilityZone' - The Availability Zone where the subnet resides+--+-- 'identifier', 'subnet_identifier' - The unique identifier for the subnet.+newSubnet ::+ Subnet+newSubnet =+ Subnet'+ { availabilityZone = Prelude.Nothing,+ identifier = Prelude.Nothing+ }++-- | The Availability Zone where the subnet resides+subnet_availabilityZone :: Lens.Lens' Subnet (Prelude.Maybe AvailabilityZone)+subnet_availabilityZone = Lens.lens (\Subnet' {availabilityZone} -> availabilityZone) (\s@Subnet' {} a -> s {availabilityZone = a} :: Subnet)++-- | The unique identifier for the subnet.+subnet_identifier :: Lens.Lens' Subnet (Prelude.Maybe Prelude.Text)+subnet_identifier = Lens.lens (\Subnet' {identifier} -> identifier) (\s@Subnet' {} a -> s {identifier = a} :: Subnet)++instance Data.FromJSON Subnet where+ parseJSON =+ Data.withObject+ "Subnet"+ ( \x ->+ Subnet'+ Prelude.<$> (x Data..:? "AvailabilityZone")+ Prelude.<*> (x Data..:? "Identifier")+ )++instance Prelude.Hashable Subnet where+ hashWithSalt _salt Subnet' {..} =+ _salt+ `Prelude.hashWithSalt` availabilityZone+ `Prelude.hashWithSalt` identifier++instance Prelude.NFData Subnet where+ rnf Subnet' {..} =+ Prelude.rnf availabilityZone+ `Prelude.seq` Prelude.rnf identifier
+ gen/Amazonka/MemoryDb/Types/SubnetGroup.hs view
@@ -0,0 +1,132 @@+{-# 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.MemoryDb.Types.SubnetGroup+-- 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.MemoryDb.Types.SubnetGroup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.Subnet+import qualified Amazonka.Prelude as Prelude++-- | Represents the output of one of the following operations:+--+-- - CreateSubnetGroup+--+-- - UpdateSubnetGroup+--+-- A subnet group is a collection of subnets (typically private) that you+-- can designate for your clusters running in an Amazon Virtual Private+-- Cloud (VPC) environment.+--+-- /See:/ 'newSubnetGroup' smart constructor.+data SubnetGroup = SubnetGroup'+ { -- | The ARN (Amazon Resource Name) of the subnet group.+ arn :: Prelude.Maybe Prelude.Text,+ -- | A description of the subnet group+ description :: Prelude.Maybe Prelude.Text,+ -- | The name of the subnet group+ name :: Prelude.Maybe Prelude.Text,+ -- | A list of subnets associated with the subnet group.+ subnets :: Prelude.Maybe [Subnet],+ -- | The Amazon Virtual Private Cloud identifier (VPC ID) of the subnet+ -- group.+ vpcId :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SubnetGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'subnetGroup_arn' - The ARN (Amazon Resource Name) of the subnet group.+--+-- 'description', 'subnetGroup_description' - A description of the subnet group+--+-- 'name', 'subnetGroup_name' - The name of the subnet group+--+-- 'subnets', 'subnetGroup_subnets' - A list of subnets associated with the subnet group.+--+-- 'vpcId', 'subnetGroup_vpcId' - The Amazon Virtual Private Cloud identifier (VPC ID) of the subnet+-- group.+newSubnetGroup ::+ SubnetGroup+newSubnetGroup =+ SubnetGroup'+ { arn = Prelude.Nothing,+ description = Prelude.Nothing,+ name = Prelude.Nothing,+ subnets = Prelude.Nothing,+ vpcId = Prelude.Nothing+ }++-- | The ARN (Amazon Resource Name) of the subnet group.+subnetGroup_arn :: Lens.Lens' SubnetGroup (Prelude.Maybe Prelude.Text)+subnetGroup_arn = Lens.lens (\SubnetGroup' {arn} -> arn) (\s@SubnetGroup' {} a -> s {arn = a} :: SubnetGroup)++-- | A description of the subnet group+subnetGroup_description :: Lens.Lens' SubnetGroup (Prelude.Maybe Prelude.Text)+subnetGroup_description = Lens.lens (\SubnetGroup' {description} -> description) (\s@SubnetGroup' {} a -> s {description = a} :: SubnetGroup)++-- | The name of the subnet group+subnetGroup_name :: Lens.Lens' SubnetGroup (Prelude.Maybe Prelude.Text)+subnetGroup_name = Lens.lens (\SubnetGroup' {name} -> name) (\s@SubnetGroup' {} a -> s {name = a} :: SubnetGroup)++-- | A list of subnets associated with the subnet group.+subnetGroup_subnets :: Lens.Lens' SubnetGroup (Prelude.Maybe [Subnet])+subnetGroup_subnets = Lens.lens (\SubnetGroup' {subnets} -> subnets) (\s@SubnetGroup' {} a -> s {subnets = a} :: SubnetGroup) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Virtual Private Cloud identifier (VPC ID) of the subnet+-- group.+subnetGroup_vpcId :: Lens.Lens' SubnetGroup (Prelude.Maybe Prelude.Text)+subnetGroup_vpcId = Lens.lens (\SubnetGroup' {vpcId} -> vpcId) (\s@SubnetGroup' {} a -> s {vpcId = a} :: SubnetGroup)++instance Data.FromJSON SubnetGroup where+ parseJSON =+ Data.withObject+ "SubnetGroup"+ ( \x ->+ SubnetGroup'+ Prelude.<$> (x Data..:? "ARN")+ Prelude.<*> (x Data..:? "Description")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Subnets" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "VpcId")+ )++instance Prelude.Hashable SubnetGroup where+ hashWithSalt _salt SubnetGroup' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` subnets+ `Prelude.hashWithSalt` vpcId++instance Prelude.NFData SubnetGroup where+ rnf SubnetGroup' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf subnets+ `Prelude.seq` Prelude.rnf vpcId
+ gen/Amazonka/MemoryDb/Types/Tag.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.MemoryDb.Types.Tag+-- 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.MemoryDb.Types.Tag where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A tag that can be added to an MemoryDB resource. Tags are composed of a+-- Key\/Value pair. You can use tags to categorize and track all your+-- MemoryDB resources. When you add or remove tags on clusters, those+-- actions will be replicated to all nodes in the cluster. A tag with a+-- null Value is permitted. For more information, see+-- <https://docs.aws.amazon.com/MemoryDB/latest/devguide/tagging-resources.html Tagging your MemoryDB resources>+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+ { -- | The key for the tag. May not be null.+ key :: Prelude.Maybe Prelude.Text,+ -- | The tag\'s value. May be null.+ value :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Tag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'tag_key' - The key for the tag. May not be null.+--+-- 'value', 'tag_value' - The tag\'s value. May be null.+newTag ::+ Tag+newTag =+ Tag'+ { key = Prelude.Nothing,+ value = Prelude.Nothing+ }++-- | The key for the tag. May not be null.+tag_key :: Lens.Lens' Tag (Prelude.Maybe Prelude.Text)+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)++-- | The tag\'s value. May be null.+tag_value :: Lens.Lens' Tag (Prelude.Maybe Prelude.Text)+tag_value = Lens.lens (\Tag' {value} -> value) (\s@Tag' {} a -> s {value = a} :: Tag)++instance Data.FromJSON Tag where+ parseJSON =+ Data.withObject+ "Tag"+ ( \x ->+ Tag'+ Prelude.<$> (x Data..:? "Key")+ Prelude.<*> (x Data..:? "Value")+ )++instance Prelude.Hashable Tag where+ hashWithSalt _salt Tag' {..} =+ _salt+ `Prelude.hashWithSalt` key+ `Prelude.hashWithSalt` value++instance Prelude.NFData Tag where+ rnf Tag' {..} =+ Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Tag where+ toJSON Tag' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Key" Data..=) Prelude.<$> key,+ ("Value" Data..=) Prelude.<$> value+ ]+ )
+ gen/Amazonka/MemoryDb/Types/UnprocessedCluster.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.MemoryDb.Types.UnprocessedCluster+-- 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.MemoryDb.Types.UnprocessedCluster where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A cluster whose updates have failed+--+-- /See:/ 'newUnprocessedCluster' smart constructor.+data UnprocessedCluster = UnprocessedCluster'+ { -- | The name of the cluster+ clusterName :: Prelude.Maybe Prelude.Text,+ -- | The error message associated with the update failure+ errorMessage :: Prelude.Maybe Prelude.Text,+ -- | The error type associated with the update failure+ errorType :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UnprocessedCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clusterName', 'unprocessedCluster_clusterName' - The name of the cluster+--+-- 'errorMessage', 'unprocessedCluster_errorMessage' - The error message associated with the update failure+--+-- 'errorType', 'unprocessedCluster_errorType' - The error type associated with the update failure+newUnprocessedCluster ::+ UnprocessedCluster+newUnprocessedCluster =+ UnprocessedCluster'+ { clusterName = Prelude.Nothing,+ errorMessage = Prelude.Nothing,+ errorType = Prelude.Nothing+ }++-- | The name of the cluster+unprocessedCluster_clusterName :: Lens.Lens' UnprocessedCluster (Prelude.Maybe Prelude.Text)+unprocessedCluster_clusterName = Lens.lens (\UnprocessedCluster' {clusterName} -> clusterName) (\s@UnprocessedCluster' {} a -> s {clusterName = a} :: UnprocessedCluster)++-- | The error message associated with the update failure+unprocessedCluster_errorMessage :: Lens.Lens' UnprocessedCluster (Prelude.Maybe Prelude.Text)+unprocessedCluster_errorMessage = Lens.lens (\UnprocessedCluster' {errorMessage} -> errorMessage) (\s@UnprocessedCluster' {} a -> s {errorMessage = a} :: UnprocessedCluster)++-- | The error type associated with the update failure+unprocessedCluster_errorType :: Lens.Lens' UnprocessedCluster (Prelude.Maybe Prelude.Text)+unprocessedCluster_errorType = Lens.lens (\UnprocessedCluster' {errorType} -> errorType) (\s@UnprocessedCluster' {} a -> s {errorType = a} :: UnprocessedCluster)++instance Data.FromJSON UnprocessedCluster where+ parseJSON =+ Data.withObject+ "UnprocessedCluster"+ ( \x ->+ UnprocessedCluster'+ Prelude.<$> (x Data..:? "ClusterName")+ Prelude.<*> (x Data..:? "ErrorMessage")+ Prelude.<*> (x Data..:? "ErrorType")+ )++instance Prelude.Hashable UnprocessedCluster where+ hashWithSalt _salt UnprocessedCluster' {..} =+ _salt+ `Prelude.hashWithSalt` clusterName+ `Prelude.hashWithSalt` errorMessage+ `Prelude.hashWithSalt` errorType++instance Prelude.NFData UnprocessedCluster where+ rnf UnprocessedCluster' {..} =+ Prelude.rnf clusterName+ `Prelude.seq` Prelude.rnf errorMessage+ `Prelude.seq` Prelude.rnf errorType
+ gen/Amazonka/MemoryDb/Types/User.hs view
@@ -0,0 +1,151 @@+{-# 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.MemoryDb.Types.User+-- 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.MemoryDb.Types.User where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types.Authentication+import qualified Amazonka.Prelude as Prelude++-- | You create users and assign them specific permissions by using an access+-- string. You assign the users to Access Control Lists aligned with a+-- specific role (administrators, human resources) that are then deployed+-- to one or more MemoryDB clusters.+--+-- /See:/ 'newUser' smart constructor.+data User = User'+ { -- | The names of the Access Control Lists to which the user belongs+ aCLNames :: Prelude.Maybe [Prelude.Text],+ -- | The Amazon Resource Name (ARN) of the user.+ arn :: Prelude.Maybe Prelude.Text,+ -- | Access permissions string used for this user.+ accessString :: Prelude.Maybe Prelude.Text,+ -- | Denotes whether the user requires a password to authenticate.+ authentication :: Prelude.Maybe Authentication,+ -- | The minimum engine version supported for the user+ minimumEngineVersion :: Prelude.Maybe Prelude.Text,+ -- | The name of the user+ name :: Prelude.Maybe Prelude.Text,+ -- | Indicates the user status. Can be \"active\", \"modifying\" or+ -- \"deleting\".+ status :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'User' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'aCLNames', 'user_aCLNames' - The names of the Access Control Lists to which the user belongs+--+-- 'arn', 'user_arn' - The Amazon Resource Name (ARN) of the user.+--+-- 'accessString', 'user_accessString' - Access permissions string used for this user.+--+-- 'authentication', 'user_authentication' - Denotes whether the user requires a password to authenticate.+--+-- 'minimumEngineVersion', 'user_minimumEngineVersion' - The minimum engine version supported for the user+--+-- 'name', 'user_name' - The name of the user+--+-- 'status', 'user_status' - Indicates the user status. Can be \"active\", \"modifying\" or+-- \"deleting\".+newUser ::+ User+newUser =+ User'+ { aCLNames = Prelude.Nothing,+ arn = Prelude.Nothing,+ accessString = Prelude.Nothing,+ authentication = Prelude.Nothing,+ minimumEngineVersion = Prelude.Nothing,+ name = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The names of the Access Control Lists to which the user belongs+user_aCLNames :: Lens.Lens' User (Prelude.Maybe [Prelude.Text])+user_aCLNames = Lens.lens (\User' {aCLNames} -> aCLNames) (\s@User' {} a -> s {aCLNames = a} :: User) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the user.+user_arn :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_arn = Lens.lens (\User' {arn} -> arn) (\s@User' {} a -> s {arn = a} :: User)++-- | Access permissions string used for this user.+user_accessString :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_accessString = Lens.lens (\User' {accessString} -> accessString) (\s@User' {} a -> s {accessString = a} :: User)++-- | Denotes whether the user requires a password to authenticate.+user_authentication :: Lens.Lens' User (Prelude.Maybe Authentication)+user_authentication = Lens.lens (\User' {authentication} -> authentication) (\s@User' {} a -> s {authentication = a} :: User)++-- | The minimum engine version supported for the user+user_minimumEngineVersion :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_minimumEngineVersion = Lens.lens (\User' {minimumEngineVersion} -> minimumEngineVersion) (\s@User' {} a -> s {minimumEngineVersion = a} :: User)++-- | The name of the user+user_name :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_name = Lens.lens (\User' {name} -> name) (\s@User' {} a -> s {name = a} :: User)++-- | Indicates the user status. Can be \"active\", \"modifying\" or+-- \"deleting\".+user_status :: Lens.Lens' User (Prelude.Maybe Prelude.Text)+user_status = Lens.lens (\User' {status} -> status) (\s@User' {} a -> s {status = a} :: User)++instance Data.FromJSON User where+ parseJSON =+ Data.withObject+ "User"+ ( \x ->+ User'+ Prelude.<$> (x Data..:? "ACLNames" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "ARN")+ Prelude.<*> (x Data..:? "AccessString")+ Prelude.<*> (x Data..:? "Authentication")+ Prelude.<*> (x Data..:? "MinimumEngineVersion")+ Prelude.<*> (x Data..:? "Name")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable User where+ hashWithSalt _salt User' {..} =+ _salt+ `Prelude.hashWithSalt` aCLNames+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` accessString+ `Prelude.hashWithSalt` authentication+ `Prelude.hashWithSalt` minimumEngineVersion+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` status++instance Prelude.NFData User where+ rnf User' {..} =+ Prelude.rnf aCLNames+ `Prelude.seq` Prelude.rnf arn+ `Prelude.seq` Prelude.rnf accessString+ `Prelude.seq` Prelude.rnf authentication+ `Prelude.seq` Prelude.rnf minimumEngineVersion+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/MemoryDb/UntagResource.hs view
@@ -0,0 +1,188 @@+{-# 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.MemoryDb.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)+--+-- Use this operation to remove tags on a resource+module Amazonka.MemoryDb.UntagResource+ ( -- * Creating a Request+ UntagResource (..),+ newUntagResource,++ -- * Request Lenses+ untagResource_resourceArn,+ untagResource_tagKeys,++ -- * Destructuring the Response+ UntagResourceResponse (..),+ newUntagResourceResponse,++ -- * Response Lenses+ untagResourceResponse_tagList,+ 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.MemoryDb.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 Amazon Resource Name (ARN) of the resource to which the tags are to+ -- be removed+ resourceArn :: Prelude.Text,+ -- | The list of keys of the tags that are to be removed+ tagKeys :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource to which the tags are to+-- be removed+--+-- 'tagKeys', 'untagResource_tagKeys' - The list of keys of the tags that are to be removed+newUntagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ UntagResource+newUntagResource pResourceArn_ =+ UntagResource'+ { resourceArn = pResourceArn_,+ tagKeys = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the resource to which the tags are to+-- be removed+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The list of keys of the tags that are to be removed+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+ type+ AWSResponse UntagResource =+ UntagResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UntagResourceResponse'+ Prelude.<$> (x Data..?> "TagList" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UntagResource where+ hashWithSalt _salt UntagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+ rnf UntagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.UntagResource" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UntagResource where+ toJSON UntagResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("ResourceArn" Data..= resourceArn),+ Prelude.Just ("TagKeys" Data..= tagKeys)+ ]+ )++instance Data.ToPath UntagResource where+ toPath = Prelude.const "/"++instance Data.ToQuery UntagResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+ { -- | The list of tags removed+ tagList :: Prelude.Maybe [Tag],+ -- | 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:+--+-- 'tagList', 'untagResourceResponse_tagList' - The list of tags removed+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+ UntagResourceResponse'+ { tagList = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of tags removed+untagResourceResponse_tagList :: Lens.Lens' UntagResourceResponse (Prelude.Maybe [Tag])+untagResourceResponse_tagList = Lens.lens (\UntagResourceResponse' {tagList} -> tagList) (\s@UntagResourceResponse' {} a -> s {tagList = a} :: UntagResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | 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 tagList+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/UpdateACL.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.MemoryDb.UpdateACL+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Changes the list of users that belong to the Access Control List.+module Amazonka.MemoryDb.UpdateACL+ ( -- * Creating a Request+ UpdateACL (..),+ newUpdateACL,++ -- * Request Lenses+ updateACL_userNamesToAdd,+ updateACL_userNamesToRemove,+ updateACL_aCLName,++ -- * Destructuring the Response+ UpdateACLResponse (..),+ newUpdateACLResponse,++ -- * Response Lenses+ updateACLResponse_acl,+ updateACLResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateACL' smart constructor.+data UpdateACL = UpdateACL'+ { -- | The list of users to add to the Access Control List+ userNamesToAdd :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | The list of users to remove from the Access Control List+ userNamesToRemove :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+ -- | The name of the Access Control List+ aCLName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateACL' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'userNamesToAdd', 'updateACL_userNamesToAdd' - The list of users to add to the Access Control List+--+-- 'userNamesToRemove', 'updateACL_userNamesToRemove' - The list of users to remove from the Access Control List+--+-- 'aCLName', 'updateACL_aCLName' - The name of the Access Control List+newUpdateACL ::+ -- | 'aCLName'+ Prelude.Text ->+ UpdateACL+newUpdateACL pACLName_ =+ UpdateACL'+ { userNamesToAdd = Prelude.Nothing,+ userNamesToRemove = Prelude.Nothing,+ aCLName = pACLName_+ }++-- | The list of users to add to the Access Control List+updateACL_userNamesToAdd :: Lens.Lens' UpdateACL (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateACL_userNamesToAdd = Lens.lens (\UpdateACL' {userNamesToAdd} -> userNamesToAdd) (\s@UpdateACL' {} a -> s {userNamesToAdd = a} :: UpdateACL) Prelude.. Lens.mapping Lens.coerced++-- | The list of users to remove from the Access Control List+updateACL_userNamesToRemove :: Lens.Lens' UpdateACL (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateACL_userNamesToRemove = Lens.lens (\UpdateACL' {userNamesToRemove} -> userNamesToRemove) (\s@UpdateACL' {} a -> s {userNamesToRemove = a} :: UpdateACL) Prelude.. Lens.mapping Lens.coerced++-- | The name of the Access Control List+updateACL_aCLName :: Lens.Lens' UpdateACL Prelude.Text+updateACL_aCLName = Lens.lens (\UpdateACL' {aCLName} -> aCLName) (\s@UpdateACL' {} a -> s {aCLName = a} :: UpdateACL)++instance Core.AWSRequest UpdateACL where+ type AWSResponse UpdateACL = UpdateACLResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateACLResponse'+ Prelude.<$> (x Data..?> "ACL")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateACL where+ hashWithSalt _salt UpdateACL' {..} =+ _salt+ `Prelude.hashWithSalt` userNamesToAdd+ `Prelude.hashWithSalt` userNamesToRemove+ `Prelude.hashWithSalt` aCLName++instance Prelude.NFData UpdateACL where+ rnf UpdateACL' {..} =+ Prelude.rnf userNamesToAdd+ `Prelude.seq` Prelude.rnf userNamesToRemove+ `Prelude.seq` Prelude.rnf aCLName++instance Data.ToHeaders UpdateACL where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ("AmazonMemoryDB.UpdateACL" :: Prelude.ByteString),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateACL where+ toJSON UpdateACL' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("UserNamesToAdd" Data..=)+ Prelude.<$> userNamesToAdd,+ ("UserNamesToRemove" Data..=)+ Prelude.<$> userNamesToRemove,+ Prelude.Just ("ACLName" Data..= aCLName)+ ]+ )++instance Data.ToPath UpdateACL where+ toPath = Prelude.const "/"++instance Data.ToQuery UpdateACL where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateACLResponse' smart constructor.+data UpdateACLResponse = UpdateACLResponse'+ { -- | The updated Access Control List+ acl :: Prelude.Maybe ACL,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateACLResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acl', 'updateACLResponse_acl' - The updated Access Control List+--+-- 'httpStatus', 'updateACLResponse_httpStatus' - The response's http status code.+newUpdateACLResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateACLResponse+newUpdateACLResponse pHttpStatus_ =+ UpdateACLResponse'+ { acl = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The updated Access Control List+updateACLResponse_acl :: Lens.Lens' UpdateACLResponse (Prelude.Maybe ACL)+updateACLResponse_acl = Lens.lens (\UpdateACLResponse' {acl} -> acl) (\s@UpdateACLResponse' {} a -> s {acl = a} :: UpdateACLResponse)++-- | The response's http status code.+updateACLResponse_httpStatus :: Lens.Lens' UpdateACLResponse Prelude.Int+updateACLResponse_httpStatus = Lens.lens (\UpdateACLResponse' {httpStatus} -> httpStatus) (\s@UpdateACLResponse' {} a -> s {httpStatus = a} :: UpdateACLResponse)++instance Prelude.NFData UpdateACLResponse where+ rnf UpdateACLResponse' {..} =+ Prelude.rnf acl+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/UpdateCluster.hs view
@@ -0,0 +1,441 @@+{-# 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.MemoryDb.UpdateCluster+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the settings for a cluster. You can use this operation to+-- change one or more cluster configuration settings by specifying the+-- settings and the new values.+module Amazonka.MemoryDb.UpdateCluster+ ( -- * Creating a Request+ UpdateCluster (..),+ newUpdateCluster,++ -- * Request Lenses+ updateCluster_aCLName,+ updateCluster_description,+ updateCluster_engineVersion,+ updateCluster_maintenanceWindow,+ updateCluster_nodeType,+ updateCluster_parameterGroupName,+ updateCluster_replicaConfiguration,+ updateCluster_securityGroupIds,+ updateCluster_shardConfiguration,+ updateCluster_snapshotRetentionLimit,+ updateCluster_snapshotWindow,+ updateCluster_snsTopicArn,+ updateCluster_snsTopicStatus,+ updateCluster_clusterName,++ -- * Destructuring the Response+ UpdateClusterResponse (..),+ newUpdateClusterResponse,++ -- * Response Lenses+ updateClusterResponse_cluster,+ updateClusterResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateCluster' smart constructor.+data UpdateCluster = UpdateCluster'+ { -- | The Access Control List that is associated with the cluster+ aCLName :: Prelude.Maybe Prelude.Text,+ -- | The description of the cluster to update+ description :: Prelude.Maybe Prelude.Text,+ -- | The upgraded version of the engine to be run on the nodes. You can+ -- upgrade to a newer engine version, but you cannot downgrade to an+ -- earlier engine version. If you want to use an earlier engine version,+ -- you must delete the existing cluster and create it anew with the earlier+ -- engine version.+ engineVersion :: Prelude.Maybe Prelude.Text,+ -- | Specifies the weekly time range during which maintenance on the cluster+ -- is performed. It is specified as a range in the format+ -- ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window+ -- is a 60 minute period.+ --+ -- Valid values for @ddd@ are:+ --+ -- - @sun@+ --+ -- - @mon@+ --+ -- - @tue@+ --+ -- - @wed@+ --+ -- - @thu@+ --+ -- - @fri@+ --+ -- - @sat@+ --+ -- Example: @sun:23:00-mon:01:30@+ maintenanceWindow :: Prelude.Maybe Prelude.Text,+ -- | A valid node type that you want to scale this cluster up or down to.+ nodeType :: Prelude.Maybe Prelude.Text,+ -- | The name of the parameter group to update+ parameterGroupName :: Prelude.Maybe Prelude.Text,+ -- | The number of replicas that will reside in each shard+ replicaConfiguration :: Prelude.Maybe ReplicaConfigurationRequest,+ -- | The SecurityGroupIds to update+ securityGroupIds :: Prelude.Maybe [Prelude.Text],+ -- | The number of shards in the cluster+ shardConfiguration :: Prelude.Maybe ShardConfigurationRequest,+ -- | The number of days for which MemoryDB retains automatic cluster+ -- snapshots before deleting them. For example, if you set+ -- SnapshotRetentionLimit to 5, a snapshot that was taken today is retained+ -- for 5 days before being deleted.+ snapshotRetentionLimit :: Prelude.Maybe Prelude.Int,+ -- | The daily time range (in UTC) during which MemoryDB begins taking a+ -- daily snapshot of your cluster.+ snapshotWindow :: Prelude.Maybe Prelude.Text,+ -- | The SNS topic ARN to update+ snsTopicArn :: Prelude.Maybe Prelude.Text,+ -- | The status of the Amazon SNS notification topic. Notifications are sent+ -- only if the status is active.+ snsTopicStatus :: Prelude.Maybe Prelude.Text,+ -- | The name of the cluster to update+ clusterName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'aCLName', 'updateCluster_aCLName' - The Access Control List that is associated with the cluster+--+-- 'description', 'updateCluster_description' - The description of the cluster to update+--+-- 'engineVersion', 'updateCluster_engineVersion' - The upgraded version of the engine to be run on the nodes. You can+-- upgrade to a newer engine version, but you cannot downgrade to an+-- earlier engine version. If you want to use an earlier engine version,+-- you must delete the existing cluster and create it anew with the earlier+-- engine version.+--+-- 'maintenanceWindow', 'updateCluster_maintenanceWindow' - Specifies the weekly time range during which maintenance on the cluster+-- is performed. It is specified as a range in the format+-- ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window+-- is a 60 minute period.+--+-- Valid values for @ddd@ are:+--+-- - @sun@+--+-- - @mon@+--+-- - @tue@+--+-- - @wed@+--+-- - @thu@+--+-- - @fri@+--+-- - @sat@+--+-- Example: @sun:23:00-mon:01:30@+--+-- 'nodeType', 'updateCluster_nodeType' - A valid node type that you want to scale this cluster up or down to.+--+-- 'parameterGroupName', 'updateCluster_parameterGroupName' - The name of the parameter group to update+--+-- 'replicaConfiguration', 'updateCluster_replicaConfiguration' - The number of replicas that will reside in each shard+--+-- 'securityGroupIds', 'updateCluster_securityGroupIds' - The SecurityGroupIds to update+--+-- 'shardConfiguration', 'updateCluster_shardConfiguration' - The number of shards in the cluster+--+-- 'snapshotRetentionLimit', 'updateCluster_snapshotRetentionLimit' - The number of days for which MemoryDB retains automatic cluster+-- snapshots before deleting them. For example, if you set+-- SnapshotRetentionLimit to 5, a snapshot that was taken today is retained+-- for 5 days before being deleted.+--+-- 'snapshotWindow', 'updateCluster_snapshotWindow' - The daily time range (in UTC) during which MemoryDB begins taking a+-- daily snapshot of your cluster.+--+-- 'snsTopicArn', 'updateCluster_snsTopicArn' - The SNS topic ARN to update+--+-- 'snsTopicStatus', 'updateCluster_snsTopicStatus' - The status of the Amazon SNS notification topic. Notifications are sent+-- only if the status is active.+--+-- 'clusterName', 'updateCluster_clusterName' - The name of the cluster to update+newUpdateCluster ::+ -- | 'clusterName'+ Prelude.Text ->+ UpdateCluster+newUpdateCluster pClusterName_ =+ UpdateCluster'+ { aCLName = Prelude.Nothing,+ description = Prelude.Nothing,+ engineVersion = Prelude.Nothing,+ maintenanceWindow = Prelude.Nothing,+ nodeType = Prelude.Nothing,+ parameterGroupName = Prelude.Nothing,+ replicaConfiguration = Prelude.Nothing,+ securityGroupIds = Prelude.Nothing,+ shardConfiguration = Prelude.Nothing,+ snapshotRetentionLimit = Prelude.Nothing,+ snapshotWindow = Prelude.Nothing,+ snsTopicArn = Prelude.Nothing,+ snsTopicStatus = Prelude.Nothing,+ clusterName = pClusterName_+ }++-- | The Access Control List that is associated with the cluster+updateCluster_aCLName :: Lens.Lens' UpdateCluster (Prelude.Maybe Prelude.Text)+updateCluster_aCLName = Lens.lens (\UpdateCluster' {aCLName} -> aCLName) (\s@UpdateCluster' {} a -> s {aCLName = a} :: UpdateCluster)++-- | The description of the cluster to update+updateCluster_description :: Lens.Lens' UpdateCluster (Prelude.Maybe Prelude.Text)+updateCluster_description = Lens.lens (\UpdateCluster' {description} -> description) (\s@UpdateCluster' {} a -> s {description = a} :: UpdateCluster)++-- | The upgraded version of the engine to be run on the nodes. You can+-- upgrade to a newer engine version, but you cannot downgrade to an+-- earlier engine version. If you want to use an earlier engine version,+-- you must delete the existing cluster and create it anew with the earlier+-- engine version.+updateCluster_engineVersion :: Lens.Lens' UpdateCluster (Prelude.Maybe Prelude.Text)+updateCluster_engineVersion = Lens.lens (\UpdateCluster' {engineVersion} -> engineVersion) (\s@UpdateCluster' {} a -> s {engineVersion = a} :: UpdateCluster)++-- | Specifies the weekly time range during which maintenance on the cluster+-- is performed. It is specified as a range in the format+-- ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window+-- is a 60 minute period.+--+-- Valid values for @ddd@ are:+--+-- - @sun@+--+-- - @mon@+--+-- - @tue@+--+-- - @wed@+--+-- - @thu@+--+-- - @fri@+--+-- - @sat@+--+-- Example: @sun:23:00-mon:01:30@+updateCluster_maintenanceWindow :: Lens.Lens' UpdateCluster (Prelude.Maybe Prelude.Text)+updateCluster_maintenanceWindow = Lens.lens (\UpdateCluster' {maintenanceWindow} -> maintenanceWindow) (\s@UpdateCluster' {} a -> s {maintenanceWindow = a} :: UpdateCluster)++-- | A valid node type that you want to scale this cluster up or down to.+updateCluster_nodeType :: Lens.Lens' UpdateCluster (Prelude.Maybe Prelude.Text)+updateCluster_nodeType = Lens.lens (\UpdateCluster' {nodeType} -> nodeType) (\s@UpdateCluster' {} a -> s {nodeType = a} :: UpdateCluster)++-- | The name of the parameter group to update+updateCluster_parameterGroupName :: Lens.Lens' UpdateCluster (Prelude.Maybe Prelude.Text)+updateCluster_parameterGroupName = Lens.lens (\UpdateCluster' {parameterGroupName} -> parameterGroupName) (\s@UpdateCluster' {} a -> s {parameterGroupName = a} :: UpdateCluster)++-- | The number of replicas that will reside in each shard+updateCluster_replicaConfiguration :: Lens.Lens' UpdateCluster (Prelude.Maybe ReplicaConfigurationRequest)+updateCluster_replicaConfiguration = Lens.lens (\UpdateCluster' {replicaConfiguration} -> replicaConfiguration) (\s@UpdateCluster' {} a -> s {replicaConfiguration = a} :: UpdateCluster)++-- | The SecurityGroupIds to update+updateCluster_securityGroupIds :: Lens.Lens' UpdateCluster (Prelude.Maybe [Prelude.Text])+updateCluster_securityGroupIds = Lens.lens (\UpdateCluster' {securityGroupIds} -> securityGroupIds) (\s@UpdateCluster' {} a -> s {securityGroupIds = a} :: UpdateCluster) Prelude.. Lens.mapping Lens.coerced++-- | The number of shards in the cluster+updateCluster_shardConfiguration :: Lens.Lens' UpdateCluster (Prelude.Maybe ShardConfigurationRequest)+updateCluster_shardConfiguration = Lens.lens (\UpdateCluster' {shardConfiguration} -> shardConfiguration) (\s@UpdateCluster' {} a -> s {shardConfiguration = a} :: UpdateCluster)++-- | The number of days for which MemoryDB retains automatic cluster+-- snapshots before deleting them. For example, if you set+-- SnapshotRetentionLimit to 5, a snapshot that was taken today is retained+-- for 5 days before being deleted.+updateCluster_snapshotRetentionLimit :: Lens.Lens' UpdateCluster (Prelude.Maybe Prelude.Int)+updateCluster_snapshotRetentionLimit = Lens.lens (\UpdateCluster' {snapshotRetentionLimit} -> snapshotRetentionLimit) (\s@UpdateCluster' {} a -> s {snapshotRetentionLimit = a} :: UpdateCluster)++-- | The daily time range (in UTC) during which MemoryDB begins taking a+-- daily snapshot of your cluster.+updateCluster_snapshotWindow :: Lens.Lens' UpdateCluster (Prelude.Maybe Prelude.Text)+updateCluster_snapshotWindow = Lens.lens (\UpdateCluster' {snapshotWindow} -> snapshotWindow) (\s@UpdateCluster' {} a -> s {snapshotWindow = a} :: UpdateCluster)++-- | The SNS topic ARN to update+updateCluster_snsTopicArn :: Lens.Lens' UpdateCluster (Prelude.Maybe Prelude.Text)+updateCluster_snsTopicArn = Lens.lens (\UpdateCluster' {snsTopicArn} -> snsTopicArn) (\s@UpdateCluster' {} a -> s {snsTopicArn = a} :: UpdateCluster)++-- | The status of the Amazon SNS notification topic. Notifications are sent+-- only if the status is active.+updateCluster_snsTopicStatus :: Lens.Lens' UpdateCluster (Prelude.Maybe Prelude.Text)+updateCluster_snsTopicStatus = Lens.lens (\UpdateCluster' {snsTopicStatus} -> snsTopicStatus) (\s@UpdateCluster' {} a -> s {snsTopicStatus = a} :: UpdateCluster)++-- | The name of the cluster to update+updateCluster_clusterName :: Lens.Lens' UpdateCluster Prelude.Text+updateCluster_clusterName = Lens.lens (\UpdateCluster' {clusterName} -> clusterName) (\s@UpdateCluster' {} a -> s {clusterName = a} :: UpdateCluster)++instance Core.AWSRequest UpdateCluster where+ type+ AWSResponse UpdateCluster =+ UpdateClusterResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateClusterResponse'+ Prelude.<$> (x Data..?> "Cluster")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateCluster where+ hashWithSalt _salt UpdateCluster' {..} =+ _salt+ `Prelude.hashWithSalt` aCLName+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` engineVersion+ `Prelude.hashWithSalt` maintenanceWindow+ `Prelude.hashWithSalt` nodeType+ `Prelude.hashWithSalt` parameterGroupName+ `Prelude.hashWithSalt` replicaConfiguration+ `Prelude.hashWithSalt` securityGroupIds+ `Prelude.hashWithSalt` shardConfiguration+ `Prelude.hashWithSalt` snapshotRetentionLimit+ `Prelude.hashWithSalt` snapshotWindow+ `Prelude.hashWithSalt` snsTopicArn+ `Prelude.hashWithSalt` snsTopicStatus+ `Prelude.hashWithSalt` clusterName++instance Prelude.NFData UpdateCluster where+ rnf UpdateCluster' {..} =+ Prelude.rnf aCLName+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf engineVersion+ `Prelude.seq` Prelude.rnf maintenanceWindow+ `Prelude.seq` Prelude.rnf nodeType+ `Prelude.seq` Prelude.rnf parameterGroupName+ `Prelude.seq` Prelude.rnf replicaConfiguration+ `Prelude.seq` Prelude.rnf securityGroupIds+ `Prelude.seq` Prelude.rnf shardConfiguration+ `Prelude.seq` Prelude.rnf snapshotRetentionLimit+ `Prelude.seq` Prelude.rnf snapshotWindow+ `Prelude.seq` Prelude.rnf snsTopicArn+ `Prelude.seq` Prelude.rnf snsTopicStatus+ `Prelude.seq` Prelude.rnf clusterName++instance Data.ToHeaders UpdateCluster where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.UpdateCluster" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateCluster where+ toJSON UpdateCluster' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ACLName" Data..=) Prelude.<$> aCLName,+ ("Description" Data..=) Prelude.<$> description,+ ("EngineVersion" Data..=) Prelude.<$> engineVersion,+ ("MaintenanceWindow" Data..=)+ Prelude.<$> maintenanceWindow,+ ("NodeType" Data..=) Prelude.<$> nodeType,+ ("ParameterGroupName" Data..=)+ Prelude.<$> parameterGroupName,+ ("ReplicaConfiguration" Data..=)+ Prelude.<$> replicaConfiguration,+ ("SecurityGroupIds" Data..=)+ Prelude.<$> securityGroupIds,+ ("ShardConfiguration" Data..=)+ Prelude.<$> shardConfiguration,+ ("SnapshotRetentionLimit" Data..=)+ Prelude.<$> snapshotRetentionLimit,+ ("SnapshotWindow" Data..=)+ Prelude.<$> snapshotWindow,+ ("SnsTopicArn" Data..=) Prelude.<$> snsTopicArn,+ ("SnsTopicStatus" Data..=)+ Prelude.<$> snsTopicStatus,+ Prelude.Just ("ClusterName" Data..= clusterName)+ ]+ )++instance Data.ToPath UpdateCluster where+ toPath = Prelude.const "/"++instance Data.ToQuery UpdateCluster where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateClusterResponse' smart constructor.+data UpdateClusterResponse = UpdateClusterResponse'+ { -- | The updated cluster+ cluster :: Prelude.Maybe Cluster,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cluster', 'updateClusterResponse_cluster' - The updated cluster+--+-- 'httpStatus', 'updateClusterResponse_httpStatus' - The response's http status code.+newUpdateClusterResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateClusterResponse+newUpdateClusterResponse pHttpStatus_ =+ UpdateClusterResponse'+ { cluster = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The updated cluster+updateClusterResponse_cluster :: Lens.Lens' UpdateClusterResponse (Prelude.Maybe Cluster)+updateClusterResponse_cluster = Lens.lens (\UpdateClusterResponse' {cluster} -> cluster) (\s@UpdateClusterResponse' {} a -> s {cluster = a} :: UpdateClusterResponse)++-- | The response's http status code.+updateClusterResponse_httpStatus :: Lens.Lens' UpdateClusterResponse Prelude.Int+updateClusterResponse_httpStatus = Lens.lens (\UpdateClusterResponse' {httpStatus} -> httpStatus) (\s@UpdateClusterResponse' {} a -> s {httpStatus = a} :: UpdateClusterResponse)++instance Prelude.NFData UpdateClusterResponse where+ rnf UpdateClusterResponse' {..} =+ Prelude.rnf cluster+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/UpdateParameterGroup.hs view
@@ -0,0 +1,197 @@+{-# 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.MemoryDb.UpdateParameterGroup+-- 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 parameters of a parameter group. You can modify up to 20+-- parameters in a single request by submitting a list parameter name and+-- value pairs.+module Amazonka.MemoryDb.UpdateParameterGroup+ ( -- * Creating a Request+ UpdateParameterGroup (..),+ newUpdateParameterGroup,++ -- * Request Lenses+ updateParameterGroup_parameterGroupName,+ updateParameterGroup_parameterNameValues,++ -- * Destructuring the Response+ UpdateParameterGroupResponse (..),+ newUpdateParameterGroupResponse,++ -- * Response Lenses+ updateParameterGroupResponse_parameterGroup,+ updateParameterGroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateParameterGroup' smart constructor.+data UpdateParameterGroup = UpdateParameterGroup'+ { -- | The name of the parameter group to update.+ parameterGroupName :: Prelude.Text,+ -- | An array of parameter names and values for the parameter update. You+ -- must supply at least one parameter name and value; subsequent arguments+ -- are optional. A maximum of 20 parameters may be updated per request.+ parameterNameValues :: [ParameterNameValue]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateParameterGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'parameterGroupName', 'updateParameterGroup_parameterGroupName' - The name of the parameter group to update.+--+-- 'parameterNameValues', 'updateParameterGroup_parameterNameValues' - An array of parameter names and values for the parameter update. You+-- must supply at least one parameter name and value; subsequent arguments+-- are optional. A maximum of 20 parameters may be updated per request.+newUpdateParameterGroup ::+ -- | 'parameterGroupName'+ Prelude.Text ->+ UpdateParameterGroup+newUpdateParameterGroup pParameterGroupName_ =+ UpdateParameterGroup'+ { parameterGroupName =+ pParameterGroupName_,+ parameterNameValues = Prelude.mempty+ }++-- | The name of the parameter group to update.+updateParameterGroup_parameterGroupName :: Lens.Lens' UpdateParameterGroup Prelude.Text+updateParameterGroup_parameterGroupName = Lens.lens (\UpdateParameterGroup' {parameterGroupName} -> parameterGroupName) (\s@UpdateParameterGroup' {} a -> s {parameterGroupName = a} :: UpdateParameterGroup)++-- | An array of parameter names and values for the parameter update. You+-- must supply at least one parameter name and value; subsequent arguments+-- are optional. A maximum of 20 parameters may be updated per request.+updateParameterGroup_parameterNameValues :: Lens.Lens' UpdateParameterGroup [ParameterNameValue]+updateParameterGroup_parameterNameValues = Lens.lens (\UpdateParameterGroup' {parameterNameValues} -> parameterNameValues) (\s@UpdateParameterGroup' {} a -> s {parameterNameValues = a} :: UpdateParameterGroup) Prelude.. Lens.coerced++instance Core.AWSRequest UpdateParameterGroup where+ type+ AWSResponse UpdateParameterGroup =+ UpdateParameterGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateParameterGroupResponse'+ Prelude.<$> (x Data..?> "ParameterGroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateParameterGroup where+ hashWithSalt _salt UpdateParameterGroup' {..} =+ _salt+ `Prelude.hashWithSalt` parameterGroupName+ `Prelude.hashWithSalt` parameterNameValues++instance Prelude.NFData UpdateParameterGroup where+ rnf UpdateParameterGroup' {..} =+ Prelude.rnf parameterGroupName+ `Prelude.seq` Prelude.rnf parameterNameValues++instance Data.ToHeaders UpdateParameterGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.UpdateParameterGroup" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateParameterGroup where+ toJSON UpdateParameterGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("ParameterGroupName" Data..= parameterGroupName),+ Prelude.Just+ ("ParameterNameValues" Data..= parameterNameValues)+ ]+ )++instance Data.ToPath UpdateParameterGroup where+ toPath = Prelude.const "/"++instance Data.ToQuery UpdateParameterGroup where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateParameterGroupResponse' smart constructor.+data UpdateParameterGroupResponse = UpdateParameterGroupResponse'+ { -- | The updated parameter group+ parameterGroup :: Prelude.Maybe ParameterGroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateParameterGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'parameterGroup', 'updateParameterGroupResponse_parameterGroup' - The updated parameter group+--+-- 'httpStatus', 'updateParameterGroupResponse_httpStatus' - The response's http status code.+newUpdateParameterGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateParameterGroupResponse+newUpdateParameterGroupResponse pHttpStatus_ =+ UpdateParameterGroupResponse'+ { parameterGroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The updated parameter group+updateParameterGroupResponse_parameterGroup :: Lens.Lens' UpdateParameterGroupResponse (Prelude.Maybe ParameterGroup)+updateParameterGroupResponse_parameterGroup = Lens.lens (\UpdateParameterGroupResponse' {parameterGroup} -> parameterGroup) (\s@UpdateParameterGroupResponse' {} a -> s {parameterGroup = a} :: UpdateParameterGroupResponse)++-- | The response's http status code.+updateParameterGroupResponse_httpStatus :: Lens.Lens' UpdateParameterGroupResponse Prelude.Int+updateParameterGroupResponse_httpStatus = Lens.lens (\UpdateParameterGroupResponse' {httpStatus} -> httpStatus) (\s@UpdateParameterGroupResponse' {} a -> s {httpStatus = a} :: UpdateParameterGroupResponse)++instance Prelude.NFData UpdateParameterGroupResponse where+ rnf UpdateParameterGroupResponse' {..} =+ Prelude.rnf parameterGroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/UpdateSubnetGroup.hs view
@@ -0,0 +1,201 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.UpdateSubnetGroup+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a subnet group. For more information, see+-- <https://docs.aws.amazon.com/MemoryDB/latest/devguide/ubnetGroups.Modifying.html Updating a subnet group>+module Amazonka.MemoryDb.UpdateSubnetGroup+ ( -- * Creating a Request+ UpdateSubnetGroup (..),+ newUpdateSubnetGroup,++ -- * Request Lenses+ updateSubnetGroup_description,+ updateSubnetGroup_subnetIds,+ updateSubnetGroup_subnetGroupName,++ -- * Destructuring the Response+ UpdateSubnetGroupResponse (..),+ newUpdateSubnetGroupResponse,++ -- * Response Lenses+ updateSubnetGroupResponse_subnetGroup,+ updateSubnetGroupResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateSubnetGroup' smart constructor.+data UpdateSubnetGroup = UpdateSubnetGroup'+ { -- | A description of the subnet group+ description :: Prelude.Maybe Prelude.Text,+ -- | The EC2 subnet IDs for the subnet group.+ subnetIds :: Prelude.Maybe [Prelude.Text],+ -- | The name of the subnet group+ subnetGroupName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSubnetGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateSubnetGroup_description' - A description of the subnet group+--+-- 'subnetIds', 'updateSubnetGroup_subnetIds' - The EC2 subnet IDs for the subnet group.+--+-- 'subnetGroupName', 'updateSubnetGroup_subnetGroupName' - The name of the subnet group+newUpdateSubnetGroup ::+ -- | 'subnetGroupName'+ Prelude.Text ->+ UpdateSubnetGroup+newUpdateSubnetGroup pSubnetGroupName_ =+ UpdateSubnetGroup'+ { description = Prelude.Nothing,+ subnetIds = Prelude.Nothing,+ subnetGroupName = pSubnetGroupName_+ }++-- | A description of the subnet group+updateSubnetGroup_description :: Lens.Lens' UpdateSubnetGroup (Prelude.Maybe Prelude.Text)+updateSubnetGroup_description = Lens.lens (\UpdateSubnetGroup' {description} -> description) (\s@UpdateSubnetGroup' {} a -> s {description = a} :: UpdateSubnetGroup)++-- | The EC2 subnet IDs for the subnet group.+updateSubnetGroup_subnetIds :: Lens.Lens' UpdateSubnetGroup (Prelude.Maybe [Prelude.Text])+updateSubnetGroup_subnetIds = Lens.lens (\UpdateSubnetGroup' {subnetIds} -> subnetIds) (\s@UpdateSubnetGroup' {} a -> s {subnetIds = a} :: UpdateSubnetGroup) Prelude.. Lens.mapping Lens.coerced++-- | The name of the subnet group+updateSubnetGroup_subnetGroupName :: Lens.Lens' UpdateSubnetGroup Prelude.Text+updateSubnetGroup_subnetGroupName = Lens.lens (\UpdateSubnetGroup' {subnetGroupName} -> subnetGroupName) (\s@UpdateSubnetGroup' {} a -> s {subnetGroupName = a} :: UpdateSubnetGroup)++instance Core.AWSRequest UpdateSubnetGroup where+ type+ AWSResponse UpdateSubnetGroup =+ UpdateSubnetGroupResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateSubnetGroupResponse'+ Prelude.<$> (x Data..?> "SubnetGroup")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateSubnetGroup where+ hashWithSalt _salt UpdateSubnetGroup' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` subnetIds+ `Prelude.hashWithSalt` subnetGroupName++instance Prelude.NFData UpdateSubnetGroup where+ rnf UpdateSubnetGroup' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf subnetIds+ `Prelude.seq` Prelude.rnf subnetGroupName++instance Data.ToHeaders UpdateSubnetGroup where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AmazonMemoryDB.UpdateSubnetGroup" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateSubnetGroup where+ toJSON UpdateSubnetGroup' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Description" Data..=) Prelude.<$> description,+ ("SubnetIds" Data..=) Prelude.<$> subnetIds,+ Prelude.Just+ ("SubnetGroupName" Data..= subnetGroupName)+ ]+ )++instance Data.ToPath UpdateSubnetGroup where+ toPath = Prelude.const "/"++instance Data.ToQuery UpdateSubnetGroup where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateSubnetGroupResponse' smart constructor.+data UpdateSubnetGroupResponse = UpdateSubnetGroupResponse'+ { -- | The updated subnet group+ subnetGroup :: Prelude.Maybe SubnetGroup,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSubnetGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subnetGroup', 'updateSubnetGroupResponse_subnetGroup' - The updated subnet group+--+-- 'httpStatus', 'updateSubnetGroupResponse_httpStatus' - The response's http status code.+newUpdateSubnetGroupResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateSubnetGroupResponse+newUpdateSubnetGroupResponse pHttpStatus_ =+ UpdateSubnetGroupResponse'+ { subnetGroup =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The updated subnet group+updateSubnetGroupResponse_subnetGroup :: Lens.Lens' UpdateSubnetGroupResponse (Prelude.Maybe SubnetGroup)+updateSubnetGroupResponse_subnetGroup = Lens.lens (\UpdateSubnetGroupResponse' {subnetGroup} -> subnetGroup) (\s@UpdateSubnetGroupResponse' {} a -> s {subnetGroup = a} :: UpdateSubnetGroupResponse)++-- | The response's http status code.+updateSubnetGroupResponse_httpStatus :: Lens.Lens' UpdateSubnetGroupResponse Prelude.Int+updateSubnetGroupResponse_httpStatus = Lens.lens (\UpdateSubnetGroupResponse' {httpStatus} -> httpStatus) (\s@UpdateSubnetGroupResponse' {} a -> s {httpStatus = a} :: UpdateSubnetGroupResponse)++instance Prelude.NFData UpdateSubnetGroupResponse where+ rnf UpdateSubnetGroupResponse' {..} =+ Prelude.rnf subnetGroup+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/UpdateUser.hs view
@@ -0,0 +1,198 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.MemoryDb.UpdateUser+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Changes user password(s) and\/or access string.+module Amazonka.MemoryDb.UpdateUser+ ( -- * Creating a Request+ UpdateUser (..),+ newUpdateUser,++ -- * Request Lenses+ updateUser_accessString,+ updateUser_authenticationMode,+ updateUser_userName,++ -- * Destructuring the Response+ UpdateUserResponse (..),+ newUpdateUserResponse,++ -- * Response Lenses+ updateUserResponse_user,+ updateUserResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateUser' smart constructor.+data UpdateUser = UpdateUser'+ { -- | Access permissions string used for this user.+ accessString :: Prelude.Maybe Prelude.Text,+ -- | Denotes the user\'s authentication properties, such as whether it+ -- requires a password to authenticate.+ authenticationMode :: Prelude.Maybe AuthenticationMode,+ -- | The name of the user+ userName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessString', 'updateUser_accessString' - Access permissions string used for this user.+--+-- 'authenticationMode', 'updateUser_authenticationMode' - Denotes the user\'s authentication properties, such as whether it+-- requires a password to authenticate.+--+-- 'userName', 'updateUser_userName' - The name of the user+newUpdateUser ::+ -- | 'userName'+ Prelude.Text ->+ UpdateUser+newUpdateUser pUserName_ =+ UpdateUser'+ { accessString = Prelude.Nothing,+ authenticationMode = Prelude.Nothing,+ userName = pUserName_+ }++-- | Access permissions string used for this user.+updateUser_accessString :: Lens.Lens' UpdateUser (Prelude.Maybe Prelude.Text)+updateUser_accessString = Lens.lens (\UpdateUser' {accessString} -> accessString) (\s@UpdateUser' {} a -> s {accessString = a} :: UpdateUser)++-- | Denotes the user\'s authentication properties, such as whether it+-- requires a password to authenticate.+updateUser_authenticationMode :: Lens.Lens' UpdateUser (Prelude.Maybe AuthenticationMode)+updateUser_authenticationMode = Lens.lens (\UpdateUser' {authenticationMode} -> authenticationMode) (\s@UpdateUser' {} a -> s {authenticationMode = a} :: UpdateUser)++-- | The name of the user+updateUser_userName :: Lens.Lens' UpdateUser Prelude.Text+updateUser_userName = Lens.lens (\UpdateUser' {userName} -> userName) (\s@UpdateUser' {} a -> s {userName = a} :: UpdateUser)++instance Core.AWSRequest UpdateUser where+ type AWSResponse UpdateUser = UpdateUserResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateUserResponse'+ Prelude.<$> (x Data..?> "User")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateUser where+ hashWithSalt _salt UpdateUser' {..} =+ _salt+ `Prelude.hashWithSalt` accessString+ `Prelude.hashWithSalt` authenticationMode+ `Prelude.hashWithSalt` userName++instance Prelude.NFData UpdateUser where+ rnf UpdateUser' {..} =+ Prelude.rnf accessString+ `Prelude.seq` Prelude.rnf authenticationMode+ `Prelude.seq` Prelude.rnf userName++instance Data.ToHeaders UpdateUser where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ("AmazonMemoryDB.UpdateUser" :: Prelude.ByteString),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateUser where+ toJSON UpdateUser' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AccessString" Data..=) Prelude.<$> accessString,+ ("AuthenticationMode" Data..=)+ Prelude.<$> authenticationMode,+ Prelude.Just ("UserName" Data..= userName)+ ]+ )++instance Data.ToPath UpdateUser where+ toPath = Prelude.const "/"++instance Data.ToQuery UpdateUser where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateUserResponse' smart constructor.+data UpdateUserResponse = UpdateUserResponse'+ { -- | The updated user+ user :: Prelude.Maybe User,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateUserResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'user', 'updateUserResponse_user' - The updated user+--+-- 'httpStatus', 'updateUserResponse_httpStatus' - The response's http status code.+newUpdateUserResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateUserResponse+newUpdateUserResponse pHttpStatus_ =+ UpdateUserResponse'+ { user = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The updated user+updateUserResponse_user :: Lens.Lens' UpdateUserResponse (Prelude.Maybe User)+updateUserResponse_user = Lens.lens (\UpdateUserResponse' {user} -> user) (\s@UpdateUserResponse' {} a -> s {user = a} :: UpdateUserResponse)++-- | The response's http status code.+updateUserResponse_httpStatus :: Lens.Lens' UpdateUserResponse Prelude.Int+updateUserResponse_httpStatus = Lens.lens (\UpdateUserResponse' {httpStatus} -> httpStatus) (\s@UpdateUserResponse' {} a -> s {httpStatus = a} :: UpdateUserResponse)++instance Prelude.NFData UpdateUserResponse where+ rnf UpdateUserResponse' {..} =+ Prelude.rnf user+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MemoryDb/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.MemoryDb.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.MemoryDb.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MemoryDb.Lens+import Amazonka.MemoryDb.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.MemoryDb+import Test.Amazonka.MemoryDb.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "MemoryDb"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/Gen/MemoryDb.hs view
@@ -0,0 +1,798 @@+{-# 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.MemoryDb+-- 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.MemoryDb where++import Amazonka.MemoryDb+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.MemoryDb.Internal+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"+-- [ requestBatchUpdateCluster $+-- newBatchUpdateCluster+--+-- , requestCopySnapshot $+-- newCopySnapshot+--+-- , requestCreateACL $+-- newCreateACL+--+-- , requestCreateCluster $+-- newCreateCluster+--+-- , requestCreateParameterGroup $+-- newCreateParameterGroup+--+-- , requestCreateSnapshot $+-- newCreateSnapshot+--+-- , requestCreateSubnetGroup $+-- newCreateSubnetGroup+--+-- , requestCreateUser $+-- newCreateUser+--+-- , requestDeleteACL $+-- newDeleteACL+--+-- , requestDeleteCluster $+-- newDeleteCluster+--+-- , requestDeleteParameterGroup $+-- newDeleteParameterGroup+--+-- , requestDeleteSnapshot $+-- newDeleteSnapshot+--+-- , requestDeleteSubnetGroup $+-- newDeleteSubnetGroup+--+-- , requestDeleteUser $+-- newDeleteUser+--+-- , requestDescribeACLs $+-- newDescribeACLs+--+-- , requestDescribeClusters $+-- newDescribeClusters+--+-- , requestDescribeEngineVersions $+-- newDescribeEngineVersions+--+-- , requestDescribeEvents $+-- newDescribeEvents+--+-- , requestDescribeParameterGroups $+-- newDescribeParameterGroups+--+-- , requestDescribeParameters $+-- newDescribeParameters+--+-- , requestDescribeReservedNodes $+-- newDescribeReservedNodes+--+-- , requestDescribeReservedNodesOfferings $+-- newDescribeReservedNodesOfferings+--+-- , requestDescribeServiceUpdates $+-- newDescribeServiceUpdates+--+-- , requestDescribeSnapshots $+-- newDescribeSnapshots+--+-- , requestDescribeSubnetGroups $+-- newDescribeSubnetGroups+--+-- , requestDescribeUsers $+-- newDescribeUsers+--+-- , requestFailoverShard $+-- newFailoverShard+--+-- , requestListAllowedNodeTypeUpdates $+-- newListAllowedNodeTypeUpdates+--+-- , requestListTags $+-- newListTags+--+-- , requestPurchaseReservedNodesOffering $+-- newPurchaseReservedNodesOffering+--+-- , requestResetParameterGroup $+-- newResetParameterGroup+--+-- , requestTagResource $+-- newTagResource+--+-- , requestUntagResource $+-- newUntagResource+--+-- , requestUpdateACL $+-- newUpdateACL+--+-- , requestUpdateCluster $+-- newUpdateCluster+--+-- , requestUpdateParameterGroup $+-- newUpdateParameterGroup+--+-- , requestUpdateSubnetGroup $+-- newUpdateSubnetGroup+--+-- , requestUpdateUser $+-- newUpdateUser+--+-- ]++-- , testGroup "response"+-- [ responseBatchUpdateCluster $+-- newBatchUpdateClusterResponse+--+-- , responseCopySnapshot $+-- newCopySnapshotResponse+--+-- , responseCreateACL $+-- newCreateACLResponse+--+-- , responseCreateCluster $+-- newCreateClusterResponse+--+-- , responseCreateParameterGroup $+-- newCreateParameterGroupResponse+--+-- , responseCreateSnapshot $+-- newCreateSnapshotResponse+--+-- , responseCreateSubnetGroup $+-- newCreateSubnetGroupResponse+--+-- , responseCreateUser $+-- newCreateUserResponse+--+-- , responseDeleteACL $+-- newDeleteACLResponse+--+-- , responseDeleteCluster $+-- newDeleteClusterResponse+--+-- , responseDeleteParameterGroup $+-- newDeleteParameterGroupResponse+--+-- , responseDeleteSnapshot $+-- newDeleteSnapshotResponse+--+-- , responseDeleteSubnetGroup $+-- newDeleteSubnetGroupResponse+--+-- , responseDeleteUser $+-- newDeleteUserResponse+--+-- , responseDescribeACLs $+-- newDescribeACLsResponse+--+-- , responseDescribeClusters $+-- newDescribeClustersResponse+--+-- , responseDescribeEngineVersions $+-- newDescribeEngineVersionsResponse+--+-- , responseDescribeEvents $+-- newDescribeEventsResponse+--+-- , responseDescribeParameterGroups $+-- newDescribeParameterGroupsResponse+--+-- , responseDescribeParameters $+-- newDescribeParametersResponse+--+-- , responseDescribeReservedNodes $+-- newDescribeReservedNodesResponse+--+-- , responseDescribeReservedNodesOfferings $+-- newDescribeReservedNodesOfferingsResponse+--+-- , responseDescribeServiceUpdates $+-- newDescribeServiceUpdatesResponse+--+-- , responseDescribeSnapshots $+-- newDescribeSnapshotsResponse+--+-- , responseDescribeSubnetGroups $+-- newDescribeSubnetGroupsResponse+--+-- , responseDescribeUsers $+-- newDescribeUsersResponse+--+-- , responseFailoverShard $+-- newFailoverShardResponse+--+-- , responseListAllowedNodeTypeUpdates $+-- newListAllowedNodeTypeUpdatesResponse+--+-- , responseListTags $+-- newListTagsResponse+--+-- , responsePurchaseReservedNodesOffering $+-- newPurchaseReservedNodesOfferingResponse+--+-- , responseResetParameterGroup $+-- newResetParameterGroupResponse+--+-- , responseTagResource $+-- newTagResourceResponse+--+-- , responseUntagResource $+-- newUntagResourceResponse+--+-- , responseUpdateACL $+-- newUpdateACLResponse+--+-- , responseUpdateCluster $+-- newUpdateClusterResponse+--+-- , responseUpdateParameterGroup $+-- newUpdateParameterGroupResponse+--+-- , responseUpdateSubnetGroup $+-- newUpdateSubnetGroupResponse+--+-- , responseUpdateUser $+-- newUpdateUserResponse+--+-- ]+-- ]++-- Requests++requestBatchUpdateCluster :: BatchUpdateCluster -> TestTree+requestBatchUpdateCluster =+ req+ "BatchUpdateCluster"+ "fixture/BatchUpdateCluster.yaml"++requestCopySnapshot :: CopySnapshot -> TestTree+requestCopySnapshot =+ req+ "CopySnapshot"+ "fixture/CopySnapshot.yaml"++requestCreateACL :: CreateACL -> TestTree+requestCreateACL =+ req+ "CreateACL"+ "fixture/CreateACL.yaml"++requestCreateCluster :: CreateCluster -> TestTree+requestCreateCluster =+ req+ "CreateCluster"+ "fixture/CreateCluster.yaml"++requestCreateParameterGroup :: CreateParameterGroup -> TestTree+requestCreateParameterGroup =+ req+ "CreateParameterGroup"+ "fixture/CreateParameterGroup.yaml"++requestCreateSnapshot :: CreateSnapshot -> TestTree+requestCreateSnapshot =+ req+ "CreateSnapshot"+ "fixture/CreateSnapshot.yaml"++requestCreateSubnetGroup :: CreateSubnetGroup -> TestTree+requestCreateSubnetGroup =+ req+ "CreateSubnetGroup"+ "fixture/CreateSubnetGroup.yaml"++requestCreateUser :: CreateUser -> TestTree+requestCreateUser =+ req+ "CreateUser"+ "fixture/CreateUser.yaml"++requestDeleteACL :: DeleteACL -> TestTree+requestDeleteACL =+ req+ "DeleteACL"+ "fixture/DeleteACL.yaml"++requestDeleteCluster :: DeleteCluster -> TestTree+requestDeleteCluster =+ req+ "DeleteCluster"+ "fixture/DeleteCluster.yaml"++requestDeleteParameterGroup :: DeleteParameterGroup -> TestTree+requestDeleteParameterGroup =+ req+ "DeleteParameterGroup"+ "fixture/DeleteParameterGroup.yaml"++requestDeleteSnapshot :: DeleteSnapshot -> TestTree+requestDeleteSnapshot =+ req+ "DeleteSnapshot"+ "fixture/DeleteSnapshot.yaml"++requestDeleteSubnetGroup :: DeleteSubnetGroup -> TestTree+requestDeleteSubnetGroup =+ req+ "DeleteSubnetGroup"+ "fixture/DeleteSubnetGroup.yaml"++requestDeleteUser :: DeleteUser -> TestTree+requestDeleteUser =+ req+ "DeleteUser"+ "fixture/DeleteUser.yaml"++requestDescribeACLs :: DescribeACLs -> TestTree+requestDescribeACLs =+ req+ "DescribeACLs"+ "fixture/DescribeACLs.yaml"++requestDescribeClusters :: DescribeClusters -> TestTree+requestDescribeClusters =+ req+ "DescribeClusters"+ "fixture/DescribeClusters.yaml"++requestDescribeEngineVersions :: DescribeEngineVersions -> TestTree+requestDescribeEngineVersions =+ req+ "DescribeEngineVersions"+ "fixture/DescribeEngineVersions.yaml"++requestDescribeEvents :: DescribeEvents -> TestTree+requestDescribeEvents =+ req+ "DescribeEvents"+ "fixture/DescribeEvents.yaml"++requestDescribeParameterGroups :: DescribeParameterGroups -> TestTree+requestDescribeParameterGroups =+ req+ "DescribeParameterGroups"+ "fixture/DescribeParameterGroups.yaml"++requestDescribeParameters :: DescribeParameters -> TestTree+requestDescribeParameters =+ req+ "DescribeParameters"+ "fixture/DescribeParameters.yaml"++requestDescribeReservedNodes :: DescribeReservedNodes -> TestTree+requestDescribeReservedNodes =+ req+ "DescribeReservedNodes"+ "fixture/DescribeReservedNodes.yaml"++requestDescribeReservedNodesOfferings :: DescribeReservedNodesOfferings -> TestTree+requestDescribeReservedNodesOfferings =+ req+ "DescribeReservedNodesOfferings"+ "fixture/DescribeReservedNodesOfferings.yaml"++requestDescribeServiceUpdates :: DescribeServiceUpdates -> TestTree+requestDescribeServiceUpdates =+ req+ "DescribeServiceUpdates"+ "fixture/DescribeServiceUpdates.yaml"++requestDescribeSnapshots :: DescribeSnapshots -> TestTree+requestDescribeSnapshots =+ req+ "DescribeSnapshots"+ "fixture/DescribeSnapshots.yaml"++requestDescribeSubnetGroups :: DescribeSubnetGroups -> TestTree+requestDescribeSubnetGroups =+ req+ "DescribeSubnetGroups"+ "fixture/DescribeSubnetGroups.yaml"++requestDescribeUsers :: DescribeUsers -> TestTree+requestDescribeUsers =+ req+ "DescribeUsers"+ "fixture/DescribeUsers.yaml"++requestFailoverShard :: FailoverShard -> TestTree+requestFailoverShard =+ req+ "FailoverShard"+ "fixture/FailoverShard.yaml"++requestListAllowedNodeTypeUpdates :: ListAllowedNodeTypeUpdates -> TestTree+requestListAllowedNodeTypeUpdates =+ req+ "ListAllowedNodeTypeUpdates"+ "fixture/ListAllowedNodeTypeUpdates.yaml"++requestListTags :: ListTags -> TestTree+requestListTags =+ req+ "ListTags"+ "fixture/ListTags.yaml"++requestPurchaseReservedNodesOffering :: PurchaseReservedNodesOffering -> TestTree+requestPurchaseReservedNodesOffering =+ req+ "PurchaseReservedNodesOffering"+ "fixture/PurchaseReservedNodesOffering.yaml"++requestResetParameterGroup :: ResetParameterGroup -> TestTree+requestResetParameterGroup =+ req+ "ResetParameterGroup"+ "fixture/ResetParameterGroup.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+ req+ "TagResource"+ "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+ req+ "UntagResource"+ "fixture/UntagResource.yaml"++requestUpdateACL :: UpdateACL -> TestTree+requestUpdateACL =+ req+ "UpdateACL"+ "fixture/UpdateACL.yaml"++requestUpdateCluster :: UpdateCluster -> TestTree+requestUpdateCluster =+ req+ "UpdateCluster"+ "fixture/UpdateCluster.yaml"++requestUpdateParameterGroup :: UpdateParameterGroup -> TestTree+requestUpdateParameterGroup =+ req+ "UpdateParameterGroup"+ "fixture/UpdateParameterGroup.yaml"++requestUpdateSubnetGroup :: UpdateSubnetGroup -> TestTree+requestUpdateSubnetGroup =+ req+ "UpdateSubnetGroup"+ "fixture/UpdateSubnetGroup.yaml"++requestUpdateUser :: UpdateUser -> TestTree+requestUpdateUser =+ req+ "UpdateUser"+ "fixture/UpdateUser.yaml"++-- Responses++responseBatchUpdateCluster :: BatchUpdateClusterResponse -> TestTree+responseBatchUpdateCluster =+ res+ "BatchUpdateClusterResponse"+ "fixture/BatchUpdateClusterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy BatchUpdateCluster)++responseCopySnapshot :: CopySnapshotResponse -> TestTree+responseCopySnapshot =+ res+ "CopySnapshotResponse"+ "fixture/CopySnapshotResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CopySnapshot)++responseCreateACL :: CreateACLResponse -> TestTree+responseCreateACL =+ res+ "CreateACLResponse"+ "fixture/CreateACLResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateACL)++responseCreateCluster :: CreateClusterResponse -> TestTree+responseCreateCluster =+ res+ "CreateClusterResponse"+ "fixture/CreateClusterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateCluster)++responseCreateParameterGroup :: CreateParameterGroupResponse -> TestTree+responseCreateParameterGroup =+ res+ "CreateParameterGroupResponse"+ "fixture/CreateParameterGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateParameterGroup)++responseCreateSnapshot :: CreateSnapshotResponse -> TestTree+responseCreateSnapshot =+ res+ "CreateSnapshotResponse"+ "fixture/CreateSnapshotResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateSnapshot)++responseCreateSubnetGroup :: CreateSubnetGroupResponse -> TestTree+responseCreateSubnetGroup =+ res+ "CreateSubnetGroupResponse"+ "fixture/CreateSubnetGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateSubnetGroup)++responseCreateUser :: CreateUserResponse -> TestTree+responseCreateUser =+ res+ "CreateUserResponse"+ "fixture/CreateUserResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateUser)++responseDeleteACL :: DeleteACLResponse -> TestTree+responseDeleteACL =+ res+ "DeleteACLResponse"+ "fixture/DeleteACLResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteACL)++responseDeleteCluster :: DeleteClusterResponse -> TestTree+responseDeleteCluster =+ res+ "DeleteClusterResponse"+ "fixture/DeleteClusterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteCluster)++responseDeleteParameterGroup :: DeleteParameterGroupResponse -> TestTree+responseDeleteParameterGroup =+ res+ "DeleteParameterGroupResponse"+ "fixture/DeleteParameterGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteParameterGroup)++responseDeleteSnapshot :: DeleteSnapshotResponse -> TestTree+responseDeleteSnapshot =+ res+ "DeleteSnapshotResponse"+ "fixture/DeleteSnapshotResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteSnapshot)++responseDeleteSubnetGroup :: DeleteSubnetGroupResponse -> TestTree+responseDeleteSubnetGroup =+ res+ "DeleteSubnetGroupResponse"+ "fixture/DeleteSubnetGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteSubnetGroup)++responseDeleteUser :: DeleteUserResponse -> TestTree+responseDeleteUser =+ res+ "DeleteUserResponse"+ "fixture/DeleteUserResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteUser)++responseDescribeACLs :: DescribeACLsResponse -> TestTree+responseDescribeACLs =+ res+ "DescribeACLsResponse"+ "fixture/DescribeACLsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeACLs)++responseDescribeClusters :: DescribeClustersResponse -> TestTree+responseDescribeClusters =+ res+ "DescribeClustersResponse"+ "fixture/DescribeClustersResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeClusters)++responseDescribeEngineVersions :: DescribeEngineVersionsResponse -> TestTree+responseDescribeEngineVersions =+ res+ "DescribeEngineVersionsResponse"+ "fixture/DescribeEngineVersionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeEngineVersions)++responseDescribeEvents :: DescribeEventsResponse -> TestTree+responseDescribeEvents =+ res+ "DescribeEventsResponse"+ "fixture/DescribeEventsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeEvents)++responseDescribeParameterGroups :: DescribeParameterGroupsResponse -> TestTree+responseDescribeParameterGroups =+ res+ "DescribeParameterGroupsResponse"+ "fixture/DescribeParameterGroupsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeParameterGroups)++responseDescribeParameters :: DescribeParametersResponse -> TestTree+responseDescribeParameters =+ res+ "DescribeParametersResponse"+ "fixture/DescribeParametersResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeParameters)++responseDescribeReservedNodes :: DescribeReservedNodesResponse -> TestTree+responseDescribeReservedNodes =+ res+ "DescribeReservedNodesResponse"+ "fixture/DescribeReservedNodesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeReservedNodes)++responseDescribeReservedNodesOfferings :: DescribeReservedNodesOfferingsResponse -> TestTree+responseDescribeReservedNodesOfferings =+ res+ "DescribeReservedNodesOfferingsResponse"+ "fixture/DescribeReservedNodesOfferingsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeReservedNodesOfferings)++responseDescribeServiceUpdates :: DescribeServiceUpdatesResponse -> TestTree+responseDescribeServiceUpdates =+ res+ "DescribeServiceUpdatesResponse"+ "fixture/DescribeServiceUpdatesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeServiceUpdates)++responseDescribeSnapshots :: DescribeSnapshotsResponse -> TestTree+responseDescribeSnapshots =+ res+ "DescribeSnapshotsResponse"+ "fixture/DescribeSnapshotsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeSnapshots)++responseDescribeSubnetGroups :: DescribeSubnetGroupsResponse -> TestTree+responseDescribeSubnetGroups =+ res+ "DescribeSubnetGroupsResponse"+ "fixture/DescribeSubnetGroupsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeSubnetGroups)++responseDescribeUsers :: DescribeUsersResponse -> TestTree+responseDescribeUsers =+ res+ "DescribeUsersResponse"+ "fixture/DescribeUsersResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeUsers)++responseFailoverShard :: FailoverShardResponse -> TestTree+responseFailoverShard =+ res+ "FailoverShardResponse"+ "fixture/FailoverShardResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy FailoverShard)++responseListAllowedNodeTypeUpdates :: ListAllowedNodeTypeUpdatesResponse -> TestTree+responseListAllowedNodeTypeUpdates =+ res+ "ListAllowedNodeTypeUpdatesResponse"+ "fixture/ListAllowedNodeTypeUpdatesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListAllowedNodeTypeUpdates)++responseListTags :: ListTagsResponse -> TestTree+responseListTags =+ res+ "ListTagsResponse"+ "fixture/ListTagsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTags)++responsePurchaseReservedNodesOffering :: PurchaseReservedNodesOfferingResponse -> TestTree+responsePurchaseReservedNodesOffering =+ res+ "PurchaseReservedNodesOfferingResponse"+ "fixture/PurchaseReservedNodesOfferingResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PurchaseReservedNodesOffering)++responseResetParameterGroup :: ResetParameterGroupResponse -> TestTree+responseResetParameterGroup =+ res+ "ResetParameterGroupResponse"+ "fixture/ResetParameterGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ResetParameterGroup)++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)++responseUpdateACL :: UpdateACLResponse -> TestTree+responseUpdateACL =+ res+ "UpdateACLResponse"+ "fixture/UpdateACLResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateACL)++responseUpdateCluster :: UpdateClusterResponse -> TestTree+responseUpdateCluster =+ res+ "UpdateClusterResponse"+ "fixture/UpdateClusterResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateCluster)++responseUpdateParameterGroup :: UpdateParameterGroupResponse -> TestTree+responseUpdateParameterGroup =+ res+ "UpdateParameterGroupResponse"+ "fixture/UpdateParameterGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateParameterGroup)++responseUpdateSubnetGroup :: UpdateSubnetGroupResponse -> TestTree+responseUpdateSubnetGroup =+ res+ "UpdateSubnetGroupResponse"+ "fixture/UpdateSubnetGroupResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateSubnetGroup)++responseUpdateUser :: UpdateUserResponse -> TestTree+responseUpdateUser =+ res+ "UpdateUserResponse"+ "fixture/UpdateUserResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateUser)
+ test/Test/Amazonka/MemoryDb.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.MemoryDb+-- 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.MemoryDb+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/MemoryDb/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.MemoryDb.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.MemoryDb.Internal where