packages feed

amazonka-docdb (empty) → 2.0

raw patch · 206 files changed

+25798/−0 lines, 206 filesdep +amazonka-coredep +amazonka-docdbdep +amazonka-test

Dependencies added: amazonka-core, amazonka-docdb, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon DocumentDB with MongoDB compatibility SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2014-10-31@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-docdb)+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.DocumentDB](http://hackage.haskell.org/package/amazonka-docdb/docs/Amazonka-DocumentDB.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-docdb` 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-docdb.cabal view
@@ -0,0 +1,171 @@+cabal-version:      2.2+name:               amazonka-docdb+version:            2.0+synopsis:           Amazon DocumentDB with MongoDB compatibility 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 @2014-10-31@ 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.DocumentDB.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.DocumentDB" 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-docdb++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.DocumentDB+    Amazonka.DocumentDB.AddSourceIdentifierToSubscription+    Amazonka.DocumentDB.AddTagsToResource+    Amazonka.DocumentDB.ApplyPendingMaintenanceAction+    Amazonka.DocumentDB.CopyDBClusterParameterGroup+    Amazonka.DocumentDB.CopyDBClusterSnapshot+    Amazonka.DocumentDB.CreateDBCluster+    Amazonka.DocumentDB.CreateDBClusterParameterGroup+    Amazonka.DocumentDB.CreateDBClusterSnapshot+    Amazonka.DocumentDB.CreateDBInstance+    Amazonka.DocumentDB.CreateDBSubnetGroup+    Amazonka.DocumentDB.CreateEventSubscription+    Amazonka.DocumentDB.CreateGlobalCluster+    Amazonka.DocumentDB.DeleteDBCluster+    Amazonka.DocumentDB.DeleteDBClusterParameterGroup+    Amazonka.DocumentDB.DeleteDBClusterSnapshot+    Amazonka.DocumentDB.DeleteDBInstance+    Amazonka.DocumentDB.DeleteDBSubnetGroup+    Amazonka.DocumentDB.DeleteEventSubscription+    Amazonka.DocumentDB.DeleteGlobalCluster+    Amazonka.DocumentDB.DescribeCertificates+    Amazonka.DocumentDB.DescribeDBClusterParameterGroups+    Amazonka.DocumentDB.DescribeDBClusterParameters+    Amazonka.DocumentDB.DescribeDBClusters+    Amazonka.DocumentDB.DescribeDBClusterSnapshotAttributes+    Amazonka.DocumentDB.DescribeDBClusterSnapshots+    Amazonka.DocumentDB.DescribeDBEngineVersions+    Amazonka.DocumentDB.DescribeDBInstances+    Amazonka.DocumentDB.DescribeDBSubnetGroups+    Amazonka.DocumentDB.DescribeEngineDefaultClusterParameters+    Amazonka.DocumentDB.DescribeEventCategories+    Amazonka.DocumentDB.DescribeEvents+    Amazonka.DocumentDB.DescribeEventSubscriptions+    Amazonka.DocumentDB.DescribeGlobalClusters+    Amazonka.DocumentDB.DescribeOrderableDBInstanceOptions+    Amazonka.DocumentDB.DescribePendingMaintenanceActions+    Amazonka.DocumentDB.FailoverDBCluster+    Amazonka.DocumentDB.Lens+    Amazonka.DocumentDB.ListTagsForResource+    Amazonka.DocumentDB.ModifyDBCluster+    Amazonka.DocumentDB.ModifyDBClusterParameterGroup+    Amazonka.DocumentDB.ModifyDBClusterSnapshotAttribute+    Amazonka.DocumentDB.ModifyDBInstance+    Amazonka.DocumentDB.ModifyDBSubnetGroup+    Amazonka.DocumentDB.ModifyEventSubscription+    Amazonka.DocumentDB.ModifyGlobalCluster+    Amazonka.DocumentDB.RebootDBInstance+    Amazonka.DocumentDB.RemoveFromGlobalCluster+    Amazonka.DocumentDB.RemoveSourceIdentifierFromSubscription+    Amazonka.DocumentDB.RemoveTagsFromResource+    Amazonka.DocumentDB.ResetDBClusterParameterGroup+    Amazonka.DocumentDB.RestoreDBClusterFromSnapshot+    Amazonka.DocumentDB.RestoreDBClusterToPointInTime+    Amazonka.DocumentDB.StartDBCluster+    Amazonka.DocumentDB.StopDBCluster+    Amazonka.DocumentDB.Types+    Amazonka.DocumentDB.Types.ApplyMethod+    Amazonka.DocumentDB.Types.AvailabilityZone+    Amazonka.DocumentDB.Types.Certificate+    Amazonka.DocumentDB.Types.CloudwatchLogsExportConfiguration+    Amazonka.DocumentDB.Types.DBCluster+    Amazonka.DocumentDB.Types.DBClusterMember+    Amazonka.DocumentDB.Types.DBClusterParameterGroup+    Amazonka.DocumentDB.Types.DBClusterParameterGroupNameMessage+    Amazonka.DocumentDB.Types.DBClusterRole+    Amazonka.DocumentDB.Types.DBClusterSnapshot+    Amazonka.DocumentDB.Types.DBClusterSnapshotAttribute+    Amazonka.DocumentDB.Types.DBClusterSnapshotAttributesResult+    Amazonka.DocumentDB.Types.DBEngineVersion+    Amazonka.DocumentDB.Types.DBInstance+    Amazonka.DocumentDB.Types.DBInstanceStatusInfo+    Amazonka.DocumentDB.Types.DBSubnetGroup+    Amazonka.DocumentDB.Types.Endpoint+    Amazonka.DocumentDB.Types.EngineDefaults+    Amazonka.DocumentDB.Types.Event+    Amazonka.DocumentDB.Types.EventCategoriesMap+    Amazonka.DocumentDB.Types.EventSubscription+    Amazonka.DocumentDB.Types.Filter+    Amazonka.DocumentDB.Types.GlobalCluster+    Amazonka.DocumentDB.Types.GlobalClusterMember+    Amazonka.DocumentDB.Types.OrderableDBInstanceOption+    Amazonka.DocumentDB.Types.Parameter+    Amazonka.DocumentDB.Types.PendingCloudwatchLogsExports+    Amazonka.DocumentDB.Types.PendingMaintenanceAction+    Amazonka.DocumentDB.Types.PendingModifiedValues+    Amazonka.DocumentDB.Types.ResourcePendingMaintenanceActions+    Amazonka.DocumentDB.Types.SourceType+    Amazonka.DocumentDB.Types.Subnet+    Amazonka.DocumentDB.Types.Tag+    Amazonka.DocumentDB.Types.UpgradeTarget+    Amazonka.DocumentDB.Types.VpcSecurityGroupMembership+    Amazonka.DocumentDB.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-docdb-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.DocumentDB+    Test.Amazonka.DocumentDB.Internal+    Test.Amazonka.Gen.DocumentDB++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-docdb+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/AddSourceIdentifierToSubscription.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/AddSourceIdentifierToSubscriptionResponse.proto view
+ fixture/AddTagsToResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/AddTagsToResourceResponse.proto view
+ fixture/ApplyPendingMaintenanceAction.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/ApplyPendingMaintenanceActionResponse.proto view
+ fixture/CopyDBClusterParameterGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/CopyDBClusterParameterGroupResponse.proto view
+ fixture/CopyDBClusterSnapshot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/CopyDBClusterSnapshotResponse.proto view
+ fixture/CreateDBCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/CreateDBClusterParameterGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/CreateDBClusterParameterGroupResponse.proto view
+ fixture/CreateDBClusterResponse.proto view
+ fixture/CreateDBClusterSnapshot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/CreateDBClusterSnapshotResponse.proto view
+ fixture/CreateDBInstance.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/CreateDBInstanceResponse.proto view
+ fixture/CreateDBSubnetGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/CreateDBSubnetGroupResponse.proto view
+ fixture/CreateEventSubscription.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/CreateEventSubscriptionResponse.proto view
+ fixture/CreateGlobalCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/CreateGlobalClusterResponse.proto view
+ fixture/DeleteDBCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DeleteDBClusterParameterGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DeleteDBClusterParameterGroupResponse.proto view
+ fixture/DeleteDBClusterResponse.proto view
+ fixture/DeleteDBClusterSnapshot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DeleteDBClusterSnapshotResponse.proto view
+ fixture/DeleteDBInstance.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DeleteDBInstanceResponse.proto view
+ fixture/DeleteDBSubnetGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DeleteDBSubnetGroupResponse.proto view
+ fixture/DeleteEventSubscription.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DeleteEventSubscriptionResponse.proto view
+ fixture/DeleteGlobalCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DeleteGlobalClusterResponse.proto view
+ fixture/DescribeCertificates.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeCertificatesResponse.proto view
+ fixture/DescribeDBClusterParameterGroups.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeDBClusterParameterGroupsResponse.proto view
+ fixture/DescribeDBClusterParameters.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeDBClusterParametersResponse.proto view
+ fixture/DescribeDBClusterSnapshotAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeDBClusterSnapshotAttributesResponse.proto view
+ fixture/DescribeDBClusterSnapshots.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeDBClusterSnapshotsResponse.proto view
+ fixture/DescribeDBClusters.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeDBClustersResponse.proto view
+ fixture/DescribeDBEngineVersions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeDBEngineVersionsResponse.proto view
+ fixture/DescribeDBInstances.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeDBInstancesResponse.proto view
+ fixture/DescribeDBSubnetGroups.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeDBSubnetGroupsResponse.proto view
+ fixture/DescribeEngineDefaultClusterParameters.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeEngineDefaultClusterParametersResponse.proto view
+ fixture/DescribeEventCategories.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeEventCategoriesResponse.proto view
+ fixture/DescribeEventSubscriptions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeEventSubscriptionsResponse.proto view
+ fixture/DescribeEvents.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeGlobalClusters.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeGlobalClustersResponse.proto view
+ fixture/DescribeOrderableDBInstanceOptions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribeOrderableDBInstanceOptionsResponse.proto view
+ fixture/DescribePendingMaintenanceActions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/DescribePendingMaintenanceActionsResponse.proto view
+ fixture/FailoverDBCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/FailoverDBClusterResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListTagsForResourceResponse.proto view
+ fixture/ModifyDBCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/ModifyDBClusterParameterGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/ModifyDBClusterParameterGroupResponse.proto view
+ fixture/ModifyDBClusterResponse.proto view
+ fixture/ModifyDBClusterSnapshotAttribute.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/ModifyDBClusterSnapshotAttributeResponse.proto view
+ fixture/ModifyDBInstance.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/ModifyDBInstanceResponse.proto view
+ fixture/ModifyDBSubnetGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/ModifyDBSubnetGroupResponse.proto view
+ fixture/ModifyEventSubscription.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/ModifyEventSubscriptionResponse.proto view
+ fixture/ModifyGlobalCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/ModifyGlobalClusterResponse.proto view
+ fixture/RebootDBInstance.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/RebootDBInstanceResponse.proto view
+ fixture/RemoveFromGlobalCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/RemoveFromGlobalClusterResponse.proto view
+ fixture/RemoveSourceIdentifierFromSubscription.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/RemoveSourceIdentifierFromSubscriptionResponse.proto view
+ fixture/RemoveTagsFromResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/RemoveTagsFromResourceResponse.proto view
+ fixture/ResetDBClusterParameterGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/ResetDBClusterParameterGroupResponse.proto view
+ fixture/RestoreDBClusterFromSnapshot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/RestoreDBClusterFromSnapshotResponse.proto view
+ fixture/RestoreDBClusterToPointInTime.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/RestoreDBClusterToPointInTimeResponse.proto view
+ fixture/StartDBCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/StartDBClusterResponse.proto view
+ fixture/StopDBCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/rds/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  rds.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/StopDBClusterResponse.proto view
+ gen/Amazonka/DocumentDB.hs view
@@ -0,0 +1,747 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.DocumentDB+-- 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 @2014-10-31@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon DocumentDB API documentation+module Amazonka.DocumentDB+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AuthorizationNotFoundFault+    _AuthorizationNotFoundFault,++    -- ** CertificateNotFoundFault+    _CertificateNotFoundFault,++    -- ** DBClusterAlreadyExistsFault+    _DBClusterAlreadyExistsFault,++    -- ** DBClusterNotFoundFault+    _DBClusterNotFoundFault,++    -- ** DBClusterParameterGroupNotFoundFault+    _DBClusterParameterGroupNotFoundFault,++    -- ** DBClusterQuotaExceededFault+    _DBClusterQuotaExceededFault,++    -- ** DBClusterSnapshotAlreadyExistsFault+    _DBClusterSnapshotAlreadyExistsFault,++    -- ** DBClusterSnapshotNotFoundFault+    _DBClusterSnapshotNotFoundFault,++    -- ** DBInstanceAlreadyExistsFault+    _DBInstanceAlreadyExistsFault,++    -- ** DBInstanceNotFoundFault+    _DBInstanceNotFoundFault,++    -- ** DBParameterGroupAlreadyExistsFault+    _DBParameterGroupAlreadyExistsFault,++    -- ** DBParameterGroupNotFoundFault+    _DBParameterGroupNotFoundFault,++    -- ** DBParameterGroupQuotaExceededFault+    _DBParameterGroupQuotaExceededFault,++    -- ** DBSecurityGroupNotFoundFault+    _DBSecurityGroupNotFoundFault,++    -- ** DBSnapshotAlreadyExistsFault+    _DBSnapshotAlreadyExistsFault,++    -- ** DBSnapshotNotFoundFault+    _DBSnapshotNotFoundFault,++    -- ** DBSubnetGroupAlreadyExistsFault+    _DBSubnetGroupAlreadyExistsFault,++    -- ** DBSubnetGroupDoesNotCoverEnoughAZs+    _DBSubnetGroupDoesNotCoverEnoughAZs,++    -- ** DBSubnetGroupNotFoundFault+    _DBSubnetGroupNotFoundFault,++    -- ** DBSubnetGroupQuotaExceededFault+    _DBSubnetGroupQuotaExceededFault,++    -- ** DBSubnetQuotaExceededFault+    _DBSubnetQuotaExceededFault,++    -- ** DBUpgradeDependencyFailureFault+    _DBUpgradeDependencyFailureFault,++    -- ** EventSubscriptionQuotaExceededFault+    _EventSubscriptionQuotaExceededFault,++    -- ** GlobalClusterAlreadyExistsFault+    _GlobalClusterAlreadyExistsFault,++    -- ** GlobalClusterNotFoundFault+    _GlobalClusterNotFoundFault,++    -- ** GlobalClusterQuotaExceededFault+    _GlobalClusterQuotaExceededFault,++    -- ** InstanceQuotaExceededFault+    _InstanceQuotaExceededFault,++    -- ** InsufficientDBClusterCapacityFault+    _InsufficientDBClusterCapacityFault,++    -- ** InsufficientDBInstanceCapacityFault+    _InsufficientDBInstanceCapacityFault,++    -- ** InsufficientStorageClusterCapacityFault+    _InsufficientStorageClusterCapacityFault,++    -- ** InvalidDBClusterSnapshotStateFault+    _InvalidDBClusterSnapshotStateFault,++    -- ** InvalidDBClusterStateFault+    _InvalidDBClusterStateFault,++    -- ** InvalidDBInstanceStateFault+    _InvalidDBInstanceStateFault,++    -- ** InvalidDBParameterGroupStateFault+    _InvalidDBParameterGroupStateFault,++    -- ** InvalidDBSecurityGroupStateFault+    _InvalidDBSecurityGroupStateFault,++    -- ** InvalidDBSnapshotStateFault+    _InvalidDBSnapshotStateFault,++    -- ** InvalidDBSubnetGroupStateFault+    _InvalidDBSubnetGroupStateFault,++    -- ** InvalidDBSubnetStateFault+    _InvalidDBSubnetStateFault,++    -- ** InvalidEventSubscriptionStateFault+    _InvalidEventSubscriptionStateFault,++    -- ** InvalidGlobalClusterStateFault+    _InvalidGlobalClusterStateFault,++    -- ** InvalidRestoreFault+    _InvalidRestoreFault,++    -- ** InvalidSubnet+    _InvalidSubnet,++    -- ** InvalidVPCNetworkStateFault+    _InvalidVPCNetworkStateFault,++    -- ** KMSKeyNotAccessibleFault+    _KMSKeyNotAccessibleFault,++    -- ** ResourceNotFoundFault+    _ResourceNotFoundFault,++    -- ** SNSInvalidTopicFault+    _SNSInvalidTopicFault,++    -- ** SNSNoAuthorizationFault+    _SNSNoAuthorizationFault,++    -- ** SNSTopicArnNotFoundFault+    _SNSTopicArnNotFoundFault,++    -- ** SharedSnapshotQuotaExceededFault+    _SharedSnapshotQuotaExceededFault,++    -- ** SnapshotQuotaExceededFault+    _SnapshotQuotaExceededFault,++    -- ** SourceNotFoundFault+    _SourceNotFoundFault,++    -- ** StorageQuotaExceededFault+    _StorageQuotaExceededFault,++    -- ** StorageTypeNotSupportedFault+    _StorageTypeNotSupportedFault,++    -- ** SubnetAlreadyInUse+    _SubnetAlreadyInUse,++    -- ** SubscriptionAlreadyExistFault+    _SubscriptionAlreadyExistFault,++    -- ** SubscriptionCategoryNotFoundFault+    _SubscriptionCategoryNotFoundFault,++    -- ** SubscriptionNotFoundFault+    _SubscriptionNotFoundFault,++    -- * Waiters+    -- $waiters++    -- ** DBInstanceAvailable+    newDBInstanceAvailable,++    -- ** DBInstanceDeleted+    newDBInstanceDeleted,++    -- * Operations+    -- $operations++    -- ** AddSourceIdentifierToSubscription+    AddSourceIdentifierToSubscription (AddSourceIdentifierToSubscription'),+    newAddSourceIdentifierToSubscription,+    AddSourceIdentifierToSubscriptionResponse (AddSourceIdentifierToSubscriptionResponse'),+    newAddSourceIdentifierToSubscriptionResponse,++    -- ** AddTagsToResource+    AddTagsToResource (AddTagsToResource'),+    newAddTagsToResource,+    AddTagsToResourceResponse (AddTagsToResourceResponse'),+    newAddTagsToResourceResponse,++    -- ** ApplyPendingMaintenanceAction+    ApplyPendingMaintenanceAction (ApplyPendingMaintenanceAction'),+    newApplyPendingMaintenanceAction,+    ApplyPendingMaintenanceActionResponse (ApplyPendingMaintenanceActionResponse'),+    newApplyPendingMaintenanceActionResponse,++    -- ** CopyDBClusterParameterGroup+    CopyDBClusterParameterGroup (CopyDBClusterParameterGroup'),+    newCopyDBClusterParameterGroup,+    CopyDBClusterParameterGroupResponse (CopyDBClusterParameterGroupResponse'),+    newCopyDBClusterParameterGroupResponse,++    -- ** CopyDBClusterSnapshot+    CopyDBClusterSnapshot (CopyDBClusterSnapshot'),+    newCopyDBClusterSnapshot,+    CopyDBClusterSnapshotResponse (CopyDBClusterSnapshotResponse'),+    newCopyDBClusterSnapshotResponse,++    -- ** CreateDBCluster+    CreateDBCluster (CreateDBCluster'),+    newCreateDBCluster,+    CreateDBClusterResponse (CreateDBClusterResponse'),+    newCreateDBClusterResponse,++    -- ** CreateDBClusterParameterGroup+    CreateDBClusterParameterGroup (CreateDBClusterParameterGroup'),+    newCreateDBClusterParameterGroup,+    CreateDBClusterParameterGroupResponse (CreateDBClusterParameterGroupResponse'),+    newCreateDBClusterParameterGroupResponse,++    -- ** CreateDBClusterSnapshot+    CreateDBClusterSnapshot (CreateDBClusterSnapshot'),+    newCreateDBClusterSnapshot,+    CreateDBClusterSnapshotResponse (CreateDBClusterSnapshotResponse'),+    newCreateDBClusterSnapshotResponse,++    -- ** CreateDBInstance+    CreateDBInstance (CreateDBInstance'),+    newCreateDBInstance,+    CreateDBInstanceResponse (CreateDBInstanceResponse'),+    newCreateDBInstanceResponse,++    -- ** CreateDBSubnetGroup+    CreateDBSubnetGroup (CreateDBSubnetGroup'),+    newCreateDBSubnetGroup,+    CreateDBSubnetGroupResponse (CreateDBSubnetGroupResponse'),+    newCreateDBSubnetGroupResponse,++    -- ** CreateEventSubscription+    CreateEventSubscription (CreateEventSubscription'),+    newCreateEventSubscription,+    CreateEventSubscriptionResponse (CreateEventSubscriptionResponse'),+    newCreateEventSubscriptionResponse,++    -- ** CreateGlobalCluster+    CreateGlobalCluster (CreateGlobalCluster'),+    newCreateGlobalCluster,+    CreateGlobalClusterResponse (CreateGlobalClusterResponse'),+    newCreateGlobalClusterResponse,++    -- ** DeleteDBCluster+    DeleteDBCluster (DeleteDBCluster'),+    newDeleteDBCluster,+    DeleteDBClusterResponse (DeleteDBClusterResponse'),+    newDeleteDBClusterResponse,++    -- ** DeleteDBClusterParameterGroup+    DeleteDBClusterParameterGroup (DeleteDBClusterParameterGroup'),+    newDeleteDBClusterParameterGroup,+    DeleteDBClusterParameterGroupResponse (DeleteDBClusterParameterGroupResponse'),+    newDeleteDBClusterParameterGroupResponse,++    -- ** DeleteDBClusterSnapshot+    DeleteDBClusterSnapshot (DeleteDBClusterSnapshot'),+    newDeleteDBClusterSnapshot,+    DeleteDBClusterSnapshotResponse (DeleteDBClusterSnapshotResponse'),+    newDeleteDBClusterSnapshotResponse,++    -- ** DeleteDBInstance+    DeleteDBInstance (DeleteDBInstance'),+    newDeleteDBInstance,+    DeleteDBInstanceResponse (DeleteDBInstanceResponse'),+    newDeleteDBInstanceResponse,++    -- ** DeleteDBSubnetGroup+    DeleteDBSubnetGroup (DeleteDBSubnetGroup'),+    newDeleteDBSubnetGroup,+    DeleteDBSubnetGroupResponse (DeleteDBSubnetGroupResponse'),+    newDeleteDBSubnetGroupResponse,++    -- ** DeleteEventSubscription+    DeleteEventSubscription (DeleteEventSubscription'),+    newDeleteEventSubscription,+    DeleteEventSubscriptionResponse (DeleteEventSubscriptionResponse'),+    newDeleteEventSubscriptionResponse,++    -- ** DeleteGlobalCluster+    DeleteGlobalCluster (DeleteGlobalCluster'),+    newDeleteGlobalCluster,+    DeleteGlobalClusterResponse (DeleteGlobalClusterResponse'),+    newDeleteGlobalClusterResponse,++    -- ** DescribeCertificates (Paginated)+    DescribeCertificates (DescribeCertificates'),+    newDescribeCertificates,+    DescribeCertificatesResponse (DescribeCertificatesResponse'),+    newDescribeCertificatesResponse,++    -- ** DescribeDBClusterParameterGroups (Paginated)+    DescribeDBClusterParameterGroups (DescribeDBClusterParameterGroups'),+    newDescribeDBClusterParameterGroups,+    DescribeDBClusterParameterGroupsResponse (DescribeDBClusterParameterGroupsResponse'),+    newDescribeDBClusterParameterGroupsResponse,++    -- ** DescribeDBClusterParameters (Paginated)+    DescribeDBClusterParameters (DescribeDBClusterParameters'),+    newDescribeDBClusterParameters,+    DescribeDBClusterParametersResponse (DescribeDBClusterParametersResponse'),+    newDescribeDBClusterParametersResponse,++    -- ** DescribeDBClusterSnapshotAttributes+    DescribeDBClusterSnapshotAttributes (DescribeDBClusterSnapshotAttributes'),+    newDescribeDBClusterSnapshotAttributes,+    DescribeDBClusterSnapshotAttributesResponse (DescribeDBClusterSnapshotAttributesResponse'),+    newDescribeDBClusterSnapshotAttributesResponse,++    -- ** DescribeDBClusterSnapshots (Paginated)+    DescribeDBClusterSnapshots (DescribeDBClusterSnapshots'),+    newDescribeDBClusterSnapshots,+    DescribeDBClusterSnapshotsResponse (DescribeDBClusterSnapshotsResponse'),+    newDescribeDBClusterSnapshotsResponse,++    -- ** DescribeDBClusters (Paginated)+    DescribeDBClusters (DescribeDBClusters'),+    newDescribeDBClusters,+    DescribeDBClustersResponse (DescribeDBClustersResponse'),+    newDescribeDBClustersResponse,++    -- ** DescribeDBEngineVersions (Paginated)+    DescribeDBEngineVersions (DescribeDBEngineVersions'),+    newDescribeDBEngineVersions,+    DescribeDBEngineVersionsResponse (DescribeDBEngineVersionsResponse'),+    newDescribeDBEngineVersionsResponse,++    -- ** DescribeDBInstances (Paginated)+    DescribeDBInstances (DescribeDBInstances'),+    newDescribeDBInstances,+    DescribeDBInstancesResponse (DescribeDBInstancesResponse'),+    newDescribeDBInstancesResponse,++    -- ** DescribeDBSubnetGroups (Paginated)+    DescribeDBSubnetGroups (DescribeDBSubnetGroups'),+    newDescribeDBSubnetGroups,+    DescribeDBSubnetGroupsResponse (DescribeDBSubnetGroupsResponse'),+    newDescribeDBSubnetGroupsResponse,++    -- ** DescribeEngineDefaultClusterParameters+    DescribeEngineDefaultClusterParameters (DescribeEngineDefaultClusterParameters'),+    newDescribeEngineDefaultClusterParameters,+    DescribeEngineDefaultClusterParametersResponse (DescribeEngineDefaultClusterParametersResponse'),+    newDescribeEngineDefaultClusterParametersResponse,++    -- ** DescribeEventCategories+    DescribeEventCategories (DescribeEventCategories'),+    newDescribeEventCategories,+    DescribeEventCategoriesResponse (DescribeEventCategoriesResponse'),+    newDescribeEventCategoriesResponse,++    -- ** DescribeEventSubscriptions (Paginated)+    DescribeEventSubscriptions (DescribeEventSubscriptions'),+    newDescribeEventSubscriptions,+    DescribeEventSubscriptionsResponse (DescribeEventSubscriptionsResponse'),+    newDescribeEventSubscriptionsResponse,++    -- ** DescribeEvents (Paginated)+    DescribeEvents (DescribeEvents'),+    newDescribeEvents,+    DescribeEventsResponse (DescribeEventsResponse'),+    newDescribeEventsResponse,++    -- ** DescribeGlobalClusters (Paginated)+    DescribeGlobalClusters (DescribeGlobalClusters'),+    newDescribeGlobalClusters,+    DescribeGlobalClustersResponse (DescribeGlobalClustersResponse'),+    newDescribeGlobalClustersResponse,++    -- ** DescribeOrderableDBInstanceOptions (Paginated)+    DescribeOrderableDBInstanceOptions (DescribeOrderableDBInstanceOptions'),+    newDescribeOrderableDBInstanceOptions,+    DescribeOrderableDBInstanceOptionsResponse (DescribeOrderableDBInstanceOptionsResponse'),+    newDescribeOrderableDBInstanceOptionsResponse,++    -- ** DescribePendingMaintenanceActions (Paginated)+    DescribePendingMaintenanceActions (DescribePendingMaintenanceActions'),+    newDescribePendingMaintenanceActions,+    DescribePendingMaintenanceActionsResponse (DescribePendingMaintenanceActionsResponse'),+    newDescribePendingMaintenanceActionsResponse,++    -- ** FailoverDBCluster+    FailoverDBCluster (FailoverDBCluster'),+    newFailoverDBCluster,+    FailoverDBClusterResponse (FailoverDBClusterResponse'),+    newFailoverDBClusterResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ModifyDBCluster+    ModifyDBCluster (ModifyDBCluster'),+    newModifyDBCluster,+    ModifyDBClusterResponse (ModifyDBClusterResponse'),+    newModifyDBClusterResponse,++    -- ** ModifyDBClusterParameterGroup+    ModifyDBClusterParameterGroup (ModifyDBClusterParameterGroup'),+    newModifyDBClusterParameterGroup,+    DBClusterParameterGroupNameMessage (DBClusterParameterGroupNameMessage'),+    newDBClusterParameterGroupNameMessage,++    -- ** ModifyDBClusterSnapshotAttribute+    ModifyDBClusterSnapshotAttribute (ModifyDBClusterSnapshotAttribute'),+    newModifyDBClusterSnapshotAttribute,+    ModifyDBClusterSnapshotAttributeResponse (ModifyDBClusterSnapshotAttributeResponse'),+    newModifyDBClusterSnapshotAttributeResponse,++    -- ** ModifyDBInstance+    ModifyDBInstance (ModifyDBInstance'),+    newModifyDBInstance,+    ModifyDBInstanceResponse (ModifyDBInstanceResponse'),+    newModifyDBInstanceResponse,++    -- ** ModifyDBSubnetGroup+    ModifyDBSubnetGroup (ModifyDBSubnetGroup'),+    newModifyDBSubnetGroup,+    ModifyDBSubnetGroupResponse (ModifyDBSubnetGroupResponse'),+    newModifyDBSubnetGroupResponse,++    -- ** ModifyEventSubscription+    ModifyEventSubscription (ModifyEventSubscription'),+    newModifyEventSubscription,+    ModifyEventSubscriptionResponse (ModifyEventSubscriptionResponse'),+    newModifyEventSubscriptionResponse,++    -- ** ModifyGlobalCluster+    ModifyGlobalCluster (ModifyGlobalCluster'),+    newModifyGlobalCluster,+    ModifyGlobalClusterResponse (ModifyGlobalClusterResponse'),+    newModifyGlobalClusterResponse,++    -- ** RebootDBInstance+    RebootDBInstance (RebootDBInstance'),+    newRebootDBInstance,+    RebootDBInstanceResponse (RebootDBInstanceResponse'),+    newRebootDBInstanceResponse,++    -- ** RemoveFromGlobalCluster+    RemoveFromGlobalCluster (RemoveFromGlobalCluster'),+    newRemoveFromGlobalCluster,+    RemoveFromGlobalClusterResponse (RemoveFromGlobalClusterResponse'),+    newRemoveFromGlobalClusterResponse,++    -- ** RemoveSourceIdentifierFromSubscription+    RemoveSourceIdentifierFromSubscription (RemoveSourceIdentifierFromSubscription'),+    newRemoveSourceIdentifierFromSubscription,+    RemoveSourceIdentifierFromSubscriptionResponse (RemoveSourceIdentifierFromSubscriptionResponse'),+    newRemoveSourceIdentifierFromSubscriptionResponse,++    -- ** RemoveTagsFromResource+    RemoveTagsFromResource (RemoveTagsFromResource'),+    newRemoveTagsFromResource,+    RemoveTagsFromResourceResponse (RemoveTagsFromResourceResponse'),+    newRemoveTagsFromResourceResponse,++    -- ** ResetDBClusterParameterGroup+    ResetDBClusterParameterGroup (ResetDBClusterParameterGroup'),+    newResetDBClusterParameterGroup,+    DBClusterParameterGroupNameMessage (DBClusterParameterGroupNameMessage'),+    newDBClusterParameterGroupNameMessage,++    -- ** RestoreDBClusterFromSnapshot+    RestoreDBClusterFromSnapshot (RestoreDBClusterFromSnapshot'),+    newRestoreDBClusterFromSnapshot,+    RestoreDBClusterFromSnapshotResponse (RestoreDBClusterFromSnapshotResponse'),+    newRestoreDBClusterFromSnapshotResponse,++    -- ** RestoreDBClusterToPointInTime+    RestoreDBClusterToPointInTime (RestoreDBClusterToPointInTime'),+    newRestoreDBClusterToPointInTime,+    RestoreDBClusterToPointInTimeResponse (RestoreDBClusterToPointInTimeResponse'),+    newRestoreDBClusterToPointInTimeResponse,++    -- ** StartDBCluster+    StartDBCluster (StartDBCluster'),+    newStartDBCluster,+    StartDBClusterResponse (StartDBClusterResponse'),+    newStartDBClusterResponse,++    -- ** StopDBCluster+    StopDBCluster (StopDBCluster'),+    newStopDBCluster,+    StopDBClusterResponse (StopDBClusterResponse'),+    newStopDBClusterResponse,++    -- * Types++    -- ** ApplyMethod+    ApplyMethod (..),++    -- ** SourceType+    SourceType (..),++    -- ** AvailabilityZone+    AvailabilityZone (AvailabilityZone'),+    newAvailabilityZone,++    -- ** Certificate+    Certificate (Certificate'),+    newCertificate,++    -- ** CloudwatchLogsExportConfiguration+    CloudwatchLogsExportConfiguration (CloudwatchLogsExportConfiguration'),+    newCloudwatchLogsExportConfiguration,++    -- ** DBCluster+    DBCluster (DBCluster'),+    newDBCluster,++    -- ** DBClusterMember+    DBClusterMember (DBClusterMember'),+    newDBClusterMember,++    -- ** DBClusterParameterGroup+    DBClusterParameterGroup (DBClusterParameterGroup'),+    newDBClusterParameterGroup,++    -- ** DBClusterParameterGroupNameMessage+    DBClusterParameterGroupNameMessage (DBClusterParameterGroupNameMessage'),+    newDBClusterParameterGroupNameMessage,++    -- ** DBClusterRole+    DBClusterRole (DBClusterRole'),+    newDBClusterRole,++    -- ** DBClusterSnapshot+    DBClusterSnapshot (DBClusterSnapshot'),+    newDBClusterSnapshot,++    -- ** DBClusterSnapshotAttribute+    DBClusterSnapshotAttribute (DBClusterSnapshotAttribute'),+    newDBClusterSnapshotAttribute,++    -- ** DBClusterSnapshotAttributesResult+    DBClusterSnapshotAttributesResult (DBClusterSnapshotAttributesResult'),+    newDBClusterSnapshotAttributesResult,++    -- ** DBEngineVersion+    DBEngineVersion (DBEngineVersion'),+    newDBEngineVersion,++    -- ** DBInstance+    DBInstance (DBInstance'),+    newDBInstance,++    -- ** DBInstanceStatusInfo+    DBInstanceStatusInfo (DBInstanceStatusInfo'),+    newDBInstanceStatusInfo,++    -- ** DBSubnetGroup+    DBSubnetGroup (DBSubnetGroup'),+    newDBSubnetGroup,++    -- ** Endpoint+    Endpoint (Endpoint'),+    newEndpoint,++    -- ** EngineDefaults+    EngineDefaults (EngineDefaults'),+    newEngineDefaults,++    -- ** Event+    Event (Event'),+    newEvent,++    -- ** EventCategoriesMap+    EventCategoriesMap (EventCategoriesMap'),+    newEventCategoriesMap,++    -- ** EventSubscription+    EventSubscription (EventSubscription'),+    newEventSubscription,++    -- ** Filter+    Filter (Filter'),+    newFilter,++    -- ** GlobalCluster+    GlobalCluster (GlobalCluster'),+    newGlobalCluster,++    -- ** GlobalClusterMember+    GlobalClusterMember (GlobalClusterMember'),+    newGlobalClusterMember,++    -- ** OrderableDBInstanceOption+    OrderableDBInstanceOption (OrderableDBInstanceOption'),+    newOrderableDBInstanceOption,++    -- ** Parameter+    Parameter (Parameter'),+    newParameter,++    -- ** PendingCloudwatchLogsExports+    PendingCloudwatchLogsExports (PendingCloudwatchLogsExports'),+    newPendingCloudwatchLogsExports,++    -- ** PendingMaintenanceAction+    PendingMaintenanceAction (PendingMaintenanceAction'),+    newPendingMaintenanceAction,++    -- ** PendingModifiedValues+    PendingModifiedValues (PendingModifiedValues'),+    newPendingModifiedValues,++    -- ** ResourcePendingMaintenanceActions+    ResourcePendingMaintenanceActions (ResourcePendingMaintenanceActions'),+    newResourcePendingMaintenanceActions,++    -- ** Subnet+    Subnet (Subnet'),+    newSubnet,++    -- ** Tag+    Tag (Tag'),+    newTag,++    -- ** UpgradeTarget+    UpgradeTarget (UpgradeTarget'),+    newUpgradeTarget,++    -- ** VpcSecurityGroupMembership+    VpcSecurityGroupMembership (VpcSecurityGroupMembership'),+    newVpcSecurityGroupMembership,+  )+where++import Amazonka.DocumentDB.AddSourceIdentifierToSubscription+import Amazonka.DocumentDB.AddTagsToResource+import Amazonka.DocumentDB.ApplyPendingMaintenanceAction+import Amazonka.DocumentDB.CopyDBClusterParameterGroup+import Amazonka.DocumentDB.CopyDBClusterSnapshot+import Amazonka.DocumentDB.CreateDBCluster+import Amazonka.DocumentDB.CreateDBClusterParameterGroup+import Amazonka.DocumentDB.CreateDBClusterSnapshot+import Amazonka.DocumentDB.CreateDBInstance+import Amazonka.DocumentDB.CreateDBSubnetGroup+import Amazonka.DocumentDB.CreateEventSubscription+import Amazonka.DocumentDB.CreateGlobalCluster+import Amazonka.DocumentDB.DeleteDBCluster+import Amazonka.DocumentDB.DeleteDBClusterParameterGroup+import Amazonka.DocumentDB.DeleteDBClusterSnapshot+import Amazonka.DocumentDB.DeleteDBInstance+import Amazonka.DocumentDB.DeleteDBSubnetGroup+import Amazonka.DocumentDB.DeleteEventSubscription+import Amazonka.DocumentDB.DeleteGlobalCluster+import Amazonka.DocumentDB.DescribeCertificates+import Amazonka.DocumentDB.DescribeDBClusterParameterGroups+import Amazonka.DocumentDB.DescribeDBClusterParameters+import Amazonka.DocumentDB.DescribeDBClusterSnapshotAttributes+import Amazonka.DocumentDB.DescribeDBClusterSnapshots+import Amazonka.DocumentDB.DescribeDBClusters+import Amazonka.DocumentDB.DescribeDBEngineVersions+import Amazonka.DocumentDB.DescribeDBInstances+import Amazonka.DocumentDB.DescribeDBSubnetGroups+import Amazonka.DocumentDB.DescribeEngineDefaultClusterParameters+import Amazonka.DocumentDB.DescribeEventCategories+import Amazonka.DocumentDB.DescribeEventSubscriptions+import Amazonka.DocumentDB.DescribeEvents+import Amazonka.DocumentDB.DescribeGlobalClusters+import Amazonka.DocumentDB.DescribeOrderableDBInstanceOptions+import Amazonka.DocumentDB.DescribePendingMaintenanceActions+import Amazonka.DocumentDB.FailoverDBCluster+import Amazonka.DocumentDB.Lens+import Amazonka.DocumentDB.ListTagsForResource+import Amazonka.DocumentDB.ModifyDBCluster+import Amazonka.DocumentDB.ModifyDBClusterParameterGroup+import Amazonka.DocumentDB.ModifyDBClusterSnapshotAttribute+import Amazonka.DocumentDB.ModifyDBInstance+import Amazonka.DocumentDB.ModifyDBSubnetGroup+import Amazonka.DocumentDB.ModifyEventSubscription+import Amazonka.DocumentDB.ModifyGlobalCluster+import Amazonka.DocumentDB.RebootDBInstance+import Amazonka.DocumentDB.RemoveFromGlobalCluster+import Amazonka.DocumentDB.RemoveSourceIdentifierFromSubscription+import Amazonka.DocumentDB.RemoveTagsFromResource+import Amazonka.DocumentDB.ResetDBClusterParameterGroup+import Amazonka.DocumentDB.RestoreDBClusterFromSnapshot+import Amazonka.DocumentDB.RestoreDBClusterToPointInTime+import Amazonka.DocumentDB.StartDBCluster+import Amazonka.DocumentDB.StopDBCluster+import Amazonka.DocumentDB.Types+import Amazonka.DocumentDB.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 'DocumentDB'.++-- $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/DocumentDB/AddSourceIdentifierToSubscription.hs view
@@ -0,0 +1,245 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.AddSourceIdentifierToSubscription+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds a source identifier to an existing event notification subscription.+module Amazonka.DocumentDB.AddSourceIdentifierToSubscription+  ( -- * Creating a Request+    AddSourceIdentifierToSubscription (..),+    newAddSourceIdentifierToSubscription,++    -- * Request Lenses+    addSourceIdentifierToSubscription_subscriptionName,+    addSourceIdentifierToSubscription_sourceIdentifier,++    -- * Destructuring the Response+    AddSourceIdentifierToSubscriptionResponse (..),+    newAddSourceIdentifierToSubscriptionResponse,++    -- * Response Lenses+    addSourceIdentifierToSubscriptionResponse_eventSubscription,+    addSourceIdentifierToSubscriptionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to AddSourceIdentifierToSubscription.+--+-- /See:/ 'newAddSourceIdentifierToSubscription' smart constructor.+data AddSourceIdentifierToSubscription = AddSourceIdentifierToSubscription'+  { -- | The name of the Amazon DocumentDB event notification subscription that+    -- you want to add a source identifier to.+    subscriptionName :: Prelude.Text,+    -- | The identifier of the event source to be added:+    --+    -- -   If the source type is an instance, a @DBInstanceIdentifier@ must be+    --     provided.+    --+    -- -   If the source type is a security group, a @DBSecurityGroupName@ must+    --     be provided.+    --+    -- -   If the source type is a parameter group, a @DBParameterGroupName@+    --     must be provided.+    --+    -- -   If the source type is a snapshot, a @DBSnapshotIdentifier@ must be+    --     provided.+    sourceIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddSourceIdentifierToSubscription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subscriptionName', 'addSourceIdentifierToSubscription_subscriptionName' - The name of the Amazon DocumentDB event notification subscription that+-- you want to add a source identifier to.+--+-- 'sourceIdentifier', 'addSourceIdentifierToSubscription_sourceIdentifier' - The identifier of the event source to be added:+--+-- -   If the source type is an instance, a @DBInstanceIdentifier@ must be+--     provided.+--+-- -   If the source type is a security group, a @DBSecurityGroupName@ must+--     be provided.+--+-- -   If the source type is a parameter group, a @DBParameterGroupName@+--     must be provided.+--+-- -   If the source type is a snapshot, a @DBSnapshotIdentifier@ must be+--     provided.+newAddSourceIdentifierToSubscription ::+  -- | 'subscriptionName'+  Prelude.Text ->+  -- | 'sourceIdentifier'+  Prelude.Text ->+  AddSourceIdentifierToSubscription+newAddSourceIdentifierToSubscription+  pSubscriptionName_+  pSourceIdentifier_ =+    AddSourceIdentifierToSubscription'+      { subscriptionName =+          pSubscriptionName_,+        sourceIdentifier = pSourceIdentifier_+      }++-- | The name of the Amazon DocumentDB event notification subscription that+-- you want to add a source identifier to.+addSourceIdentifierToSubscription_subscriptionName :: Lens.Lens' AddSourceIdentifierToSubscription Prelude.Text+addSourceIdentifierToSubscription_subscriptionName = Lens.lens (\AddSourceIdentifierToSubscription' {subscriptionName} -> subscriptionName) (\s@AddSourceIdentifierToSubscription' {} a -> s {subscriptionName = a} :: AddSourceIdentifierToSubscription)++-- | The identifier of the event source to be added:+--+-- -   If the source type is an instance, a @DBInstanceIdentifier@ must be+--     provided.+--+-- -   If the source type is a security group, a @DBSecurityGroupName@ must+--     be provided.+--+-- -   If the source type is a parameter group, a @DBParameterGroupName@+--     must be provided.+--+-- -   If the source type is a snapshot, a @DBSnapshotIdentifier@ must be+--     provided.+addSourceIdentifierToSubscription_sourceIdentifier :: Lens.Lens' AddSourceIdentifierToSubscription Prelude.Text+addSourceIdentifierToSubscription_sourceIdentifier = Lens.lens (\AddSourceIdentifierToSubscription' {sourceIdentifier} -> sourceIdentifier) (\s@AddSourceIdentifierToSubscription' {} a -> s {sourceIdentifier = a} :: AddSourceIdentifierToSubscription)++instance+  Core.AWSRequest+    AddSourceIdentifierToSubscription+  where+  type+    AWSResponse AddSourceIdentifierToSubscription =+      AddSourceIdentifierToSubscriptionResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "AddSourceIdentifierToSubscriptionResult"+      ( \s h x ->+          AddSourceIdentifierToSubscriptionResponse'+            Prelude.<$> (x Data..@? "EventSubscription")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    AddSourceIdentifierToSubscription+  where+  hashWithSalt+    _salt+    AddSourceIdentifierToSubscription' {..} =+      _salt+        `Prelude.hashWithSalt` subscriptionName+        `Prelude.hashWithSalt` sourceIdentifier++instance+  Prelude.NFData+    AddSourceIdentifierToSubscription+  where+  rnf AddSourceIdentifierToSubscription' {..} =+    Prelude.rnf subscriptionName+      `Prelude.seq` Prelude.rnf sourceIdentifier++instance+  Data.ToHeaders+    AddSourceIdentifierToSubscription+  where+  toHeaders = Prelude.const Prelude.mempty++instance+  Data.ToPath+    AddSourceIdentifierToSubscription+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    AddSourceIdentifierToSubscription+  where+  toQuery AddSourceIdentifierToSubscription' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "AddSourceIdentifierToSubscription" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "SubscriptionName" Data.=: subscriptionName,+        "SourceIdentifier" Data.=: sourceIdentifier+      ]++-- | /See:/ 'newAddSourceIdentifierToSubscriptionResponse' smart constructor.+data AddSourceIdentifierToSubscriptionResponse = AddSourceIdentifierToSubscriptionResponse'+  { eventSubscription :: Prelude.Maybe EventSubscription,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddSourceIdentifierToSubscriptionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventSubscription', 'addSourceIdentifierToSubscriptionResponse_eventSubscription' - Undocumented member.+--+-- 'httpStatus', 'addSourceIdentifierToSubscriptionResponse_httpStatus' - The response's http status code.+newAddSourceIdentifierToSubscriptionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AddSourceIdentifierToSubscriptionResponse+newAddSourceIdentifierToSubscriptionResponse+  pHttpStatus_ =+    AddSourceIdentifierToSubscriptionResponse'+      { eventSubscription =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Undocumented member.+addSourceIdentifierToSubscriptionResponse_eventSubscription :: Lens.Lens' AddSourceIdentifierToSubscriptionResponse (Prelude.Maybe EventSubscription)+addSourceIdentifierToSubscriptionResponse_eventSubscription = Lens.lens (\AddSourceIdentifierToSubscriptionResponse' {eventSubscription} -> eventSubscription) (\s@AddSourceIdentifierToSubscriptionResponse' {} a -> s {eventSubscription = a} :: AddSourceIdentifierToSubscriptionResponse)++-- | The response's http status code.+addSourceIdentifierToSubscriptionResponse_httpStatus :: Lens.Lens' AddSourceIdentifierToSubscriptionResponse Prelude.Int+addSourceIdentifierToSubscriptionResponse_httpStatus = Lens.lens (\AddSourceIdentifierToSubscriptionResponse' {httpStatus} -> httpStatus) (\s@AddSourceIdentifierToSubscriptionResponse' {} a -> s {httpStatus = a} :: AddSourceIdentifierToSubscriptionResponse)++instance+  Prelude.NFData+    AddSourceIdentifierToSubscriptionResponse+  where+  rnf AddSourceIdentifierToSubscriptionResponse' {..} =+    Prelude.rnf eventSubscription+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/AddTagsToResource.hs view
@@ -0,0 +1,146 @@+{-# 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.DocumentDB.AddTagsToResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds metadata tags to an Amazon DocumentDB resource. You can use these+-- tags with cost allocation reporting to track costs that are associated+-- with Amazon DocumentDB resources or in a @Condition@ statement in an+-- Identity and Access Management (IAM) policy for Amazon DocumentDB.+module Amazonka.DocumentDB.AddTagsToResource+  ( -- * Creating a Request+    AddTagsToResource (..),+    newAddTagsToResource,++    -- * Request Lenses+    addTagsToResource_resourceName,+    addTagsToResource_tags,++    -- * Destructuring the Response+    AddTagsToResourceResponse (..),+    newAddTagsToResourceResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to AddTagsToResource.+--+-- /See:/ 'newAddTagsToResource' smart constructor.+data AddTagsToResource = AddTagsToResource'+  { -- | The Amazon DocumentDB resource that the tags are added to. This value is+    -- an Amazon Resource Name .+    resourceName :: Prelude.Text,+    -- | The tags to be assigned to the Amazon DocumentDB resource.+    tags :: [Tag]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddTagsToResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceName', 'addTagsToResource_resourceName' - The Amazon DocumentDB resource that the tags are added to. This value is+-- an Amazon Resource Name .+--+-- 'tags', 'addTagsToResource_tags' - The tags to be assigned to the Amazon DocumentDB resource.+newAddTagsToResource ::+  -- | 'resourceName'+  Prelude.Text ->+  AddTagsToResource+newAddTagsToResource pResourceName_ =+  AddTagsToResource'+    { resourceName = pResourceName_,+      tags = Prelude.mempty+    }++-- | The Amazon DocumentDB resource that the tags are added to. This value is+-- an Amazon Resource Name .+addTagsToResource_resourceName :: Lens.Lens' AddTagsToResource Prelude.Text+addTagsToResource_resourceName = Lens.lens (\AddTagsToResource' {resourceName} -> resourceName) (\s@AddTagsToResource' {} a -> s {resourceName = a} :: AddTagsToResource)++-- | The tags to be assigned to the Amazon DocumentDB resource.+addTagsToResource_tags :: Lens.Lens' AddTagsToResource [Tag]+addTagsToResource_tags = Lens.lens (\AddTagsToResource' {tags} -> tags) (\s@AddTagsToResource' {} a -> s {tags = a} :: AddTagsToResource) Prelude.. Lens.coerced++instance Core.AWSRequest AddTagsToResource where+  type+    AWSResponse AddTagsToResource =+      AddTagsToResourceResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveNull AddTagsToResourceResponse'++instance Prelude.Hashable AddTagsToResource where+  hashWithSalt _salt AddTagsToResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceName+      `Prelude.hashWithSalt` tags++instance Prelude.NFData AddTagsToResource where+  rnf AddTagsToResource' {..} =+    Prelude.rnf resourceName+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders AddTagsToResource where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath AddTagsToResource where+  toPath = Prelude.const "/"++instance Data.ToQuery AddTagsToResource where+  toQuery AddTagsToResource' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("AddTagsToResource" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "ResourceName" Data.=: resourceName,+        "Tags" Data.=: Data.toQueryList "Tag" tags+      ]++-- | /See:/ 'newAddTagsToResourceResponse' smart constructor.+data AddTagsToResourceResponse = AddTagsToResourceResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddTagsToResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newAddTagsToResourceResponse ::+  AddTagsToResourceResponse+newAddTagsToResourceResponse =+  AddTagsToResourceResponse'++instance Prelude.NFData AddTagsToResourceResponse where+  rnf _ = ()
+ gen/Amazonka/DocumentDB/ApplyPendingMaintenanceAction.hs view
@@ -0,0 +1,250 @@+{-# 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.DocumentDB.ApplyPendingMaintenanceAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Applies a pending maintenance action to a resource (for example, to an+-- Amazon DocumentDB instance).+module Amazonka.DocumentDB.ApplyPendingMaintenanceAction+  ( -- * Creating a Request+    ApplyPendingMaintenanceAction (..),+    newApplyPendingMaintenanceAction,++    -- * Request Lenses+    applyPendingMaintenanceAction_resourceIdentifier,+    applyPendingMaintenanceAction_applyAction,+    applyPendingMaintenanceAction_optInType,++    -- * Destructuring the Response+    ApplyPendingMaintenanceActionResponse (..),+    newApplyPendingMaintenanceActionResponse,++    -- * Response Lenses+    applyPendingMaintenanceActionResponse_resourcePendingMaintenanceActions,+    applyPendingMaintenanceActionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to ApplyPendingMaintenanceAction.+--+-- /See:/ 'newApplyPendingMaintenanceAction' smart constructor.+data ApplyPendingMaintenanceAction = ApplyPendingMaintenanceAction'+  { -- | The Amazon Resource Name (ARN) of the resource that the pending+    -- maintenance action applies to.+    resourceIdentifier :: Prelude.Text,+    -- | The pending maintenance action to apply to this resource.+    --+    -- Valid values: @system-update@, @db-upgrade@+    applyAction :: Prelude.Text,+    -- | A value that specifies the type of opt-in request or undoes an opt-in+    -- request. An opt-in request of type @immediate@ can\'t be undone.+    --+    -- Valid values:+    --+    -- -   @immediate@ - Apply the maintenance action immediately.+    --+    -- -   @next-maintenance@ - Apply the maintenance action during the next+    --     maintenance window for the resource.+    --+    -- -   @undo-opt-in@ - Cancel any existing @next-maintenance@ opt-in+    --     requests.+    optInType :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ApplyPendingMaintenanceAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceIdentifier', 'applyPendingMaintenanceAction_resourceIdentifier' - The Amazon Resource Name (ARN) of the resource that the pending+-- maintenance action applies to.+--+-- 'applyAction', 'applyPendingMaintenanceAction_applyAction' - The pending maintenance action to apply to this resource.+--+-- Valid values: @system-update@, @db-upgrade@+--+-- 'optInType', 'applyPendingMaintenanceAction_optInType' - A value that specifies the type of opt-in request or undoes an opt-in+-- request. An opt-in request of type @immediate@ can\'t be undone.+--+-- Valid values:+--+-- -   @immediate@ - Apply the maintenance action immediately.+--+-- -   @next-maintenance@ - Apply the maintenance action during the next+--     maintenance window for the resource.+--+-- -   @undo-opt-in@ - Cancel any existing @next-maintenance@ opt-in+--     requests.+newApplyPendingMaintenanceAction ::+  -- | 'resourceIdentifier'+  Prelude.Text ->+  -- | 'applyAction'+  Prelude.Text ->+  -- | 'optInType'+  Prelude.Text ->+  ApplyPendingMaintenanceAction+newApplyPendingMaintenanceAction+  pResourceIdentifier_+  pApplyAction_+  pOptInType_ =+    ApplyPendingMaintenanceAction'+      { resourceIdentifier =+          pResourceIdentifier_,+        applyAction = pApplyAction_,+        optInType = pOptInType_+      }++-- | The Amazon Resource Name (ARN) of the resource that the pending+-- maintenance action applies to.+applyPendingMaintenanceAction_resourceIdentifier :: Lens.Lens' ApplyPendingMaintenanceAction Prelude.Text+applyPendingMaintenanceAction_resourceIdentifier = Lens.lens (\ApplyPendingMaintenanceAction' {resourceIdentifier} -> resourceIdentifier) (\s@ApplyPendingMaintenanceAction' {} a -> s {resourceIdentifier = a} :: ApplyPendingMaintenanceAction)++-- | The pending maintenance action to apply to this resource.+--+-- Valid values: @system-update@, @db-upgrade@+applyPendingMaintenanceAction_applyAction :: Lens.Lens' ApplyPendingMaintenanceAction Prelude.Text+applyPendingMaintenanceAction_applyAction = Lens.lens (\ApplyPendingMaintenanceAction' {applyAction} -> applyAction) (\s@ApplyPendingMaintenanceAction' {} a -> s {applyAction = a} :: ApplyPendingMaintenanceAction)++-- | A value that specifies the type of opt-in request or undoes an opt-in+-- request. An opt-in request of type @immediate@ can\'t be undone.+--+-- Valid values:+--+-- -   @immediate@ - Apply the maintenance action immediately.+--+-- -   @next-maintenance@ - Apply the maintenance action during the next+--     maintenance window for the resource.+--+-- -   @undo-opt-in@ - Cancel any existing @next-maintenance@ opt-in+--     requests.+applyPendingMaintenanceAction_optInType :: Lens.Lens' ApplyPendingMaintenanceAction Prelude.Text+applyPendingMaintenanceAction_optInType = Lens.lens (\ApplyPendingMaintenanceAction' {optInType} -> optInType) (\s@ApplyPendingMaintenanceAction' {} a -> s {optInType = a} :: ApplyPendingMaintenanceAction)++instance+  Core.AWSRequest+    ApplyPendingMaintenanceAction+  where+  type+    AWSResponse ApplyPendingMaintenanceAction =+      ApplyPendingMaintenanceActionResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "ApplyPendingMaintenanceActionResult"+      ( \s h x ->+          ApplyPendingMaintenanceActionResponse'+            Prelude.<$> (x Data..@? "ResourcePendingMaintenanceActions")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ApplyPendingMaintenanceAction+  where+  hashWithSalt _salt ApplyPendingMaintenanceAction' {..} =+    _salt+      `Prelude.hashWithSalt` resourceIdentifier+      `Prelude.hashWithSalt` applyAction+      `Prelude.hashWithSalt` optInType++instance Prelude.NFData ApplyPendingMaintenanceAction where+  rnf ApplyPendingMaintenanceAction' {..} =+    Prelude.rnf resourceIdentifier+      `Prelude.seq` Prelude.rnf applyAction+      `Prelude.seq` Prelude.rnf optInType++instance Data.ToHeaders ApplyPendingMaintenanceAction where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ApplyPendingMaintenanceAction where+  toPath = Prelude.const "/"++instance Data.ToQuery ApplyPendingMaintenanceAction where+  toQuery ApplyPendingMaintenanceAction' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "ApplyPendingMaintenanceAction" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "ResourceIdentifier" Data.=: resourceIdentifier,+        "ApplyAction" Data.=: applyAction,+        "OptInType" Data.=: optInType+      ]++-- | /See:/ 'newApplyPendingMaintenanceActionResponse' smart constructor.+data ApplyPendingMaintenanceActionResponse = ApplyPendingMaintenanceActionResponse'+  { resourcePendingMaintenanceActions :: Prelude.Maybe ResourcePendingMaintenanceActions,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ApplyPendingMaintenanceActionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourcePendingMaintenanceActions', 'applyPendingMaintenanceActionResponse_resourcePendingMaintenanceActions' - Undocumented member.+--+-- 'httpStatus', 'applyPendingMaintenanceActionResponse_httpStatus' - The response's http status code.+newApplyPendingMaintenanceActionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ApplyPendingMaintenanceActionResponse+newApplyPendingMaintenanceActionResponse pHttpStatus_ =+  ApplyPendingMaintenanceActionResponse'+    { resourcePendingMaintenanceActions =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+applyPendingMaintenanceActionResponse_resourcePendingMaintenanceActions :: Lens.Lens' ApplyPendingMaintenanceActionResponse (Prelude.Maybe ResourcePendingMaintenanceActions)+applyPendingMaintenanceActionResponse_resourcePendingMaintenanceActions = Lens.lens (\ApplyPendingMaintenanceActionResponse' {resourcePendingMaintenanceActions} -> resourcePendingMaintenanceActions) (\s@ApplyPendingMaintenanceActionResponse' {} a -> s {resourcePendingMaintenanceActions = a} :: ApplyPendingMaintenanceActionResponse)++-- | The response's http status code.+applyPendingMaintenanceActionResponse_httpStatus :: Lens.Lens' ApplyPendingMaintenanceActionResponse Prelude.Int+applyPendingMaintenanceActionResponse_httpStatus = Lens.lens (\ApplyPendingMaintenanceActionResponse' {httpStatus} -> httpStatus) (\s@ApplyPendingMaintenanceActionResponse' {} a -> s {httpStatus = a} :: ApplyPendingMaintenanceActionResponse)++instance+  Prelude.NFData+    ApplyPendingMaintenanceActionResponse+  where+  rnf ApplyPendingMaintenanceActionResponse' {..} =+    Prelude.rnf resourcePendingMaintenanceActions+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/CopyDBClusterParameterGroup.hs view
@@ -0,0 +1,303 @@+{-# 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.DocumentDB.CopyDBClusterParameterGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Copies the specified cluster parameter group.+module Amazonka.DocumentDB.CopyDBClusterParameterGroup+  ( -- * Creating a Request+    CopyDBClusterParameterGroup (..),+    newCopyDBClusterParameterGroup,++    -- * Request Lenses+    copyDBClusterParameterGroup_tags,+    copyDBClusterParameterGroup_sourceDBClusterParameterGroupIdentifier,+    copyDBClusterParameterGroup_targetDBClusterParameterGroupIdentifier,+    copyDBClusterParameterGroup_targetDBClusterParameterGroupDescription,++    -- * Destructuring the Response+    CopyDBClusterParameterGroupResponse (..),+    newCopyDBClusterParameterGroupResponse,++    -- * Response Lenses+    copyDBClusterParameterGroupResponse_dbClusterParameterGroup,+    copyDBClusterParameterGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to CopyDBClusterParameterGroup.+--+-- /See:/ 'newCopyDBClusterParameterGroup' smart constructor.+data CopyDBClusterParameterGroup = CopyDBClusterParameterGroup'+  { -- | The tags that are to be assigned to the parameter group.+    tags :: Prelude.Maybe [Tag],+    -- | The identifier or Amazon Resource Name (ARN) for the source cluster+    -- parameter group.+    --+    -- Constraints:+    --+    -- -   Must specify a valid cluster parameter group.+    --+    -- -   If the source cluster parameter group is in the same Amazon Web+    --     Services Region as the copy, specify a valid parameter group+    --     identifier; for example, @my-db-cluster-param-group@, or a valid+    --     ARN.+    --+    -- -   If the source parameter group is in a different Amazon Web Services+    --     Region than the copy, specify a valid cluster parameter group ARN;+    --     for example,+    --     @arn:aws:rds:us-east-1:123456789012:sample-cluster:sample-parameter-group@.+    sourceDBClusterParameterGroupIdentifier :: Prelude.Text,+    -- | The identifier for the copied cluster parameter group.+    --+    -- Constraints:+    --+    -- -   Cannot be null, empty, or blank.+    --+    -- -   Must contain from 1 to 255 letters, numbers, or hyphens.+    --+    -- -   The first character must be a letter.+    --+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.+    --+    -- Example: @my-cluster-param-group1@+    targetDBClusterParameterGroupIdentifier :: Prelude.Text,+    -- | A description for the copied cluster parameter group.+    targetDBClusterParameterGroupDescription :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CopyDBClusterParameterGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'copyDBClusterParameterGroup_tags' - The tags that are to be assigned to the parameter group.+--+-- 'sourceDBClusterParameterGroupIdentifier', 'copyDBClusterParameterGroup_sourceDBClusterParameterGroupIdentifier' - The identifier or Amazon Resource Name (ARN) for the source cluster+-- parameter group.+--+-- Constraints:+--+-- -   Must specify a valid cluster parameter group.+--+-- -   If the source cluster parameter group is in the same Amazon Web+--     Services Region as the copy, specify a valid parameter group+--     identifier; for example, @my-db-cluster-param-group@, or a valid+--     ARN.+--+-- -   If the source parameter group is in a different Amazon Web Services+--     Region than the copy, specify a valid cluster parameter group ARN;+--     for example,+--     @arn:aws:rds:us-east-1:123456789012:sample-cluster:sample-parameter-group@.+--+-- 'targetDBClusterParameterGroupIdentifier', 'copyDBClusterParameterGroup_targetDBClusterParameterGroupIdentifier' - The identifier for the copied cluster parameter group.+--+-- Constraints:+--+-- -   Cannot be null, empty, or blank.+--+-- -   Must contain from 1 to 255 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @my-cluster-param-group1@+--+-- 'targetDBClusterParameterGroupDescription', 'copyDBClusterParameterGroup_targetDBClusterParameterGroupDescription' - A description for the copied cluster parameter group.+newCopyDBClusterParameterGroup ::+  -- | 'sourceDBClusterParameterGroupIdentifier'+  Prelude.Text ->+  -- | 'targetDBClusterParameterGroupIdentifier'+  Prelude.Text ->+  -- | 'targetDBClusterParameterGroupDescription'+  Prelude.Text ->+  CopyDBClusterParameterGroup+newCopyDBClusterParameterGroup+  pSourceDBClusterParameterGroupIdentifier_+  pTargetDBClusterParameterGroupIdentifier_+  pTargetDBClusterParameterGroupDescription_ =+    CopyDBClusterParameterGroup'+      { tags =+          Prelude.Nothing,+        sourceDBClusterParameterGroupIdentifier =+          pSourceDBClusterParameterGroupIdentifier_,+        targetDBClusterParameterGroupIdentifier =+          pTargetDBClusterParameterGroupIdentifier_,+        targetDBClusterParameterGroupDescription =+          pTargetDBClusterParameterGroupDescription_+      }++-- | The tags that are to be assigned to the parameter group.+copyDBClusterParameterGroup_tags :: Lens.Lens' CopyDBClusterParameterGroup (Prelude.Maybe [Tag])+copyDBClusterParameterGroup_tags = Lens.lens (\CopyDBClusterParameterGroup' {tags} -> tags) (\s@CopyDBClusterParameterGroup' {} a -> s {tags = a} :: CopyDBClusterParameterGroup) Prelude.. Lens.mapping Lens.coerced++-- | The identifier or Amazon Resource Name (ARN) for the source cluster+-- parameter group.+--+-- Constraints:+--+-- -   Must specify a valid cluster parameter group.+--+-- -   If the source cluster parameter group is in the same Amazon Web+--     Services Region as the copy, specify a valid parameter group+--     identifier; for example, @my-db-cluster-param-group@, or a valid+--     ARN.+--+-- -   If the source parameter group is in a different Amazon Web Services+--     Region than the copy, specify a valid cluster parameter group ARN;+--     for example,+--     @arn:aws:rds:us-east-1:123456789012:sample-cluster:sample-parameter-group@.+copyDBClusterParameterGroup_sourceDBClusterParameterGroupIdentifier :: Lens.Lens' CopyDBClusterParameterGroup Prelude.Text+copyDBClusterParameterGroup_sourceDBClusterParameterGroupIdentifier = Lens.lens (\CopyDBClusterParameterGroup' {sourceDBClusterParameterGroupIdentifier} -> sourceDBClusterParameterGroupIdentifier) (\s@CopyDBClusterParameterGroup' {} a -> s {sourceDBClusterParameterGroupIdentifier = a} :: CopyDBClusterParameterGroup)++-- | The identifier for the copied cluster parameter group.+--+-- Constraints:+--+-- -   Cannot be null, empty, or blank.+--+-- -   Must contain from 1 to 255 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @my-cluster-param-group1@+copyDBClusterParameterGroup_targetDBClusterParameterGroupIdentifier :: Lens.Lens' CopyDBClusterParameterGroup Prelude.Text+copyDBClusterParameterGroup_targetDBClusterParameterGroupIdentifier = Lens.lens (\CopyDBClusterParameterGroup' {targetDBClusterParameterGroupIdentifier} -> targetDBClusterParameterGroupIdentifier) (\s@CopyDBClusterParameterGroup' {} a -> s {targetDBClusterParameterGroupIdentifier = a} :: CopyDBClusterParameterGroup)++-- | A description for the copied cluster parameter group.+copyDBClusterParameterGroup_targetDBClusterParameterGroupDescription :: Lens.Lens' CopyDBClusterParameterGroup Prelude.Text+copyDBClusterParameterGroup_targetDBClusterParameterGroupDescription = Lens.lens (\CopyDBClusterParameterGroup' {targetDBClusterParameterGroupDescription} -> targetDBClusterParameterGroupDescription) (\s@CopyDBClusterParameterGroup' {} a -> s {targetDBClusterParameterGroupDescription = a} :: CopyDBClusterParameterGroup)++instance Core.AWSRequest CopyDBClusterParameterGroup where+  type+    AWSResponse CopyDBClusterParameterGroup =+      CopyDBClusterParameterGroupResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "CopyDBClusterParameterGroupResult"+      ( \s h x ->+          CopyDBClusterParameterGroupResponse'+            Prelude.<$> (x Data..@? "DBClusterParameterGroup")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CopyDBClusterParameterGroup where+  hashWithSalt _salt CopyDBClusterParameterGroup' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` sourceDBClusterParameterGroupIdentifier+      `Prelude.hashWithSalt` targetDBClusterParameterGroupIdentifier+      `Prelude.hashWithSalt` targetDBClusterParameterGroupDescription++instance Prelude.NFData CopyDBClusterParameterGroup where+  rnf CopyDBClusterParameterGroup' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf sourceDBClusterParameterGroupIdentifier+      `Prelude.seq` Prelude.rnf targetDBClusterParameterGroupIdentifier+      `Prelude.seq` Prelude.rnf targetDBClusterParameterGroupDescription++instance Data.ToHeaders CopyDBClusterParameterGroup where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath CopyDBClusterParameterGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery CopyDBClusterParameterGroup where+  toQuery CopyDBClusterParameterGroup' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "CopyDBClusterParameterGroup" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Tags"+          Data.=: Data.toQuery+            (Data.toQueryList "Tag" Prelude.<$> tags),+        "SourceDBClusterParameterGroupIdentifier"+          Data.=: sourceDBClusterParameterGroupIdentifier,+        "TargetDBClusterParameterGroupIdentifier"+          Data.=: targetDBClusterParameterGroupIdentifier,+        "TargetDBClusterParameterGroupDescription"+          Data.=: targetDBClusterParameterGroupDescription+      ]++-- | /See:/ 'newCopyDBClusterParameterGroupResponse' smart constructor.+data CopyDBClusterParameterGroupResponse = CopyDBClusterParameterGroupResponse'+  { dbClusterParameterGroup :: Prelude.Maybe DBClusterParameterGroup,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CopyDBClusterParameterGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterParameterGroup', 'copyDBClusterParameterGroupResponse_dbClusterParameterGroup' - Undocumented member.+--+-- 'httpStatus', 'copyDBClusterParameterGroupResponse_httpStatus' - The response's http status code.+newCopyDBClusterParameterGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CopyDBClusterParameterGroupResponse+newCopyDBClusterParameterGroupResponse pHttpStatus_ =+  CopyDBClusterParameterGroupResponse'+    { dbClusterParameterGroup =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+copyDBClusterParameterGroupResponse_dbClusterParameterGroup :: Lens.Lens' CopyDBClusterParameterGroupResponse (Prelude.Maybe DBClusterParameterGroup)+copyDBClusterParameterGroupResponse_dbClusterParameterGroup = Lens.lens (\CopyDBClusterParameterGroupResponse' {dbClusterParameterGroup} -> dbClusterParameterGroup) (\s@CopyDBClusterParameterGroupResponse' {} a -> s {dbClusterParameterGroup = a} :: CopyDBClusterParameterGroupResponse)++-- | The response's http status code.+copyDBClusterParameterGroupResponse_httpStatus :: Lens.Lens' CopyDBClusterParameterGroupResponse Prelude.Int+copyDBClusterParameterGroupResponse_httpStatus = Lens.lens (\CopyDBClusterParameterGroupResponse' {httpStatus} -> httpStatus) (\s@CopyDBClusterParameterGroupResponse' {} a -> s {httpStatus = a} :: CopyDBClusterParameterGroupResponse)++instance+  Prelude.NFData+    CopyDBClusterParameterGroupResponse+  where+  rnf CopyDBClusterParameterGroupResponse' {..} =+    Prelude.rnf dbClusterParameterGroup+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/CopyDBClusterSnapshot.hs view
@@ -0,0 +1,484 @@+{-# 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.DocumentDB.CopyDBClusterSnapshot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Copies a snapshot of a cluster.+--+-- To copy a cluster snapshot from a shared manual cluster snapshot,+-- @SourceDBClusterSnapshotIdentifier@ must be the Amazon Resource Name+-- (ARN) of the shared cluster snapshot. You can only copy a shared DB+-- cluster snapshot, whether encrypted or not, in the same Amazon Web+-- Services Region.+--+-- To cancel the copy operation after it is in progress, delete the target+-- cluster snapshot identified by @TargetDBClusterSnapshotIdentifier@ while+-- that cluster snapshot is in the /copying/ status.+module Amazonka.DocumentDB.CopyDBClusterSnapshot+  ( -- * Creating a Request+    CopyDBClusterSnapshot (..),+    newCopyDBClusterSnapshot,++    -- * Request Lenses+    copyDBClusterSnapshot_copyTags,+    copyDBClusterSnapshot_kmsKeyId,+    copyDBClusterSnapshot_preSignedUrl,+    copyDBClusterSnapshot_tags,+    copyDBClusterSnapshot_sourceDBClusterSnapshotIdentifier,+    copyDBClusterSnapshot_targetDBClusterSnapshotIdentifier,++    -- * Destructuring the Response+    CopyDBClusterSnapshotResponse (..),+    newCopyDBClusterSnapshotResponse,++    -- * Response Lenses+    copyDBClusterSnapshotResponse_dbClusterSnapshot,+    copyDBClusterSnapshotResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to CopyDBClusterSnapshot.+--+-- /See:/ 'newCopyDBClusterSnapshot' smart constructor.+data CopyDBClusterSnapshot = CopyDBClusterSnapshot'+  { -- | Set to @true@ to copy all tags from the source cluster snapshot to the+    -- target cluster snapshot, and otherwise @false@. The default is @false@.+    copyTags :: Prelude.Maybe Prelude.Bool,+    -- | The KMS key ID for an encrypted cluster snapshot. The KMS key ID is the+    -- Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for+    -- the KMS encryption key.+    --+    -- If you copy an encrypted cluster snapshot from your Amazon Web Services+    -- account, you can specify a value for @KmsKeyId@ to encrypt the copy with+    -- a new KMS encryption key. If you don\'t specify a value for @KmsKeyId@,+    -- then the copy of the cluster snapshot is encrypted with the same KMS key+    -- as the source cluster snapshot.+    --+    -- If you copy an encrypted cluster snapshot that is shared from another+    -- Amazon Web Services account, then you must specify a value for+    -- @KmsKeyId@.+    --+    -- To copy an encrypted cluster snapshot to another Amazon Web Services+    -- Region, set @KmsKeyId@ to the KMS key ID that you want to use to encrypt+    -- the copy of the cluster snapshot in the destination Region. KMS+    -- encryption keys are specific to the Amazon Web Services Region that they+    -- are created in, and you can\'t use encryption keys from one Amazon Web+    -- Services Region in another Amazon Web Services Region.+    --+    -- If you copy an unencrypted cluster snapshot and specify a value for the+    -- @KmsKeyId@ parameter, an error is returned.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | The URL that contains a Signature Version 4 signed request for+    -- the@CopyDBClusterSnapshot@ API action in the Amazon Web Services Region+    -- that contains the source cluster snapshot to copy. You must use the+    -- @PreSignedUrl@ parameter when copying a cluster snapshot from another+    -- Amazon Web Services Region.+    --+    -- If you are using an Amazon Web Services SDK tool or the CLI, you can+    -- specify @SourceRegion@ (or @--source-region@ for the CLI) instead of+    -- specifying @PreSignedUrl@ manually. Specifying @SourceRegion@+    -- autogenerates a pre-signed URL that is a valid request for the operation+    -- that can be executed in the source Amazon Web Services Region.+    --+    -- The presigned URL must be a valid request for the+    -- @CopyDBClusterSnapshot@ API action that can be executed in the source+    -- Amazon Web Services Region that contains the cluster snapshot to be+    -- copied. The presigned URL request must contain the following parameter+    -- values:+    --+    -- -   @SourceRegion@ - The ID of the region that contains the snapshot to+    --     be copied.+    --+    -- -   @SourceDBClusterSnapshotIdentifier@ - The identifier for the the+    --     encrypted cluster snapshot to be copied. This identifier must be in+    --     the Amazon Resource Name (ARN) format for the source Amazon Web+    --     Services Region. For example, if you are copying an encrypted+    --     cluster snapshot from the us-east-1 Amazon Web Services Region, then+    --     your @SourceDBClusterSnapshotIdentifier@ looks something like the+    --     following:+    --     @arn:aws:rds:us-east-1:12345678012:sample-cluster:sample-cluster-snapshot@.+    --+    -- -   @TargetDBClusterSnapshotIdentifier@ - The identifier for the new+    --     cluster snapshot to be created. This parameter isn\'t case+    --     sensitive.+    preSignedUrl :: Prelude.Maybe Prelude.Text,+    -- | The tags to be assigned to the cluster snapshot.+    tags :: Prelude.Maybe [Tag],+    -- | The identifier of the cluster snapshot to copy. This parameter is not+    -- case sensitive.+    --+    -- Constraints:+    --+    -- -   Must specify a valid system snapshot in the /available/ state.+    --+    -- -   If the source snapshot is in the same Amazon Web Services Region as+    --     the copy, specify a valid snapshot identifier.+    --+    -- -   If the source snapshot is in a different Amazon Web Services Region+    --     than the copy, specify a valid cluster snapshot ARN.+    --+    -- Example: @my-cluster-snapshot1@+    sourceDBClusterSnapshotIdentifier :: Prelude.Text,+    -- | The identifier of the new cluster snapshot to create from the source+    -- cluster snapshot. This parameter is not case sensitive.+    --+    -- Constraints:+    --+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens.+    --+    -- -   The first character must be a letter.+    --+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.+    --+    -- Example: @my-cluster-snapshot2@+    targetDBClusterSnapshotIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CopyDBClusterSnapshot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'copyTags', 'copyDBClusterSnapshot_copyTags' - Set to @true@ to copy all tags from the source cluster snapshot to the+-- target cluster snapshot, and otherwise @false@. The default is @false@.+--+-- 'kmsKeyId', 'copyDBClusterSnapshot_kmsKeyId' - The KMS key ID for an encrypted cluster snapshot. The KMS key ID is the+-- Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for+-- the KMS encryption key.+--+-- If you copy an encrypted cluster snapshot from your Amazon Web Services+-- account, you can specify a value for @KmsKeyId@ to encrypt the copy with+-- a new KMS encryption key. If you don\'t specify a value for @KmsKeyId@,+-- then the copy of the cluster snapshot is encrypted with the same KMS key+-- as the source cluster snapshot.+--+-- If you copy an encrypted cluster snapshot that is shared from another+-- Amazon Web Services account, then you must specify a value for+-- @KmsKeyId@.+--+-- To copy an encrypted cluster snapshot to another Amazon Web Services+-- Region, set @KmsKeyId@ to the KMS key ID that you want to use to encrypt+-- the copy of the cluster snapshot in the destination Region. KMS+-- encryption keys are specific to the Amazon Web Services Region that they+-- are created in, and you can\'t use encryption keys from one Amazon Web+-- Services Region in another Amazon Web Services Region.+--+-- If you copy an unencrypted cluster snapshot and specify a value for the+-- @KmsKeyId@ parameter, an error is returned.+--+-- 'preSignedUrl', 'copyDBClusterSnapshot_preSignedUrl' - The URL that contains a Signature Version 4 signed request for+-- the@CopyDBClusterSnapshot@ API action in the Amazon Web Services Region+-- that contains the source cluster snapshot to copy. You must use the+-- @PreSignedUrl@ parameter when copying a cluster snapshot from another+-- Amazon Web Services Region.+--+-- If you are using an Amazon Web Services SDK tool or the CLI, you can+-- specify @SourceRegion@ (or @--source-region@ for the CLI) instead of+-- specifying @PreSignedUrl@ manually. Specifying @SourceRegion@+-- autogenerates a pre-signed URL that is a valid request for the operation+-- that can be executed in the source Amazon Web Services Region.+--+-- The presigned URL must be a valid request for the+-- @CopyDBClusterSnapshot@ API action that can be executed in the source+-- Amazon Web Services Region that contains the cluster snapshot to be+-- copied. The presigned URL request must contain the following parameter+-- values:+--+-- -   @SourceRegion@ - The ID of the region that contains the snapshot to+--     be copied.+--+-- -   @SourceDBClusterSnapshotIdentifier@ - The identifier for the the+--     encrypted cluster snapshot to be copied. This identifier must be in+--     the Amazon Resource Name (ARN) format for the source Amazon Web+--     Services Region. For example, if you are copying an encrypted+--     cluster snapshot from the us-east-1 Amazon Web Services Region, then+--     your @SourceDBClusterSnapshotIdentifier@ looks something like the+--     following:+--     @arn:aws:rds:us-east-1:12345678012:sample-cluster:sample-cluster-snapshot@.+--+-- -   @TargetDBClusterSnapshotIdentifier@ - The identifier for the new+--     cluster snapshot to be created. This parameter isn\'t case+--     sensitive.+--+-- 'tags', 'copyDBClusterSnapshot_tags' - The tags to be assigned to the cluster snapshot.+--+-- 'sourceDBClusterSnapshotIdentifier', 'copyDBClusterSnapshot_sourceDBClusterSnapshotIdentifier' - The identifier of the cluster snapshot to copy. This parameter is not+-- case sensitive.+--+-- Constraints:+--+-- -   Must specify a valid system snapshot in the /available/ state.+--+-- -   If the source snapshot is in the same Amazon Web Services Region as+--     the copy, specify a valid snapshot identifier.+--+-- -   If the source snapshot is in a different Amazon Web Services Region+--     than the copy, specify a valid cluster snapshot ARN.+--+-- Example: @my-cluster-snapshot1@+--+-- 'targetDBClusterSnapshotIdentifier', 'copyDBClusterSnapshot_targetDBClusterSnapshotIdentifier' - The identifier of the new cluster snapshot to create from the source+-- cluster snapshot. This parameter is not case sensitive.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @my-cluster-snapshot2@+newCopyDBClusterSnapshot ::+  -- | 'sourceDBClusterSnapshotIdentifier'+  Prelude.Text ->+  -- | 'targetDBClusterSnapshotIdentifier'+  Prelude.Text ->+  CopyDBClusterSnapshot+newCopyDBClusterSnapshot+  pSourceDBClusterSnapshotIdentifier_+  pTargetDBClusterSnapshotIdentifier_ =+    CopyDBClusterSnapshot'+      { copyTags = Prelude.Nothing,+        kmsKeyId = Prelude.Nothing,+        preSignedUrl = Prelude.Nothing,+        tags = Prelude.Nothing,+        sourceDBClusterSnapshotIdentifier =+          pSourceDBClusterSnapshotIdentifier_,+        targetDBClusterSnapshotIdentifier =+          pTargetDBClusterSnapshotIdentifier_+      }++-- | Set to @true@ to copy all tags from the source cluster snapshot to the+-- target cluster snapshot, and otherwise @false@. The default is @false@.+copyDBClusterSnapshot_copyTags :: Lens.Lens' CopyDBClusterSnapshot (Prelude.Maybe Prelude.Bool)+copyDBClusterSnapshot_copyTags = Lens.lens (\CopyDBClusterSnapshot' {copyTags} -> copyTags) (\s@CopyDBClusterSnapshot' {} a -> s {copyTags = a} :: CopyDBClusterSnapshot)++-- | The KMS key ID for an encrypted cluster snapshot. The KMS key ID is the+-- Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for+-- the KMS encryption key.+--+-- If you copy an encrypted cluster snapshot from your Amazon Web Services+-- account, you can specify a value for @KmsKeyId@ to encrypt the copy with+-- a new KMS encryption key. If you don\'t specify a value for @KmsKeyId@,+-- then the copy of the cluster snapshot is encrypted with the same KMS key+-- as the source cluster snapshot.+--+-- If you copy an encrypted cluster snapshot that is shared from another+-- Amazon Web Services account, then you must specify a value for+-- @KmsKeyId@.+--+-- To copy an encrypted cluster snapshot to another Amazon Web Services+-- Region, set @KmsKeyId@ to the KMS key ID that you want to use to encrypt+-- the copy of the cluster snapshot in the destination Region. KMS+-- encryption keys are specific to the Amazon Web Services Region that they+-- are created in, and you can\'t use encryption keys from one Amazon Web+-- Services Region in another Amazon Web Services Region.+--+-- If you copy an unencrypted cluster snapshot and specify a value for the+-- @KmsKeyId@ parameter, an error is returned.+copyDBClusterSnapshot_kmsKeyId :: Lens.Lens' CopyDBClusterSnapshot (Prelude.Maybe Prelude.Text)+copyDBClusterSnapshot_kmsKeyId = Lens.lens (\CopyDBClusterSnapshot' {kmsKeyId} -> kmsKeyId) (\s@CopyDBClusterSnapshot' {} a -> s {kmsKeyId = a} :: CopyDBClusterSnapshot)++-- | The URL that contains a Signature Version 4 signed request for+-- the@CopyDBClusterSnapshot@ API action in the Amazon Web Services Region+-- that contains the source cluster snapshot to copy. You must use the+-- @PreSignedUrl@ parameter when copying a cluster snapshot from another+-- Amazon Web Services Region.+--+-- If you are using an Amazon Web Services SDK tool or the CLI, you can+-- specify @SourceRegion@ (or @--source-region@ for the CLI) instead of+-- specifying @PreSignedUrl@ manually. Specifying @SourceRegion@+-- autogenerates a pre-signed URL that is a valid request for the operation+-- that can be executed in the source Amazon Web Services Region.+--+-- The presigned URL must be a valid request for the+-- @CopyDBClusterSnapshot@ API action that can be executed in the source+-- Amazon Web Services Region that contains the cluster snapshot to be+-- copied. The presigned URL request must contain the following parameter+-- values:+--+-- -   @SourceRegion@ - The ID of the region that contains the snapshot to+--     be copied.+--+-- -   @SourceDBClusterSnapshotIdentifier@ - The identifier for the the+--     encrypted cluster snapshot to be copied. This identifier must be in+--     the Amazon Resource Name (ARN) format for the source Amazon Web+--     Services Region. For example, if you are copying an encrypted+--     cluster snapshot from the us-east-1 Amazon Web Services Region, then+--     your @SourceDBClusterSnapshotIdentifier@ looks something like the+--     following:+--     @arn:aws:rds:us-east-1:12345678012:sample-cluster:sample-cluster-snapshot@.+--+-- -   @TargetDBClusterSnapshotIdentifier@ - The identifier for the new+--     cluster snapshot to be created. This parameter isn\'t case+--     sensitive.+copyDBClusterSnapshot_preSignedUrl :: Lens.Lens' CopyDBClusterSnapshot (Prelude.Maybe Prelude.Text)+copyDBClusterSnapshot_preSignedUrl = Lens.lens (\CopyDBClusterSnapshot' {preSignedUrl} -> preSignedUrl) (\s@CopyDBClusterSnapshot' {} a -> s {preSignedUrl = a} :: CopyDBClusterSnapshot)++-- | The tags to be assigned to the cluster snapshot.+copyDBClusterSnapshot_tags :: Lens.Lens' CopyDBClusterSnapshot (Prelude.Maybe [Tag])+copyDBClusterSnapshot_tags = Lens.lens (\CopyDBClusterSnapshot' {tags} -> tags) (\s@CopyDBClusterSnapshot' {} a -> s {tags = a} :: CopyDBClusterSnapshot) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the cluster snapshot to copy. This parameter is not+-- case sensitive.+--+-- Constraints:+--+-- -   Must specify a valid system snapshot in the /available/ state.+--+-- -   If the source snapshot is in the same Amazon Web Services Region as+--     the copy, specify a valid snapshot identifier.+--+-- -   If the source snapshot is in a different Amazon Web Services Region+--     than the copy, specify a valid cluster snapshot ARN.+--+-- Example: @my-cluster-snapshot1@+copyDBClusterSnapshot_sourceDBClusterSnapshotIdentifier :: Lens.Lens' CopyDBClusterSnapshot Prelude.Text+copyDBClusterSnapshot_sourceDBClusterSnapshotIdentifier = Lens.lens (\CopyDBClusterSnapshot' {sourceDBClusterSnapshotIdentifier} -> sourceDBClusterSnapshotIdentifier) (\s@CopyDBClusterSnapshot' {} a -> s {sourceDBClusterSnapshotIdentifier = a} :: CopyDBClusterSnapshot)++-- | The identifier of the new cluster snapshot to create from the source+-- cluster snapshot. This parameter is not case sensitive.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @my-cluster-snapshot2@+copyDBClusterSnapshot_targetDBClusterSnapshotIdentifier :: Lens.Lens' CopyDBClusterSnapshot Prelude.Text+copyDBClusterSnapshot_targetDBClusterSnapshotIdentifier = Lens.lens (\CopyDBClusterSnapshot' {targetDBClusterSnapshotIdentifier} -> targetDBClusterSnapshotIdentifier) (\s@CopyDBClusterSnapshot' {} a -> s {targetDBClusterSnapshotIdentifier = a} :: CopyDBClusterSnapshot)++instance Core.AWSRequest CopyDBClusterSnapshot where+  type+    AWSResponse CopyDBClusterSnapshot =+      CopyDBClusterSnapshotResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "CopyDBClusterSnapshotResult"+      ( \s h x ->+          CopyDBClusterSnapshotResponse'+            Prelude.<$> (x Data..@? "DBClusterSnapshot")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CopyDBClusterSnapshot where+  hashWithSalt _salt CopyDBClusterSnapshot' {..} =+    _salt+      `Prelude.hashWithSalt` copyTags+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` preSignedUrl+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` sourceDBClusterSnapshotIdentifier+      `Prelude.hashWithSalt` targetDBClusterSnapshotIdentifier++instance Prelude.NFData CopyDBClusterSnapshot where+  rnf CopyDBClusterSnapshot' {..} =+    Prelude.rnf copyTags+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf preSignedUrl+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf sourceDBClusterSnapshotIdentifier+      `Prelude.seq` Prelude.rnf targetDBClusterSnapshotIdentifier++instance Data.ToHeaders CopyDBClusterSnapshot where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath CopyDBClusterSnapshot where+  toPath = Prelude.const "/"++instance Data.ToQuery CopyDBClusterSnapshot where+  toQuery CopyDBClusterSnapshot' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("CopyDBClusterSnapshot" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "CopyTags" Data.=: copyTags,+        "KmsKeyId" Data.=: kmsKeyId,+        "PreSignedUrl" Data.=: preSignedUrl,+        "Tags"+          Data.=: Data.toQuery+            (Data.toQueryList "Tag" Prelude.<$> tags),+        "SourceDBClusterSnapshotIdentifier"+          Data.=: sourceDBClusterSnapshotIdentifier,+        "TargetDBClusterSnapshotIdentifier"+          Data.=: targetDBClusterSnapshotIdentifier+      ]++-- | /See:/ 'newCopyDBClusterSnapshotResponse' smart constructor.+data CopyDBClusterSnapshotResponse = CopyDBClusterSnapshotResponse'+  { dbClusterSnapshot :: Prelude.Maybe DBClusterSnapshot,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CopyDBClusterSnapshotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterSnapshot', 'copyDBClusterSnapshotResponse_dbClusterSnapshot' - Undocumented member.+--+-- 'httpStatus', 'copyDBClusterSnapshotResponse_httpStatus' - The response's http status code.+newCopyDBClusterSnapshotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CopyDBClusterSnapshotResponse+newCopyDBClusterSnapshotResponse pHttpStatus_ =+  CopyDBClusterSnapshotResponse'+    { dbClusterSnapshot =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+copyDBClusterSnapshotResponse_dbClusterSnapshot :: Lens.Lens' CopyDBClusterSnapshotResponse (Prelude.Maybe DBClusterSnapshot)+copyDBClusterSnapshotResponse_dbClusterSnapshot = Lens.lens (\CopyDBClusterSnapshotResponse' {dbClusterSnapshot} -> dbClusterSnapshot) (\s@CopyDBClusterSnapshotResponse' {} a -> s {dbClusterSnapshot = a} :: CopyDBClusterSnapshotResponse)++-- | The response's http status code.+copyDBClusterSnapshotResponse_httpStatus :: Lens.Lens' CopyDBClusterSnapshotResponse Prelude.Int+copyDBClusterSnapshotResponse_httpStatus = Lens.lens (\CopyDBClusterSnapshotResponse' {httpStatus} -> httpStatus) (\s@CopyDBClusterSnapshotResponse' {} a -> s {httpStatus = a} :: CopyDBClusterSnapshotResponse)++instance Prelude.NFData CopyDBClusterSnapshotResponse where+  rnf CopyDBClusterSnapshotResponse' {..} =+    Prelude.rnf dbClusterSnapshot+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/CreateDBCluster.hs view
@@ -0,0 +1,701 @@+{-# 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.DocumentDB.CreateDBCluster+-- 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 Amazon DocumentDB cluster.+module Amazonka.DocumentDB.CreateDBCluster+  ( -- * Creating a Request+    CreateDBCluster (..),+    newCreateDBCluster,++    -- * Request Lenses+    createDBCluster_availabilityZones,+    createDBCluster_backupRetentionPeriod,+    createDBCluster_dbClusterParameterGroupName,+    createDBCluster_dbSubnetGroupName,+    createDBCluster_deletionProtection,+    createDBCluster_enableCloudwatchLogsExports,+    createDBCluster_engineVersion,+    createDBCluster_globalClusterIdentifier,+    createDBCluster_kmsKeyId,+    createDBCluster_masterUserPassword,+    createDBCluster_masterUsername,+    createDBCluster_port,+    createDBCluster_preSignedUrl,+    createDBCluster_preferredBackupWindow,+    createDBCluster_preferredMaintenanceWindow,+    createDBCluster_storageEncrypted,+    createDBCluster_tags,+    createDBCluster_vpcSecurityGroupIds,+    createDBCluster_dbClusterIdentifier,+    createDBCluster_engine,++    -- * Destructuring the Response+    CreateDBClusterResponse (..),+    newCreateDBClusterResponse,++    -- * Response Lenses+    createDBClusterResponse_dbCluster,+    createDBClusterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to CreateDBCluster.+--+-- /See:/ 'newCreateDBCluster' smart constructor.+data CreateDBCluster = CreateDBCluster'+  { -- | A list of Amazon EC2 Availability Zones that instances in the cluster+    -- can be created in.+    availabilityZones :: Prelude.Maybe [Prelude.Text],+    -- | The number of days for which automated backups are retained. You must+    -- specify a minimum value of 1.+    --+    -- Default: 1+    --+    -- Constraints:+    --+    -- -   Must be a value from 1 to 35.+    backupRetentionPeriod :: Prelude.Maybe Prelude.Int,+    -- | The name of the cluster parameter group to associate with this cluster.+    dbClusterParameterGroupName :: Prelude.Maybe Prelude.Text,+    -- | A subnet group to associate with this cluster.+    --+    -- Constraints: Must match the name of an existing @DBSubnetGroup@. Must+    -- not be default.+    --+    -- Example: @mySubnetgroup@+    dbSubnetGroupName :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether this cluster can be deleted. If @DeletionProtection@+    -- is enabled, the cluster cannot be deleted unless it is modified and+    -- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+    -- from being accidentally deleted.+    deletionProtection :: Prelude.Maybe Prelude.Bool,+    -- | A list of log types that need to be enabled for exporting to Amazon+    -- CloudWatch Logs. You can enable audit logs or profiler logs. For more+    -- information, see+    -- <https://docs.aws.amazon.com/documentdb/latest/developerguide/event-auditing.html Auditing Amazon DocumentDB Events>+    -- and+    -- <https://docs.aws.amazon.com/documentdb/latest/developerguide/profiling.html Profiling Amazon DocumentDB Operations>.+    enableCloudwatchLogsExports :: Prelude.Maybe [Prelude.Text],+    -- | The version number of the database engine to use. The @--engine-version@+    -- will default to the latest major engine version. For production+    -- workloads, we recommend explicitly declaring this parameter with the+    -- intended major engine version.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | The cluster identifier of the new global cluster.+    globalClusterIdentifier :: Prelude.Maybe Prelude.Text,+    -- | The KMS key identifier for an encrypted cluster.+    --+    -- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS+    -- encryption key. If you are creating a cluster using the same Amazon Web+    -- Services account that owns the KMS encryption key that is used to+    -- encrypt the new cluster, you can use the KMS key alias instead of the+    -- ARN for the KMS encryption key.+    --+    -- If an encryption key is not specified in @KmsKeyId@:+    --+    -- -   If the @StorageEncrypted@ parameter is @true@, Amazon DocumentDB+    --     uses your default encryption key.+    --+    -- KMS creates the default encryption key for your Amazon Web Services+    -- account. Your Amazon Web Services account has a different default+    -- encryption key for each Amazon Web Services Regions.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | The password for the master database user. This password can contain any+    -- printable ASCII character except forward slash (\/), double quote (\"),+    -- or the \"at\" symbol (\@).+    --+    -- Constraints: Must contain from 8 to 100 characters.+    masterUserPassword :: Prelude.Maybe Prelude.Text,+    -- | The name of the master user for the cluster.+    --+    -- Constraints:+    --+    -- -   Must be from 1 to 63 letters or numbers.+    --+    -- -   The first character must be a letter.+    --+    -- -   Cannot be a reserved word for the chosen database engine.+    masterUsername :: Prelude.Maybe Prelude.Text,+    -- | The port number on which the instances in the cluster accept+    -- connections.+    port :: Prelude.Maybe Prelude.Int,+    -- | Not currently supported.+    preSignedUrl :: Prelude.Maybe Prelude.Text,+    -- | The daily time range during which automated backups are created if+    -- automated backups are enabled using the @BackupRetentionPeriod@+    -- parameter.+    --+    -- The default is a 30-minute window selected at random from an 8-hour+    -- block of time for each Amazon Web Services Region.+    --+    -- Constraints:+    --+    -- -   Must be in the format @hh24:mi-hh24:mi@.+    --+    -- -   Must be in Universal Coordinated Time (UTC).+    --+    -- -   Must not conflict with the preferred maintenance window.+    --+    -- -   Must be at least 30 minutes.+    preferredBackupWindow :: Prelude.Maybe Prelude.Text,+    -- | The weekly time range during which system maintenance can occur, in+    -- Universal Coordinated Time (UTC).+    --+    -- Format: @ddd:hh24:mi-ddd:hh24:mi@+    --+    -- The default is a 30-minute window selected at random from an 8-hour+    -- block of time for each Amazon Web Services Region, occurring on a random+    -- day of the week.+    --+    -- Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun+    --+    -- Constraints: Minimum 30-minute window.+    preferredMaintenanceWindow :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether the cluster is encrypted.+    storageEncrypted :: Prelude.Maybe Prelude.Bool,+    -- | The tags to be assigned to the cluster.+    tags :: Prelude.Maybe [Tag],+    -- | A list of EC2 VPC security groups to associate with this cluster.+    vpcSecurityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | The cluster identifier. This parameter is stored as a lowercase string.+    --+    -- Constraints:+    --+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens.+    --+    -- -   The first character must be a letter.+    --+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.+    --+    -- Example: @my-cluster@+    dbClusterIdentifier :: Prelude.Text,+    -- | The name of the database engine to be used for this cluster.+    --+    -- Valid values: @docdb@+    engine :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDBCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'availabilityZones', 'createDBCluster_availabilityZones' - A list of Amazon EC2 Availability Zones that instances in the cluster+-- can be created in.+--+-- 'backupRetentionPeriod', 'createDBCluster_backupRetentionPeriod' - The number of days for which automated backups are retained. You must+-- specify a minimum value of 1.+--+-- Default: 1+--+-- Constraints:+--+-- -   Must be a value from 1 to 35.+--+-- 'dbClusterParameterGroupName', 'createDBCluster_dbClusterParameterGroupName' - The name of the cluster parameter group to associate with this cluster.+--+-- 'dbSubnetGroupName', 'createDBCluster_dbSubnetGroupName' - A subnet group to associate with this cluster.+--+-- Constraints: Must match the name of an existing @DBSubnetGroup@. Must+-- not be default.+--+-- Example: @mySubnetgroup@+--+-- 'deletionProtection', 'createDBCluster_deletionProtection' - Specifies whether this cluster can be deleted. If @DeletionProtection@+-- is enabled, the cluster cannot be deleted unless it is modified and+-- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+-- from being accidentally deleted.+--+-- 'enableCloudwatchLogsExports', 'createDBCluster_enableCloudwatchLogsExports' - A list of log types that need to be enabled for exporting to Amazon+-- CloudWatch Logs. You can enable audit logs or profiler logs. For more+-- information, see+-- <https://docs.aws.amazon.com/documentdb/latest/developerguide/event-auditing.html Auditing Amazon DocumentDB Events>+-- and+-- <https://docs.aws.amazon.com/documentdb/latest/developerguide/profiling.html Profiling Amazon DocumentDB Operations>.+--+-- 'engineVersion', 'createDBCluster_engineVersion' - The version number of the database engine to use. The @--engine-version@+-- will default to the latest major engine version. For production+-- workloads, we recommend explicitly declaring this parameter with the+-- intended major engine version.+--+-- 'globalClusterIdentifier', 'createDBCluster_globalClusterIdentifier' - The cluster identifier of the new global cluster.+--+-- 'kmsKeyId', 'createDBCluster_kmsKeyId' - The KMS key identifier for an encrypted cluster.+--+-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS+-- encryption key. If you are creating a cluster using the same Amazon Web+-- Services account that owns the KMS encryption key that is used to+-- encrypt the new cluster, you can use the KMS key alias instead of the+-- ARN for the KMS encryption key.+--+-- If an encryption key is not specified in @KmsKeyId@:+--+-- -   If the @StorageEncrypted@ parameter is @true@, Amazon DocumentDB+--     uses your default encryption key.+--+-- KMS creates the default encryption key for your Amazon Web Services+-- account. Your Amazon Web Services account has a different default+-- encryption key for each Amazon Web Services Regions.+--+-- 'masterUserPassword', 'createDBCluster_masterUserPassword' - The password for the master database user. This password can contain any+-- printable ASCII character except forward slash (\/), double quote (\"),+-- or the \"at\" symbol (\@).+--+-- Constraints: Must contain from 8 to 100 characters.+--+-- 'masterUsername', 'createDBCluster_masterUsername' - The name of the master user for the cluster.+--+-- Constraints:+--+-- -   Must be from 1 to 63 letters or numbers.+--+-- -   The first character must be a letter.+--+-- -   Cannot be a reserved word for the chosen database engine.+--+-- 'port', 'createDBCluster_port' - The port number on which the instances in the cluster accept+-- connections.+--+-- 'preSignedUrl', 'createDBCluster_preSignedUrl' - Not currently supported.+--+-- 'preferredBackupWindow', 'createDBCluster_preferredBackupWindow' - The daily time range during which automated backups are created if+-- automated backups are enabled using the @BackupRetentionPeriod@+-- parameter.+--+-- The default is a 30-minute window selected at random from an 8-hour+-- block of time for each Amazon Web Services Region.+--+-- Constraints:+--+-- -   Must be in the format @hh24:mi-hh24:mi@.+--+-- -   Must be in Universal Coordinated Time (UTC).+--+-- -   Must not conflict with the preferred maintenance window.+--+-- -   Must be at least 30 minutes.+--+-- 'preferredMaintenanceWindow', 'createDBCluster_preferredMaintenanceWindow' - The weekly time range during which system maintenance can occur, in+-- Universal Coordinated Time (UTC).+--+-- Format: @ddd:hh24:mi-ddd:hh24:mi@+--+-- The default is a 30-minute window selected at random from an 8-hour+-- block of time for each Amazon Web Services Region, occurring on a random+-- day of the week.+--+-- Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun+--+-- Constraints: Minimum 30-minute window.+--+-- 'storageEncrypted', 'createDBCluster_storageEncrypted' - Specifies whether the cluster is encrypted.+--+-- 'tags', 'createDBCluster_tags' - The tags to be assigned to the cluster.+--+-- 'vpcSecurityGroupIds', 'createDBCluster_vpcSecurityGroupIds' - A list of EC2 VPC security groups to associate with this cluster.+--+-- 'dbClusterIdentifier', 'createDBCluster_dbClusterIdentifier' - The cluster identifier. This parameter is stored as a lowercase string.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @my-cluster@+--+-- 'engine', 'createDBCluster_engine' - The name of the database engine to be used for this cluster.+--+-- Valid values: @docdb@+newCreateDBCluster ::+  -- | 'dbClusterIdentifier'+  Prelude.Text ->+  -- | 'engine'+  Prelude.Text ->+  CreateDBCluster+newCreateDBCluster pDBClusterIdentifier_ pEngine_ =+  CreateDBCluster'+    { availabilityZones =+        Prelude.Nothing,+      backupRetentionPeriod = Prelude.Nothing,+      dbClusterParameterGroupName = Prelude.Nothing,+      dbSubnetGroupName = Prelude.Nothing,+      deletionProtection = Prelude.Nothing,+      enableCloudwatchLogsExports = Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      globalClusterIdentifier = Prelude.Nothing,+      kmsKeyId = Prelude.Nothing,+      masterUserPassword = Prelude.Nothing,+      masterUsername = Prelude.Nothing,+      port = Prelude.Nothing,+      preSignedUrl = Prelude.Nothing,+      preferredBackupWindow = Prelude.Nothing,+      preferredMaintenanceWindow = Prelude.Nothing,+      storageEncrypted = Prelude.Nothing,+      tags = Prelude.Nothing,+      vpcSecurityGroupIds = Prelude.Nothing,+      dbClusterIdentifier = pDBClusterIdentifier_,+      engine = pEngine_+    }++-- | A list of Amazon EC2 Availability Zones that instances in the cluster+-- can be created in.+createDBCluster_availabilityZones :: Lens.Lens' CreateDBCluster (Prelude.Maybe [Prelude.Text])+createDBCluster_availabilityZones = Lens.lens (\CreateDBCluster' {availabilityZones} -> availabilityZones) (\s@CreateDBCluster' {} a -> s {availabilityZones = a} :: CreateDBCluster) Prelude.. Lens.mapping Lens.coerced++-- | The number of days for which automated backups are retained. You must+-- specify a minimum value of 1.+--+-- Default: 1+--+-- Constraints:+--+-- -   Must be a value from 1 to 35.+createDBCluster_backupRetentionPeriod :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Int)+createDBCluster_backupRetentionPeriod = Lens.lens (\CreateDBCluster' {backupRetentionPeriod} -> backupRetentionPeriod) (\s@CreateDBCluster' {} a -> s {backupRetentionPeriod = a} :: CreateDBCluster)++-- | The name of the cluster parameter group to associate with this cluster.+createDBCluster_dbClusterParameterGroupName :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)+createDBCluster_dbClusterParameterGroupName = Lens.lens (\CreateDBCluster' {dbClusterParameterGroupName} -> dbClusterParameterGroupName) (\s@CreateDBCluster' {} a -> s {dbClusterParameterGroupName = a} :: CreateDBCluster)++-- | A subnet group to associate with this cluster.+--+-- Constraints: Must match the name of an existing @DBSubnetGroup@. Must+-- not be default.+--+-- Example: @mySubnetgroup@+createDBCluster_dbSubnetGroupName :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)+createDBCluster_dbSubnetGroupName = Lens.lens (\CreateDBCluster' {dbSubnetGroupName} -> dbSubnetGroupName) (\s@CreateDBCluster' {} a -> s {dbSubnetGroupName = a} :: CreateDBCluster)++-- | Specifies whether this cluster can be deleted. If @DeletionProtection@+-- is enabled, the cluster cannot be deleted unless it is modified and+-- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+-- from being accidentally deleted.+createDBCluster_deletionProtection :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Bool)+createDBCluster_deletionProtection = Lens.lens (\CreateDBCluster' {deletionProtection} -> deletionProtection) (\s@CreateDBCluster' {} a -> s {deletionProtection = a} :: CreateDBCluster)++-- | A list of log types that need to be enabled for exporting to Amazon+-- CloudWatch Logs. You can enable audit logs or profiler logs. For more+-- information, see+-- <https://docs.aws.amazon.com/documentdb/latest/developerguide/event-auditing.html Auditing Amazon DocumentDB Events>+-- and+-- <https://docs.aws.amazon.com/documentdb/latest/developerguide/profiling.html Profiling Amazon DocumentDB Operations>.+createDBCluster_enableCloudwatchLogsExports :: Lens.Lens' CreateDBCluster (Prelude.Maybe [Prelude.Text])+createDBCluster_enableCloudwatchLogsExports = Lens.lens (\CreateDBCluster' {enableCloudwatchLogsExports} -> enableCloudwatchLogsExports) (\s@CreateDBCluster' {} a -> s {enableCloudwatchLogsExports = a} :: CreateDBCluster) Prelude.. Lens.mapping Lens.coerced++-- | The version number of the database engine to use. The @--engine-version@+-- will default to the latest major engine version. For production+-- workloads, we recommend explicitly declaring this parameter with the+-- intended major engine version.+createDBCluster_engineVersion :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)+createDBCluster_engineVersion = Lens.lens (\CreateDBCluster' {engineVersion} -> engineVersion) (\s@CreateDBCluster' {} a -> s {engineVersion = a} :: CreateDBCluster)++-- | The cluster identifier of the new global cluster.+createDBCluster_globalClusterIdentifier :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)+createDBCluster_globalClusterIdentifier = Lens.lens (\CreateDBCluster' {globalClusterIdentifier} -> globalClusterIdentifier) (\s@CreateDBCluster' {} a -> s {globalClusterIdentifier = a} :: CreateDBCluster)++-- | The KMS key identifier for an encrypted cluster.+--+-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS+-- encryption key. If you are creating a cluster using the same Amazon Web+-- Services account that owns the KMS encryption key that is used to+-- encrypt the new cluster, you can use the KMS key alias instead of the+-- ARN for the KMS encryption key.+--+-- If an encryption key is not specified in @KmsKeyId@:+--+-- -   If the @StorageEncrypted@ parameter is @true@, Amazon DocumentDB+--     uses your default encryption key.+--+-- KMS creates the default encryption key for your Amazon Web Services+-- account. Your Amazon Web Services account has a different default+-- encryption key for each Amazon Web Services Regions.+createDBCluster_kmsKeyId :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)+createDBCluster_kmsKeyId = Lens.lens (\CreateDBCluster' {kmsKeyId} -> kmsKeyId) (\s@CreateDBCluster' {} a -> s {kmsKeyId = a} :: CreateDBCluster)++-- | The password for the master database user. This password can contain any+-- printable ASCII character except forward slash (\/), double quote (\"),+-- or the \"at\" symbol (\@).+--+-- Constraints: Must contain from 8 to 100 characters.+createDBCluster_masterUserPassword :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)+createDBCluster_masterUserPassword = Lens.lens (\CreateDBCluster' {masterUserPassword} -> masterUserPassword) (\s@CreateDBCluster' {} a -> s {masterUserPassword = a} :: CreateDBCluster)++-- | The name of the master user for the cluster.+--+-- Constraints:+--+-- -   Must be from 1 to 63 letters or numbers.+--+-- -   The first character must be a letter.+--+-- -   Cannot be a reserved word for the chosen database engine.+createDBCluster_masterUsername :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)+createDBCluster_masterUsername = Lens.lens (\CreateDBCluster' {masterUsername} -> masterUsername) (\s@CreateDBCluster' {} a -> s {masterUsername = a} :: CreateDBCluster)++-- | The port number on which the instances in the cluster accept+-- connections.+createDBCluster_port :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Int)+createDBCluster_port = Lens.lens (\CreateDBCluster' {port} -> port) (\s@CreateDBCluster' {} a -> s {port = a} :: CreateDBCluster)++-- | Not currently supported.+createDBCluster_preSignedUrl :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)+createDBCluster_preSignedUrl = Lens.lens (\CreateDBCluster' {preSignedUrl} -> preSignedUrl) (\s@CreateDBCluster' {} a -> s {preSignedUrl = a} :: CreateDBCluster)++-- | The daily time range during which automated backups are created if+-- automated backups are enabled using the @BackupRetentionPeriod@+-- parameter.+--+-- The default is a 30-minute window selected at random from an 8-hour+-- block of time for each Amazon Web Services Region.+--+-- Constraints:+--+-- -   Must be in the format @hh24:mi-hh24:mi@.+--+-- -   Must be in Universal Coordinated Time (UTC).+--+-- -   Must not conflict with the preferred maintenance window.+--+-- -   Must be at least 30 minutes.+createDBCluster_preferredBackupWindow :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)+createDBCluster_preferredBackupWindow = Lens.lens (\CreateDBCluster' {preferredBackupWindow} -> preferredBackupWindow) (\s@CreateDBCluster' {} a -> s {preferredBackupWindow = a} :: CreateDBCluster)++-- | The weekly time range during which system maintenance can occur, in+-- Universal Coordinated Time (UTC).+--+-- Format: @ddd:hh24:mi-ddd:hh24:mi@+--+-- The default is a 30-minute window selected at random from an 8-hour+-- block of time for each Amazon Web Services Region, occurring on a random+-- day of the week.+--+-- Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun+--+-- Constraints: Minimum 30-minute window.+createDBCluster_preferredMaintenanceWindow :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)+createDBCluster_preferredMaintenanceWindow = Lens.lens (\CreateDBCluster' {preferredMaintenanceWindow} -> preferredMaintenanceWindow) (\s@CreateDBCluster' {} a -> s {preferredMaintenanceWindow = a} :: CreateDBCluster)++-- | Specifies whether the cluster is encrypted.+createDBCluster_storageEncrypted :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Bool)+createDBCluster_storageEncrypted = Lens.lens (\CreateDBCluster' {storageEncrypted} -> storageEncrypted) (\s@CreateDBCluster' {} a -> s {storageEncrypted = a} :: CreateDBCluster)++-- | The tags to be assigned to the cluster.+createDBCluster_tags :: Lens.Lens' CreateDBCluster (Prelude.Maybe [Tag])+createDBCluster_tags = Lens.lens (\CreateDBCluster' {tags} -> tags) (\s@CreateDBCluster' {} a -> s {tags = a} :: CreateDBCluster) Prelude.. Lens.mapping Lens.coerced++-- | A list of EC2 VPC security groups to associate with this cluster.+createDBCluster_vpcSecurityGroupIds :: Lens.Lens' CreateDBCluster (Prelude.Maybe [Prelude.Text])+createDBCluster_vpcSecurityGroupIds = Lens.lens (\CreateDBCluster' {vpcSecurityGroupIds} -> vpcSecurityGroupIds) (\s@CreateDBCluster' {} a -> s {vpcSecurityGroupIds = a} :: CreateDBCluster) Prelude.. Lens.mapping Lens.coerced++-- | The cluster identifier. This parameter is stored as a lowercase string.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @my-cluster@+createDBCluster_dbClusterIdentifier :: Lens.Lens' CreateDBCluster Prelude.Text+createDBCluster_dbClusterIdentifier = Lens.lens (\CreateDBCluster' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@CreateDBCluster' {} a -> s {dbClusterIdentifier = a} :: CreateDBCluster)++-- | The name of the database engine to be used for this cluster.+--+-- Valid values: @docdb@+createDBCluster_engine :: Lens.Lens' CreateDBCluster Prelude.Text+createDBCluster_engine = Lens.lens (\CreateDBCluster' {engine} -> engine) (\s@CreateDBCluster' {} a -> s {engine = a} :: CreateDBCluster)++instance Core.AWSRequest CreateDBCluster where+  type+    AWSResponse CreateDBCluster =+      CreateDBClusterResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "CreateDBClusterResult"+      ( \s h x ->+          CreateDBClusterResponse'+            Prelude.<$> (x Data..@? "DBCluster")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDBCluster where+  hashWithSalt _salt CreateDBCluster' {..} =+    _salt+      `Prelude.hashWithSalt` availabilityZones+      `Prelude.hashWithSalt` backupRetentionPeriod+      `Prelude.hashWithSalt` dbClusterParameterGroupName+      `Prelude.hashWithSalt` dbSubnetGroupName+      `Prelude.hashWithSalt` deletionProtection+      `Prelude.hashWithSalt` enableCloudwatchLogsExports+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` globalClusterIdentifier+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` masterUserPassword+      `Prelude.hashWithSalt` masterUsername+      `Prelude.hashWithSalt` port+      `Prelude.hashWithSalt` preSignedUrl+      `Prelude.hashWithSalt` preferredBackupWindow+      `Prelude.hashWithSalt` preferredMaintenanceWindow+      `Prelude.hashWithSalt` storageEncrypted+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` vpcSecurityGroupIds+      `Prelude.hashWithSalt` dbClusterIdentifier+      `Prelude.hashWithSalt` engine++instance Prelude.NFData CreateDBCluster where+  rnf CreateDBCluster' {..} =+    Prelude.rnf availabilityZones+      `Prelude.seq` Prelude.rnf backupRetentionPeriod+      `Prelude.seq` Prelude.rnf dbClusterParameterGroupName+      `Prelude.seq` Prelude.rnf dbSubnetGroupName+      `Prelude.seq` Prelude.rnf deletionProtection+      `Prelude.seq` Prelude.rnf enableCloudwatchLogsExports+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf globalClusterIdentifier+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf masterUserPassword+      `Prelude.seq` Prelude.rnf masterUsername+      `Prelude.seq` Prelude.rnf port+      `Prelude.seq` Prelude.rnf preSignedUrl+      `Prelude.seq` Prelude.rnf preferredBackupWindow+      `Prelude.seq` Prelude.rnf preferredMaintenanceWindow+      `Prelude.seq` Prelude.rnf storageEncrypted+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vpcSecurityGroupIds+      `Prelude.seq` Prelude.rnf dbClusterIdentifier+      `Prelude.seq` Prelude.rnf engine++instance Data.ToHeaders CreateDBCluster where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath CreateDBCluster where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDBCluster where+  toQuery CreateDBCluster' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("CreateDBCluster" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "AvailabilityZones"+          Data.=: Data.toQuery+            ( Data.toQueryList "AvailabilityZone"+                Prelude.<$> availabilityZones+            ),+        "BackupRetentionPeriod"+          Data.=: backupRetentionPeriod,+        "DBClusterParameterGroupName"+          Data.=: dbClusterParameterGroupName,+        "DBSubnetGroupName" Data.=: dbSubnetGroupName,+        "DeletionProtection" Data.=: deletionProtection,+        "EnableCloudwatchLogsExports"+          Data.=: Data.toQuery+            ( Data.toQueryList "member"+                Prelude.<$> enableCloudwatchLogsExports+            ),+        "EngineVersion" Data.=: engineVersion,+        "GlobalClusterIdentifier"+          Data.=: globalClusterIdentifier,+        "KmsKeyId" Data.=: kmsKeyId,+        "MasterUserPassword" Data.=: masterUserPassword,+        "MasterUsername" Data.=: masterUsername,+        "Port" Data.=: port,+        "PreSignedUrl" Data.=: preSignedUrl,+        "PreferredBackupWindow"+          Data.=: preferredBackupWindow,+        "PreferredMaintenanceWindow"+          Data.=: preferredMaintenanceWindow,+        "StorageEncrypted" Data.=: storageEncrypted,+        "Tags"+          Data.=: Data.toQuery+            (Data.toQueryList "Tag" Prelude.<$> tags),+        "VpcSecurityGroupIds"+          Data.=: Data.toQuery+            ( Data.toQueryList "VpcSecurityGroupId"+                Prelude.<$> vpcSecurityGroupIds+            ),+        "DBClusterIdentifier" Data.=: dbClusterIdentifier,+        "Engine" Data.=: engine+      ]++-- | /See:/ 'newCreateDBClusterResponse' smart constructor.+data CreateDBClusterResponse = CreateDBClusterResponse'+  { dbCluster :: Prelude.Maybe DBCluster,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDBClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbCluster', 'createDBClusterResponse_dbCluster' - Undocumented member.+--+-- 'httpStatus', 'createDBClusterResponse_httpStatus' - The response's http status code.+newCreateDBClusterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDBClusterResponse+newCreateDBClusterResponse pHttpStatus_ =+  CreateDBClusterResponse'+    { dbCluster =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+createDBClusterResponse_dbCluster :: Lens.Lens' CreateDBClusterResponse (Prelude.Maybe DBCluster)+createDBClusterResponse_dbCluster = Lens.lens (\CreateDBClusterResponse' {dbCluster} -> dbCluster) (\s@CreateDBClusterResponse' {} a -> s {dbCluster = a} :: CreateDBClusterResponse)++-- | The response's http status code.+createDBClusterResponse_httpStatus :: Lens.Lens' CreateDBClusterResponse Prelude.Int+createDBClusterResponse_httpStatus = Lens.lens (\CreateDBClusterResponse' {httpStatus} -> httpStatus) (\s@CreateDBClusterResponse' {} a -> s {httpStatus = a} :: CreateDBClusterResponse)++instance Prelude.NFData CreateDBClusterResponse where+  rnf CreateDBClusterResponse' {..} =+    Prelude.rnf dbCluster+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/CreateDBClusterParameterGroup.hs view
@@ -0,0 +1,262 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.CreateDBClusterParameterGroup+-- 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 cluster parameter group.+--+-- Parameters in a cluster parameter group apply to all of the instances in+-- a cluster.+--+-- A cluster parameter group is initially created with the default+-- parameters for the database engine used by instances in the cluster. In+-- Amazon DocumentDB, you cannot make modifications directly to the+-- @default.docdb3.6@ cluster parameter group. If your Amazon DocumentDB+-- cluster is using the default cluster parameter group and you want to+-- modify a value in it, you must first+-- <https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-create.html create a new parameter group>+-- or+-- <https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-copy.html copy an existing parameter group>,+-- modify it, and then apply the modified parameter group to your cluster.+-- For the new cluster parameter group and associated settings to take+-- effect, you must then reboot the instances in the cluster without+-- failover. For more information, see+-- <https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-modify.html Modifying Amazon DocumentDB Cluster Parameter Groups>.+module Amazonka.DocumentDB.CreateDBClusterParameterGroup+  ( -- * Creating a Request+    CreateDBClusterParameterGroup (..),+    newCreateDBClusterParameterGroup,++    -- * Request Lenses+    createDBClusterParameterGroup_tags,+    createDBClusterParameterGroup_dbClusterParameterGroupName,+    createDBClusterParameterGroup_dbParameterGroupFamily,+    createDBClusterParameterGroup_description,++    -- * Destructuring the Response+    CreateDBClusterParameterGroupResponse (..),+    newCreateDBClusterParameterGroupResponse,++    -- * Response Lenses+    createDBClusterParameterGroupResponse_dbClusterParameterGroup,+    createDBClusterParameterGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input of CreateDBClusterParameterGroup.+--+-- /See:/ 'newCreateDBClusterParameterGroup' smart constructor.+data CreateDBClusterParameterGroup = CreateDBClusterParameterGroup'+  { -- | The tags to be assigned to the cluster parameter group.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the cluster parameter group.+    --+    -- Constraints:+    --+    -- -   Must not match the name of an existing @DBClusterParameterGroup@.+    --+    -- This value is stored as a lowercase string.+    dbClusterParameterGroupName :: Prelude.Text,+    -- | The cluster parameter group family name.+    dbParameterGroupFamily :: Prelude.Text,+    -- | The description for the cluster parameter group.+    description :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDBClusterParameterGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDBClusterParameterGroup_tags' - The tags to be assigned to the cluster parameter group.+--+-- 'dbClusterParameterGroupName', 'createDBClusterParameterGroup_dbClusterParameterGroupName' - The name of the cluster parameter group.+--+-- Constraints:+--+-- -   Must not match the name of an existing @DBClusterParameterGroup@.+--+-- This value is stored as a lowercase string.+--+-- 'dbParameterGroupFamily', 'createDBClusterParameterGroup_dbParameterGroupFamily' - The cluster parameter group family name.+--+-- 'description', 'createDBClusterParameterGroup_description' - The description for the cluster parameter group.+newCreateDBClusterParameterGroup ::+  -- | 'dbClusterParameterGroupName'+  Prelude.Text ->+  -- | 'dbParameterGroupFamily'+  Prelude.Text ->+  -- | 'description'+  Prelude.Text ->+  CreateDBClusterParameterGroup+newCreateDBClusterParameterGroup+  pDBClusterParameterGroupName_+  pDBParameterGroupFamily_+  pDescription_ =+    CreateDBClusterParameterGroup'+      { tags =+          Prelude.Nothing,+        dbClusterParameterGroupName =+          pDBClusterParameterGroupName_,+        dbParameterGroupFamily =+          pDBParameterGroupFamily_,+        description = pDescription_+      }++-- | The tags to be assigned to the cluster parameter group.+createDBClusterParameterGroup_tags :: Lens.Lens' CreateDBClusterParameterGroup (Prelude.Maybe [Tag])+createDBClusterParameterGroup_tags = Lens.lens (\CreateDBClusterParameterGroup' {tags} -> tags) (\s@CreateDBClusterParameterGroup' {} a -> s {tags = a} :: CreateDBClusterParameterGroup) Prelude.. Lens.mapping Lens.coerced++-- | The name of the cluster parameter group.+--+-- Constraints:+--+-- -   Must not match the name of an existing @DBClusterParameterGroup@.+--+-- This value is stored as a lowercase string.+createDBClusterParameterGroup_dbClusterParameterGroupName :: Lens.Lens' CreateDBClusterParameterGroup Prelude.Text+createDBClusterParameterGroup_dbClusterParameterGroupName = Lens.lens (\CreateDBClusterParameterGroup' {dbClusterParameterGroupName} -> dbClusterParameterGroupName) (\s@CreateDBClusterParameterGroup' {} a -> s {dbClusterParameterGroupName = a} :: CreateDBClusterParameterGroup)++-- | The cluster parameter group family name.+createDBClusterParameterGroup_dbParameterGroupFamily :: Lens.Lens' CreateDBClusterParameterGroup Prelude.Text+createDBClusterParameterGroup_dbParameterGroupFamily = Lens.lens (\CreateDBClusterParameterGroup' {dbParameterGroupFamily} -> dbParameterGroupFamily) (\s@CreateDBClusterParameterGroup' {} a -> s {dbParameterGroupFamily = a} :: CreateDBClusterParameterGroup)++-- | The description for the cluster parameter group.+createDBClusterParameterGroup_description :: Lens.Lens' CreateDBClusterParameterGroup Prelude.Text+createDBClusterParameterGroup_description = Lens.lens (\CreateDBClusterParameterGroup' {description} -> description) (\s@CreateDBClusterParameterGroup' {} a -> s {description = a} :: CreateDBClusterParameterGroup)++instance+  Core.AWSRequest+    CreateDBClusterParameterGroup+  where+  type+    AWSResponse CreateDBClusterParameterGroup =+      CreateDBClusterParameterGroupResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "CreateDBClusterParameterGroupResult"+      ( \s h x ->+          CreateDBClusterParameterGroupResponse'+            Prelude.<$> (x Data..@? "DBClusterParameterGroup")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    CreateDBClusterParameterGroup+  where+  hashWithSalt _salt CreateDBClusterParameterGroup' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` dbClusterParameterGroupName+      `Prelude.hashWithSalt` dbParameterGroupFamily+      `Prelude.hashWithSalt` description++instance Prelude.NFData CreateDBClusterParameterGroup where+  rnf CreateDBClusterParameterGroup' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf dbClusterParameterGroupName+      `Prelude.seq` Prelude.rnf dbParameterGroupFamily+      `Prelude.seq` Prelude.rnf description++instance Data.ToHeaders CreateDBClusterParameterGroup where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath CreateDBClusterParameterGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDBClusterParameterGroup where+  toQuery CreateDBClusterParameterGroup' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "CreateDBClusterParameterGroup" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Tags"+          Data.=: Data.toQuery+            (Data.toQueryList "Tag" Prelude.<$> tags),+        "DBClusterParameterGroupName"+          Data.=: dbClusterParameterGroupName,+        "DBParameterGroupFamily"+          Data.=: dbParameterGroupFamily,+        "Description" Data.=: description+      ]++-- | /See:/ 'newCreateDBClusterParameterGroupResponse' smart constructor.+data CreateDBClusterParameterGroupResponse = CreateDBClusterParameterGroupResponse'+  { dbClusterParameterGroup :: Prelude.Maybe DBClusterParameterGroup,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDBClusterParameterGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterParameterGroup', 'createDBClusterParameterGroupResponse_dbClusterParameterGroup' - Undocumented member.+--+-- 'httpStatus', 'createDBClusterParameterGroupResponse_httpStatus' - The response's http status code.+newCreateDBClusterParameterGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDBClusterParameterGroupResponse+newCreateDBClusterParameterGroupResponse pHttpStatus_ =+  CreateDBClusterParameterGroupResponse'+    { dbClusterParameterGroup =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+createDBClusterParameterGroupResponse_dbClusterParameterGroup :: Lens.Lens' CreateDBClusterParameterGroupResponse (Prelude.Maybe DBClusterParameterGroup)+createDBClusterParameterGroupResponse_dbClusterParameterGroup = Lens.lens (\CreateDBClusterParameterGroupResponse' {dbClusterParameterGroup} -> dbClusterParameterGroup) (\s@CreateDBClusterParameterGroupResponse' {} a -> s {dbClusterParameterGroup = a} :: CreateDBClusterParameterGroupResponse)++-- | The response's http status code.+createDBClusterParameterGroupResponse_httpStatus :: Lens.Lens' CreateDBClusterParameterGroupResponse Prelude.Int+createDBClusterParameterGroupResponse_httpStatus = Lens.lens (\CreateDBClusterParameterGroupResponse' {httpStatus} -> httpStatus) (\s@CreateDBClusterParameterGroupResponse' {} a -> s {httpStatus = a} :: CreateDBClusterParameterGroupResponse)++instance+  Prelude.NFData+    CreateDBClusterParameterGroupResponse+  where+  rnf CreateDBClusterParameterGroupResponse' {..} =+    Prelude.rnf dbClusterParameterGroup+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/CreateDBClusterSnapshot.hs view
@@ -0,0 +1,253 @@+{-# 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.DocumentDB.CreateDBClusterSnapshot+-- 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 snapshot of a cluster.+module Amazonka.DocumentDB.CreateDBClusterSnapshot+  ( -- * Creating a Request+    CreateDBClusterSnapshot (..),+    newCreateDBClusterSnapshot,++    -- * Request Lenses+    createDBClusterSnapshot_tags,+    createDBClusterSnapshot_dbClusterSnapshotIdentifier,+    createDBClusterSnapshot_dbClusterIdentifier,++    -- * Destructuring the Response+    CreateDBClusterSnapshotResponse (..),+    newCreateDBClusterSnapshotResponse,++    -- * Response Lenses+    createDBClusterSnapshotResponse_dbClusterSnapshot,+    createDBClusterSnapshotResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input of CreateDBClusterSnapshot.+--+-- /See:/ 'newCreateDBClusterSnapshot' smart constructor.+data CreateDBClusterSnapshot = CreateDBClusterSnapshot'+  { -- | The tags to be assigned to the cluster snapshot.+    tags :: Prelude.Maybe [Tag],+    -- | The identifier of the cluster snapshot. This parameter is stored as a+    -- lowercase string.+    --+    -- Constraints:+    --+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens.+    --+    -- -   The first character must be a letter.+    --+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.+    --+    -- Example: @my-cluster-snapshot1@+    dbClusterSnapshotIdentifier :: Prelude.Text,+    -- | The identifier of the cluster to create a snapshot for. This parameter+    -- is not case sensitive.+    --+    -- Constraints:+    --+    -- -   Must match the identifier of an existing @DBCluster@.+    --+    -- Example: @my-cluster@+    dbClusterIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDBClusterSnapshot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDBClusterSnapshot_tags' - The tags to be assigned to the cluster snapshot.+--+-- 'dbClusterSnapshotIdentifier', 'createDBClusterSnapshot_dbClusterSnapshotIdentifier' - The identifier of the cluster snapshot. This parameter is stored as a+-- lowercase string.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @my-cluster-snapshot1@+--+-- 'dbClusterIdentifier', 'createDBClusterSnapshot_dbClusterIdentifier' - The identifier of the cluster to create a snapshot for. This parameter+-- is not case sensitive.+--+-- Constraints:+--+-- -   Must match the identifier of an existing @DBCluster@.+--+-- Example: @my-cluster@+newCreateDBClusterSnapshot ::+  -- | 'dbClusterSnapshotIdentifier'+  Prelude.Text ->+  -- | 'dbClusterIdentifier'+  Prelude.Text ->+  CreateDBClusterSnapshot+newCreateDBClusterSnapshot+  pDBClusterSnapshotIdentifier_+  pDBClusterIdentifier_ =+    CreateDBClusterSnapshot'+      { tags = Prelude.Nothing,+        dbClusterSnapshotIdentifier =+          pDBClusterSnapshotIdentifier_,+        dbClusterIdentifier = pDBClusterIdentifier_+      }++-- | The tags to be assigned to the cluster snapshot.+createDBClusterSnapshot_tags :: Lens.Lens' CreateDBClusterSnapshot (Prelude.Maybe [Tag])+createDBClusterSnapshot_tags = Lens.lens (\CreateDBClusterSnapshot' {tags} -> tags) (\s@CreateDBClusterSnapshot' {} a -> s {tags = a} :: CreateDBClusterSnapshot) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the cluster snapshot. This parameter is stored as a+-- lowercase string.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @my-cluster-snapshot1@+createDBClusterSnapshot_dbClusterSnapshotIdentifier :: Lens.Lens' CreateDBClusterSnapshot Prelude.Text+createDBClusterSnapshot_dbClusterSnapshotIdentifier = Lens.lens (\CreateDBClusterSnapshot' {dbClusterSnapshotIdentifier} -> dbClusterSnapshotIdentifier) (\s@CreateDBClusterSnapshot' {} a -> s {dbClusterSnapshotIdentifier = a} :: CreateDBClusterSnapshot)++-- | The identifier of the cluster to create a snapshot for. This parameter+-- is not case sensitive.+--+-- Constraints:+--+-- -   Must match the identifier of an existing @DBCluster@.+--+-- Example: @my-cluster@+createDBClusterSnapshot_dbClusterIdentifier :: Lens.Lens' CreateDBClusterSnapshot Prelude.Text+createDBClusterSnapshot_dbClusterIdentifier = Lens.lens (\CreateDBClusterSnapshot' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@CreateDBClusterSnapshot' {} a -> s {dbClusterIdentifier = a} :: CreateDBClusterSnapshot)++instance Core.AWSRequest CreateDBClusterSnapshot where+  type+    AWSResponse CreateDBClusterSnapshot =+      CreateDBClusterSnapshotResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "CreateDBClusterSnapshotResult"+      ( \s h x ->+          CreateDBClusterSnapshotResponse'+            Prelude.<$> (x Data..@? "DBClusterSnapshot")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDBClusterSnapshot where+  hashWithSalt _salt CreateDBClusterSnapshot' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` dbClusterSnapshotIdentifier+      `Prelude.hashWithSalt` dbClusterIdentifier++instance Prelude.NFData CreateDBClusterSnapshot where+  rnf CreateDBClusterSnapshot' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf dbClusterSnapshotIdentifier+      `Prelude.seq` Prelude.rnf dbClusterIdentifier++instance Data.ToHeaders CreateDBClusterSnapshot where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath CreateDBClusterSnapshot where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDBClusterSnapshot where+  toQuery CreateDBClusterSnapshot' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("CreateDBClusterSnapshot" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Tags"+          Data.=: Data.toQuery+            (Data.toQueryList "Tag" Prelude.<$> tags),+        "DBClusterSnapshotIdentifier"+          Data.=: dbClusterSnapshotIdentifier,+        "DBClusterIdentifier" Data.=: dbClusterIdentifier+      ]++-- | /See:/ 'newCreateDBClusterSnapshotResponse' smart constructor.+data CreateDBClusterSnapshotResponse = CreateDBClusterSnapshotResponse'+  { dbClusterSnapshot :: Prelude.Maybe DBClusterSnapshot,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDBClusterSnapshotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterSnapshot', 'createDBClusterSnapshotResponse_dbClusterSnapshot' - Undocumented member.+--+-- 'httpStatus', 'createDBClusterSnapshotResponse_httpStatus' - The response's http status code.+newCreateDBClusterSnapshotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDBClusterSnapshotResponse+newCreateDBClusterSnapshotResponse pHttpStatus_ =+  CreateDBClusterSnapshotResponse'+    { dbClusterSnapshot =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+createDBClusterSnapshotResponse_dbClusterSnapshot :: Lens.Lens' CreateDBClusterSnapshotResponse (Prelude.Maybe DBClusterSnapshot)+createDBClusterSnapshotResponse_dbClusterSnapshot = Lens.lens (\CreateDBClusterSnapshotResponse' {dbClusterSnapshot} -> dbClusterSnapshot) (\s@CreateDBClusterSnapshotResponse' {} a -> s {dbClusterSnapshot = a} :: CreateDBClusterSnapshotResponse)++-- | The response's http status code.+createDBClusterSnapshotResponse_httpStatus :: Lens.Lens' CreateDBClusterSnapshotResponse Prelude.Int+createDBClusterSnapshotResponse_httpStatus = Lens.lens (\CreateDBClusterSnapshotResponse' {httpStatus} -> httpStatus) (\s@CreateDBClusterSnapshotResponse' {} a -> s {httpStatus = a} :: CreateDBClusterSnapshotResponse)++instance+  Prelude.NFData+    CreateDBClusterSnapshotResponse+  where+  rnf CreateDBClusterSnapshotResponse' {..} =+    Prelude.rnf dbClusterSnapshot+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/CreateDBInstance.hs view
@@ -0,0 +1,472 @@+{-# 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.DocumentDB.CreateDBInstance+-- 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 instance.+module Amazonka.DocumentDB.CreateDBInstance+  ( -- * Creating a Request+    CreateDBInstance (..),+    newCreateDBInstance,++    -- * Request Lenses+    createDBInstance_autoMinorVersionUpgrade,+    createDBInstance_availabilityZone,+    createDBInstance_copyTagsToSnapshot,+    createDBInstance_enablePerformanceInsights,+    createDBInstance_performanceInsightsKMSKeyId,+    createDBInstance_preferredMaintenanceWindow,+    createDBInstance_promotionTier,+    createDBInstance_tags,+    createDBInstance_dbInstanceIdentifier,+    createDBInstance_dbInstanceClass,+    createDBInstance_engine,+    createDBInstance_dbClusterIdentifier,++    -- * Destructuring the Response+    CreateDBInstanceResponse (..),+    newCreateDBInstanceResponse,++    -- * Response Lenses+    createDBInstanceResponse_dbInstance,+    createDBInstanceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to CreateDBInstance.+--+-- /See:/ 'newCreateDBInstance' smart constructor.+data CreateDBInstance = CreateDBInstance'+  { -- | This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB+    -- does not perform minor version upgrades regardless of the value set.+    --+    -- Default: @false@+    autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,+    -- | The Amazon EC2 Availability Zone that the instance is created in.+    --+    -- Default: A random, system-chosen Availability Zone in the endpoint\'s+    -- Amazon Web Services Region.+    --+    -- Example: @us-east-1d@+    availabilityZone :: Prelude.Maybe Prelude.Text,+    -- | A value that indicates whether to copy tags from the DB instance to+    -- snapshots of the DB instance. By default, tags are not copied.+    copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,+    -- | A value that indicates whether to enable Performance Insights for the DB+    -- Instance. For more information, see+    -- <https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html Using Amazon Performance Insights>.+    enablePerformanceInsights :: Prelude.Maybe Prelude.Bool,+    -- | The KMS key identifier for encryption of Performance Insights data.+    --+    -- The KMS key identifier is the key ARN, key ID, alias ARN, or alias name+    -- for the KMS key.+    --+    -- If you do not specify a value for PerformanceInsightsKMSKeyId, then+    -- Amazon DocumentDB uses your default KMS key. There is a default KMS key+    -- for your Amazon Web Services account. Your Amazon Web Services account+    -- has a different default KMS key for each Amazon Web Services region.+    performanceInsightsKMSKeyId :: Prelude.Maybe Prelude.Text,+    -- | The time range each week during which system maintenance can occur, in+    -- Universal Coordinated Time (UTC).+    --+    -- Format: @ddd:hh24:mi-ddd:hh24:mi@+    --+    -- The default is a 30-minute window selected at random from an 8-hour+    -- block of time for each Amazon Web Services Region, occurring on a random+    -- day of the week.+    --+    -- Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun+    --+    -- Constraints: Minimum 30-minute window.+    preferredMaintenanceWindow :: Prelude.Maybe Prelude.Text,+    -- | A value that specifies the order in which an Amazon DocumentDB replica+    -- is promoted to the primary instance after a failure of the existing+    -- primary instance.+    --+    -- Default: 1+    --+    -- Valid values: 0-15+    promotionTier :: Prelude.Maybe Prelude.Int,+    -- | The tags to be assigned to the instance. You can assign up to 10 tags to+    -- an instance.+    tags :: Prelude.Maybe [Tag],+    -- | The instance identifier. This parameter is stored as a lowercase string.+    --+    -- Constraints:+    --+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens.+    --+    -- -   The first character must be a letter.+    --+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.+    --+    -- Example: @mydbinstance@+    dbInstanceIdentifier :: Prelude.Text,+    -- | The compute and memory capacity of the instance; for example,+    -- @db.r5.large@.+    dbInstanceClass :: Prelude.Text,+    -- | The name of the database engine to be used for this instance.+    --+    -- Valid value: @docdb@+    engine :: Prelude.Text,+    -- | The identifier of the cluster that the instance will belong to.+    dbClusterIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDBInstance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDBInstance_autoMinorVersionUpgrade' - This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB+-- does not perform minor version upgrades regardless of the value set.+--+-- Default: @false@+--+-- 'availabilityZone', 'createDBInstance_availabilityZone' - The Amazon EC2 Availability Zone that the instance is created in.+--+-- Default: A random, system-chosen Availability Zone in the endpoint\'s+-- Amazon Web Services Region.+--+-- Example: @us-east-1d@+--+-- 'copyTagsToSnapshot', 'createDBInstance_copyTagsToSnapshot' - A value that indicates whether to copy tags from the DB instance to+-- snapshots of the DB instance. By default, tags are not copied.+--+-- 'enablePerformanceInsights', 'createDBInstance_enablePerformanceInsights' - A value that indicates whether to enable Performance Insights for the DB+-- Instance. For more information, see+-- <https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html Using Amazon Performance Insights>.+--+-- 'performanceInsightsKMSKeyId', 'createDBInstance_performanceInsightsKMSKeyId' - The KMS key identifier for encryption of Performance Insights data.+--+-- The KMS key identifier is the key ARN, key ID, alias ARN, or alias name+-- for the KMS key.+--+-- If you do not specify a value for PerformanceInsightsKMSKeyId, then+-- Amazon DocumentDB uses your default KMS key. There is a default KMS key+-- for your Amazon Web Services account. Your Amazon Web Services account+-- has a different default KMS key for each Amazon Web Services region.+--+-- 'preferredMaintenanceWindow', 'createDBInstance_preferredMaintenanceWindow' - The time range each week during which system maintenance can occur, in+-- Universal Coordinated Time (UTC).+--+-- Format: @ddd:hh24:mi-ddd:hh24:mi@+--+-- The default is a 30-minute window selected at random from an 8-hour+-- block of time for each Amazon Web Services Region, occurring on a random+-- day of the week.+--+-- Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun+--+-- Constraints: Minimum 30-minute window.+--+-- 'promotionTier', 'createDBInstance_promotionTier' - A value that specifies the order in which an Amazon DocumentDB replica+-- is promoted to the primary instance after a failure of the existing+-- primary instance.+--+-- Default: 1+--+-- Valid values: 0-15+--+-- 'tags', 'createDBInstance_tags' - The tags to be assigned to the instance. You can assign up to 10 tags to+-- an instance.+--+-- 'dbInstanceIdentifier', 'createDBInstance_dbInstanceIdentifier' - The instance identifier. This parameter is stored as a lowercase string.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @mydbinstance@+--+-- 'dbInstanceClass', 'createDBInstance_dbInstanceClass' - The compute and memory capacity of the instance; for example,+-- @db.r5.large@.+--+-- 'engine', 'createDBInstance_engine' - The name of the database engine to be used for this instance.+--+-- Valid value: @docdb@+--+-- 'dbClusterIdentifier', 'createDBInstance_dbClusterIdentifier' - The identifier of the cluster that the instance will belong to.+newCreateDBInstance ::+  -- | 'dbInstanceIdentifier'+  Prelude.Text ->+  -- | 'dbInstanceClass'+  Prelude.Text ->+  -- | 'engine'+  Prelude.Text ->+  -- | 'dbClusterIdentifier'+  Prelude.Text ->+  CreateDBInstance+newCreateDBInstance+  pDBInstanceIdentifier_+  pDBInstanceClass_+  pEngine_+  pDBClusterIdentifier_ =+    CreateDBInstance'+      { autoMinorVersionUpgrade =+          Prelude.Nothing,+        availabilityZone = Prelude.Nothing,+        copyTagsToSnapshot = Prelude.Nothing,+        enablePerformanceInsights = Prelude.Nothing,+        performanceInsightsKMSKeyId = Prelude.Nothing,+        preferredMaintenanceWindow = Prelude.Nothing,+        promotionTier = Prelude.Nothing,+        tags = Prelude.Nothing,+        dbInstanceIdentifier = pDBInstanceIdentifier_,+        dbInstanceClass = pDBInstanceClass_,+        engine = pEngine_,+        dbClusterIdentifier = pDBClusterIdentifier_+      }++-- | This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB+-- does not perform minor version upgrades regardless of the value set.+--+-- Default: @false@+createDBInstance_autoMinorVersionUpgrade :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)+createDBInstance_autoMinorVersionUpgrade = Lens.lens (\CreateDBInstance' {autoMinorVersionUpgrade} -> autoMinorVersionUpgrade) (\s@CreateDBInstance' {} a -> s {autoMinorVersionUpgrade = a} :: CreateDBInstance)++-- | The Amazon EC2 Availability Zone that the instance is created in.+--+-- Default: A random, system-chosen Availability Zone in the endpoint\'s+-- Amazon Web Services Region.+--+-- Example: @us-east-1d@+createDBInstance_availabilityZone :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)+createDBInstance_availabilityZone = Lens.lens (\CreateDBInstance' {availabilityZone} -> availabilityZone) (\s@CreateDBInstance' {} a -> s {availabilityZone = a} :: CreateDBInstance)++-- | A value that indicates whether to copy tags from the DB instance to+-- snapshots of the DB instance. By default, tags are not copied.+createDBInstance_copyTagsToSnapshot :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)+createDBInstance_copyTagsToSnapshot = Lens.lens (\CreateDBInstance' {copyTagsToSnapshot} -> copyTagsToSnapshot) (\s@CreateDBInstance' {} a -> s {copyTagsToSnapshot = a} :: CreateDBInstance)++-- | A value that indicates whether to enable Performance Insights for the DB+-- Instance. For more information, see+-- <https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html Using Amazon Performance Insights>.+createDBInstance_enablePerformanceInsights :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)+createDBInstance_enablePerformanceInsights = Lens.lens (\CreateDBInstance' {enablePerformanceInsights} -> enablePerformanceInsights) (\s@CreateDBInstance' {} a -> s {enablePerformanceInsights = a} :: CreateDBInstance)++-- | The KMS key identifier for encryption of Performance Insights data.+--+-- The KMS key identifier is the key ARN, key ID, alias ARN, or alias name+-- for the KMS key.+--+-- If you do not specify a value for PerformanceInsightsKMSKeyId, then+-- Amazon DocumentDB uses your default KMS key. There is a default KMS key+-- for your Amazon Web Services account. Your Amazon Web Services account+-- has a different default KMS key for each Amazon Web Services region.+createDBInstance_performanceInsightsKMSKeyId :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)+createDBInstance_performanceInsightsKMSKeyId = Lens.lens (\CreateDBInstance' {performanceInsightsKMSKeyId} -> performanceInsightsKMSKeyId) (\s@CreateDBInstance' {} a -> s {performanceInsightsKMSKeyId = a} :: CreateDBInstance)++-- | The time range each week during which system maintenance can occur, in+-- Universal Coordinated Time (UTC).+--+-- Format: @ddd:hh24:mi-ddd:hh24:mi@+--+-- The default is a 30-minute window selected at random from an 8-hour+-- block of time for each Amazon Web Services Region, occurring on a random+-- day of the week.+--+-- Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun+--+-- Constraints: Minimum 30-minute window.+createDBInstance_preferredMaintenanceWindow :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)+createDBInstance_preferredMaintenanceWindow = Lens.lens (\CreateDBInstance' {preferredMaintenanceWindow} -> preferredMaintenanceWindow) (\s@CreateDBInstance' {} a -> s {preferredMaintenanceWindow = a} :: CreateDBInstance)++-- | A value that specifies the order in which an Amazon DocumentDB replica+-- is promoted to the primary instance after a failure of the existing+-- primary instance.+--+-- Default: 1+--+-- Valid values: 0-15+createDBInstance_promotionTier :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Int)+createDBInstance_promotionTier = Lens.lens (\CreateDBInstance' {promotionTier} -> promotionTier) (\s@CreateDBInstance' {} a -> s {promotionTier = a} :: CreateDBInstance)++-- | The tags to be assigned to the instance. You can assign up to 10 tags to+-- an instance.+createDBInstance_tags :: Lens.Lens' CreateDBInstance (Prelude.Maybe [Tag])+createDBInstance_tags = Lens.lens (\CreateDBInstance' {tags} -> tags) (\s@CreateDBInstance' {} a -> s {tags = a} :: CreateDBInstance) Prelude.. Lens.mapping Lens.coerced++-- | The instance identifier. This parameter is stored as a lowercase string.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @mydbinstance@+createDBInstance_dbInstanceIdentifier :: Lens.Lens' CreateDBInstance Prelude.Text+createDBInstance_dbInstanceIdentifier = Lens.lens (\CreateDBInstance' {dbInstanceIdentifier} -> dbInstanceIdentifier) (\s@CreateDBInstance' {} a -> s {dbInstanceIdentifier = a} :: CreateDBInstance)++-- | The compute and memory capacity of the instance; for example,+-- @db.r5.large@.+createDBInstance_dbInstanceClass :: Lens.Lens' CreateDBInstance Prelude.Text+createDBInstance_dbInstanceClass = Lens.lens (\CreateDBInstance' {dbInstanceClass} -> dbInstanceClass) (\s@CreateDBInstance' {} a -> s {dbInstanceClass = a} :: CreateDBInstance)++-- | The name of the database engine to be used for this instance.+--+-- Valid value: @docdb@+createDBInstance_engine :: Lens.Lens' CreateDBInstance Prelude.Text+createDBInstance_engine = Lens.lens (\CreateDBInstance' {engine} -> engine) (\s@CreateDBInstance' {} a -> s {engine = a} :: CreateDBInstance)++-- | The identifier of the cluster that the instance will belong to.+createDBInstance_dbClusterIdentifier :: Lens.Lens' CreateDBInstance Prelude.Text+createDBInstance_dbClusterIdentifier = Lens.lens (\CreateDBInstance' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@CreateDBInstance' {} a -> s {dbClusterIdentifier = a} :: CreateDBInstance)++instance Core.AWSRequest CreateDBInstance where+  type+    AWSResponse CreateDBInstance =+      CreateDBInstanceResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "CreateDBInstanceResult"+      ( \s h x ->+          CreateDBInstanceResponse'+            Prelude.<$> (x Data..@? "DBInstance")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDBInstance where+  hashWithSalt _salt CreateDBInstance' {..} =+    _salt+      `Prelude.hashWithSalt` autoMinorVersionUpgrade+      `Prelude.hashWithSalt` availabilityZone+      `Prelude.hashWithSalt` copyTagsToSnapshot+      `Prelude.hashWithSalt` enablePerformanceInsights+      `Prelude.hashWithSalt` performanceInsightsKMSKeyId+      `Prelude.hashWithSalt` preferredMaintenanceWindow+      `Prelude.hashWithSalt` promotionTier+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` dbInstanceIdentifier+      `Prelude.hashWithSalt` dbInstanceClass+      `Prelude.hashWithSalt` engine+      `Prelude.hashWithSalt` dbClusterIdentifier++instance Prelude.NFData CreateDBInstance where+  rnf CreateDBInstance' {..} =+    Prelude.rnf autoMinorVersionUpgrade+      `Prelude.seq` Prelude.rnf availabilityZone+      `Prelude.seq` Prelude.rnf copyTagsToSnapshot+      `Prelude.seq` Prelude.rnf enablePerformanceInsights+      `Prelude.seq` Prelude.rnf performanceInsightsKMSKeyId+      `Prelude.seq` Prelude.rnf preferredMaintenanceWindow+      `Prelude.seq` Prelude.rnf promotionTier+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf dbInstanceIdentifier+      `Prelude.seq` Prelude.rnf dbInstanceClass+      `Prelude.seq` Prelude.rnf engine+      `Prelude.seq` Prelude.rnf dbClusterIdentifier++instance Data.ToHeaders CreateDBInstance where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath CreateDBInstance where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDBInstance where+  toQuery CreateDBInstance' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("CreateDBInstance" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "AutoMinorVersionUpgrade"+          Data.=: autoMinorVersionUpgrade,+        "AvailabilityZone" Data.=: availabilityZone,+        "CopyTagsToSnapshot" Data.=: copyTagsToSnapshot,+        "EnablePerformanceInsights"+          Data.=: enablePerformanceInsights,+        "PerformanceInsightsKMSKeyId"+          Data.=: performanceInsightsKMSKeyId,+        "PreferredMaintenanceWindow"+          Data.=: preferredMaintenanceWindow,+        "PromotionTier" Data.=: promotionTier,+        "Tags"+          Data.=: Data.toQuery+            (Data.toQueryList "Tag" Prelude.<$> tags),+        "DBInstanceIdentifier" Data.=: dbInstanceIdentifier,+        "DBInstanceClass" Data.=: dbInstanceClass,+        "Engine" Data.=: engine,+        "DBClusterIdentifier" Data.=: dbClusterIdentifier+      ]++-- | /See:/ 'newCreateDBInstanceResponse' smart constructor.+data CreateDBInstanceResponse = CreateDBInstanceResponse'+  { dbInstance :: Prelude.Maybe DBInstance,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDBInstanceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbInstance', 'createDBInstanceResponse_dbInstance' - Undocumented member.+--+-- 'httpStatus', 'createDBInstanceResponse_httpStatus' - The response's http status code.+newCreateDBInstanceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDBInstanceResponse+newCreateDBInstanceResponse pHttpStatus_ =+  CreateDBInstanceResponse'+    { dbInstance =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+createDBInstanceResponse_dbInstance :: Lens.Lens' CreateDBInstanceResponse (Prelude.Maybe DBInstance)+createDBInstanceResponse_dbInstance = Lens.lens (\CreateDBInstanceResponse' {dbInstance} -> dbInstance) (\s@CreateDBInstanceResponse' {} a -> s {dbInstance = a} :: CreateDBInstanceResponse)++-- | The response's http status code.+createDBInstanceResponse_httpStatus :: Lens.Lens' CreateDBInstanceResponse Prelude.Int+createDBInstanceResponse_httpStatus = Lens.lens (\CreateDBInstanceResponse' {httpStatus} -> httpStatus) (\s@CreateDBInstanceResponse' {} a -> s {httpStatus = a} :: CreateDBInstanceResponse)++instance Prelude.NFData CreateDBInstanceResponse where+  rnf CreateDBInstanceResponse' {..} =+    Prelude.rnf dbInstance+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/CreateDBSubnetGroup.hs view
@@ -0,0 +1,230 @@+{-# 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.DocumentDB.CreateDBSubnetGroup+-- 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 subnet group. subnet groups must contain at least one+-- subnet in at least two Availability Zones in the Amazon Web Services+-- Region.+module Amazonka.DocumentDB.CreateDBSubnetGroup+  ( -- * Creating a Request+    CreateDBSubnetGroup (..),+    newCreateDBSubnetGroup,++    -- * Request Lenses+    createDBSubnetGroup_tags,+    createDBSubnetGroup_dbSubnetGroupName,+    createDBSubnetGroup_dbSubnetGroupDescription,+    createDBSubnetGroup_subnetIds,++    -- * Destructuring the Response+    CreateDBSubnetGroupResponse (..),+    newCreateDBSubnetGroupResponse,++    -- * Response Lenses+    createDBSubnetGroupResponse_dbSubnetGroup,+    createDBSubnetGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to CreateDBSubnetGroup.+--+-- /See:/ 'newCreateDBSubnetGroup' smart constructor.+data CreateDBSubnetGroup = CreateDBSubnetGroup'+  { -- | The tags to be assigned to the subnet group.+    tags :: Prelude.Maybe [Tag],+    -- | The name for the subnet group. This value is stored as a lowercase+    -- string.+    --+    -- Constraints: Must contain no more than 255 letters, numbers, periods,+    -- underscores, spaces, or hyphens. Must not be default.+    --+    -- Example: @mySubnetgroup@+    dbSubnetGroupName :: Prelude.Text,+    -- | The description for the subnet group.+    dbSubnetGroupDescription :: Prelude.Text,+    -- | The Amazon EC2 subnet IDs for the subnet group.+    subnetIds :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDBSubnetGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDBSubnetGroup_tags' - The tags to be assigned to the subnet group.+--+-- 'dbSubnetGroupName', 'createDBSubnetGroup_dbSubnetGroupName' - The name for the subnet group. This value is stored as a lowercase+-- string.+--+-- Constraints: Must contain no more than 255 letters, numbers, periods,+-- underscores, spaces, or hyphens. Must not be default.+--+-- Example: @mySubnetgroup@+--+-- 'dbSubnetGroupDescription', 'createDBSubnetGroup_dbSubnetGroupDescription' - The description for the subnet group.+--+-- 'subnetIds', 'createDBSubnetGroup_subnetIds' - The Amazon EC2 subnet IDs for the subnet group.+newCreateDBSubnetGroup ::+  -- | 'dbSubnetGroupName'+  Prelude.Text ->+  -- | 'dbSubnetGroupDescription'+  Prelude.Text ->+  CreateDBSubnetGroup+newCreateDBSubnetGroup+  pDBSubnetGroupName_+  pDBSubnetGroupDescription_ =+    CreateDBSubnetGroup'+      { tags = Prelude.Nothing,+        dbSubnetGroupName = pDBSubnetGroupName_,+        dbSubnetGroupDescription =+          pDBSubnetGroupDescription_,+        subnetIds = Prelude.mempty+      }++-- | The tags to be assigned to the subnet group.+createDBSubnetGroup_tags :: Lens.Lens' CreateDBSubnetGroup (Prelude.Maybe [Tag])+createDBSubnetGroup_tags = Lens.lens (\CreateDBSubnetGroup' {tags} -> tags) (\s@CreateDBSubnetGroup' {} a -> s {tags = a} :: CreateDBSubnetGroup) Prelude.. Lens.mapping Lens.coerced++-- | The name for the subnet group. This value is stored as a lowercase+-- string.+--+-- Constraints: Must contain no more than 255 letters, numbers, periods,+-- underscores, spaces, or hyphens. Must not be default.+--+-- Example: @mySubnetgroup@+createDBSubnetGroup_dbSubnetGroupName :: Lens.Lens' CreateDBSubnetGroup Prelude.Text+createDBSubnetGroup_dbSubnetGroupName = Lens.lens (\CreateDBSubnetGroup' {dbSubnetGroupName} -> dbSubnetGroupName) (\s@CreateDBSubnetGroup' {} a -> s {dbSubnetGroupName = a} :: CreateDBSubnetGroup)++-- | The description for the subnet group.+createDBSubnetGroup_dbSubnetGroupDescription :: Lens.Lens' CreateDBSubnetGroup Prelude.Text+createDBSubnetGroup_dbSubnetGroupDescription = Lens.lens (\CreateDBSubnetGroup' {dbSubnetGroupDescription} -> dbSubnetGroupDescription) (\s@CreateDBSubnetGroup' {} a -> s {dbSubnetGroupDescription = a} :: CreateDBSubnetGroup)++-- | The Amazon EC2 subnet IDs for the subnet group.+createDBSubnetGroup_subnetIds :: Lens.Lens' CreateDBSubnetGroup [Prelude.Text]+createDBSubnetGroup_subnetIds = Lens.lens (\CreateDBSubnetGroup' {subnetIds} -> subnetIds) (\s@CreateDBSubnetGroup' {} a -> s {subnetIds = a} :: CreateDBSubnetGroup) Prelude.. Lens.coerced++instance Core.AWSRequest CreateDBSubnetGroup where+  type+    AWSResponse CreateDBSubnetGroup =+      CreateDBSubnetGroupResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "CreateDBSubnetGroupResult"+      ( \s h x ->+          CreateDBSubnetGroupResponse'+            Prelude.<$> (x Data..@? "DBSubnetGroup")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDBSubnetGroup where+  hashWithSalt _salt CreateDBSubnetGroup' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` dbSubnetGroupName+      `Prelude.hashWithSalt` dbSubnetGroupDescription+      `Prelude.hashWithSalt` subnetIds++instance Prelude.NFData CreateDBSubnetGroup where+  rnf CreateDBSubnetGroup' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf dbSubnetGroupName+      `Prelude.seq` Prelude.rnf dbSubnetGroupDescription+      `Prelude.seq` Prelude.rnf subnetIds++instance Data.ToHeaders CreateDBSubnetGroup where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath CreateDBSubnetGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDBSubnetGroup where+  toQuery CreateDBSubnetGroup' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("CreateDBSubnetGroup" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Tags"+          Data.=: Data.toQuery+            (Data.toQueryList "Tag" Prelude.<$> tags),+        "DBSubnetGroupName" Data.=: dbSubnetGroupName,+        "DBSubnetGroupDescription"+          Data.=: dbSubnetGroupDescription,+        "SubnetIds"+          Data.=: Data.toQueryList "SubnetIdentifier" subnetIds+      ]++-- | /See:/ 'newCreateDBSubnetGroupResponse' smart constructor.+data CreateDBSubnetGroupResponse = CreateDBSubnetGroupResponse'+  { dbSubnetGroup :: Prelude.Maybe DBSubnetGroup,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDBSubnetGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbSubnetGroup', 'createDBSubnetGroupResponse_dbSubnetGroup' - Undocumented member.+--+-- 'httpStatus', 'createDBSubnetGroupResponse_httpStatus' - The response's http status code.+newCreateDBSubnetGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDBSubnetGroupResponse+newCreateDBSubnetGroupResponse pHttpStatus_ =+  CreateDBSubnetGroupResponse'+    { dbSubnetGroup =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+createDBSubnetGroupResponse_dbSubnetGroup :: Lens.Lens' CreateDBSubnetGroupResponse (Prelude.Maybe DBSubnetGroup)+createDBSubnetGroupResponse_dbSubnetGroup = Lens.lens (\CreateDBSubnetGroupResponse' {dbSubnetGroup} -> dbSubnetGroup) (\s@CreateDBSubnetGroupResponse' {} a -> s {dbSubnetGroup = a} :: CreateDBSubnetGroupResponse)++-- | The response's http status code.+createDBSubnetGroupResponse_httpStatus :: Lens.Lens' CreateDBSubnetGroupResponse Prelude.Int+createDBSubnetGroupResponse_httpStatus = Lens.lens (\CreateDBSubnetGroupResponse' {httpStatus} -> httpStatus) (\s@CreateDBSubnetGroupResponse' {} a -> s {httpStatus = a} :: CreateDBSubnetGroupResponse)++instance Prelude.NFData CreateDBSubnetGroupResponse where+  rnf CreateDBSubnetGroupResponse' {..} =+    Prelude.rnf dbSubnetGroup+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/CreateEventSubscription.hs view
@@ -0,0 +1,373 @@+{-# 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.DocumentDB.CreateEventSubscription+-- 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 Amazon DocumentDB event notification subscription. This+-- action requires a topic Amazon Resource Name (ARN) created by using the+-- Amazon DocumentDB console, the Amazon SNS console, or the Amazon SNS+-- API. To obtain an ARN with Amazon SNS, you must create a topic in Amazon+-- SNS and subscribe to the topic. The ARN is displayed in the Amazon SNS+-- console.+--+-- You can specify the type of source (@SourceType@) that you want to be+-- notified of. You can also provide a list of Amazon DocumentDB sources+-- (@SourceIds@) that trigger the events, and you can provide a list of+-- event categories (@EventCategories@) for events that you want to be+-- notified of. For example, you can specify @SourceType = db-instance@,+-- @SourceIds = mydbinstance1, mydbinstance2@ and+-- @EventCategories = Availability, Backup@.+--+-- If you specify both the @SourceType@ and @SourceIds@ (such as+-- @SourceType = db-instance@ and @SourceIdentifier = myDBInstance1@), you+-- are notified of all the @db-instance@ events for the specified source.+-- If you specify a @SourceType@ but do not specify a @SourceIdentifier@,+-- you receive notice of the events for that source type for all your+-- Amazon DocumentDB sources. If you do not specify either the @SourceType@+-- or the @SourceIdentifier@, you are notified of events generated from all+-- Amazon DocumentDB sources belonging to your customer account.+module Amazonka.DocumentDB.CreateEventSubscription+  ( -- * Creating a Request+    CreateEventSubscription (..),+    newCreateEventSubscription,++    -- * Request Lenses+    createEventSubscription_enabled,+    createEventSubscription_eventCategories,+    createEventSubscription_sourceIds,+    createEventSubscription_sourceType,+    createEventSubscription_tags,+    createEventSubscription_subscriptionName,+    createEventSubscription_snsTopicArn,++    -- * Destructuring the Response+    CreateEventSubscriptionResponse (..),+    newCreateEventSubscriptionResponse,++    -- * Response Lenses+    createEventSubscriptionResponse_eventSubscription,+    createEventSubscriptionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to CreateEventSubscription.+--+-- /See:/ 'newCreateEventSubscription' smart constructor.+data CreateEventSubscription = CreateEventSubscription'+  { -- | A Boolean value; set to @true@ to activate the subscription, set to+    -- @false@ to create the subscription but not active it.+    enabled :: Prelude.Maybe Prelude.Bool,+    -- | A list of event categories for a @SourceType@ that you want to subscribe+    -- to.+    eventCategories :: Prelude.Maybe [Prelude.Text],+    -- | The list of identifiers of the event sources for which events are+    -- returned. If not specified, then all sources are included in the+    -- response. An identifier must begin with a letter and must contain only+    -- ASCII letters, digits, and hyphens; it can\'t end with a hyphen or+    -- contain two consecutive hyphens.+    --+    -- Constraints:+    --+    -- -   If @SourceIds@ are provided, @SourceType@ must also be provided.+    --+    -- -   If the source type is an instance, a @DBInstanceIdentifier@ must be+    --     provided.+    --+    -- -   If the source type is a security group, a @DBSecurityGroupName@ must+    --     be provided.+    --+    -- -   If the source type is a parameter group, a @DBParameterGroupName@+    --     must be provided.+    --+    -- -   If the source type is a snapshot, a @DBSnapshotIdentifier@ must be+    --     provided.+    sourceIds :: Prelude.Maybe [Prelude.Text],+    -- | The type of source that is generating the events. For example, if you+    -- want to be notified of events generated by an instance, you would set+    -- this parameter to @db-instance@. If this value is not specified, all+    -- events are returned.+    --+    -- Valid values: @db-instance@, @db-cluster@, @db-parameter-group@,+    -- @db-security-group@, @db-cluster-snapshot@+    sourceType :: Prelude.Maybe Prelude.Text,+    -- | The tags to be assigned to the event subscription.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the subscription.+    --+    -- Constraints: The name must be fewer than 255 characters.+    subscriptionName :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the SNS topic created for event+    -- notification. Amazon SNS creates the ARN when you create a topic and+    -- subscribe to it.+    snsTopicArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEventSubscription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'enabled', 'createEventSubscription_enabled' - A Boolean value; set to @true@ to activate the subscription, set to+-- @false@ to create the subscription but not active it.+--+-- 'eventCategories', 'createEventSubscription_eventCategories' - A list of event categories for a @SourceType@ that you want to subscribe+-- to.+--+-- 'sourceIds', 'createEventSubscription_sourceIds' - The list of identifiers of the event sources for which events are+-- returned. If not specified, then all sources are included in the+-- response. An identifier must begin with a letter and must contain only+-- ASCII letters, digits, and hyphens; it can\'t end with a hyphen or+-- contain two consecutive hyphens.+--+-- Constraints:+--+-- -   If @SourceIds@ are provided, @SourceType@ must also be provided.+--+-- -   If the source type is an instance, a @DBInstanceIdentifier@ must be+--     provided.+--+-- -   If the source type is a security group, a @DBSecurityGroupName@ must+--     be provided.+--+-- -   If the source type is a parameter group, a @DBParameterGroupName@+--     must be provided.+--+-- -   If the source type is a snapshot, a @DBSnapshotIdentifier@ must be+--     provided.+--+-- 'sourceType', 'createEventSubscription_sourceType' - The type of source that is generating the events. For example, if you+-- want to be notified of events generated by an instance, you would set+-- this parameter to @db-instance@. If this value is not specified, all+-- events are returned.+--+-- Valid values: @db-instance@, @db-cluster@, @db-parameter-group@,+-- @db-security-group@, @db-cluster-snapshot@+--+-- 'tags', 'createEventSubscription_tags' - The tags to be assigned to the event subscription.+--+-- 'subscriptionName', 'createEventSubscription_subscriptionName' - The name of the subscription.+--+-- Constraints: The name must be fewer than 255 characters.+--+-- 'snsTopicArn', 'createEventSubscription_snsTopicArn' - The Amazon Resource Name (ARN) of the SNS topic created for event+-- notification. Amazon SNS creates the ARN when you create a topic and+-- subscribe to it.+newCreateEventSubscription ::+  -- | 'subscriptionName'+  Prelude.Text ->+  -- | 'snsTopicArn'+  Prelude.Text ->+  CreateEventSubscription+newCreateEventSubscription+  pSubscriptionName_+  pSnsTopicArn_ =+    CreateEventSubscription'+      { enabled = Prelude.Nothing,+        eventCategories = Prelude.Nothing,+        sourceIds = Prelude.Nothing,+        sourceType = Prelude.Nothing,+        tags = Prelude.Nothing,+        subscriptionName = pSubscriptionName_,+        snsTopicArn = pSnsTopicArn_+      }++-- | A Boolean value; set to @true@ to activate the subscription, set to+-- @false@ to create the subscription but not active it.+createEventSubscription_enabled :: Lens.Lens' CreateEventSubscription (Prelude.Maybe Prelude.Bool)+createEventSubscription_enabled = Lens.lens (\CreateEventSubscription' {enabled} -> enabled) (\s@CreateEventSubscription' {} a -> s {enabled = a} :: CreateEventSubscription)++-- | A list of event categories for a @SourceType@ that you want to subscribe+-- to.+createEventSubscription_eventCategories :: Lens.Lens' CreateEventSubscription (Prelude.Maybe [Prelude.Text])+createEventSubscription_eventCategories = Lens.lens (\CreateEventSubscription' {eventCategories} -> eventCategories) (\s@CreateEventSubscription' {} a -> s {eventCategories = a} :: CreateEventSubscription) Prelude.. Lens.mapping Lens.coerced++-- | The list of identifiers of the event sources for which events are+-- returned. If not specified, then all sources are included in the+-- response. An identifier must begin with a letter and must contain only+-- ASCII letters, digits, and hyphens; it can\'t end with a hyphen or+-- contain two consecutive hyphens.+--+-- Constraints:+--+-- -   If @SourceIds@ are provided, @SourceType@ must also be provided.+--+-- -   If the source type is an instance, a @DBInstanceIdentifier@ must be+--     provided.+--+-- -   If the source type is a security group, a @DBSecurityGroupName@ must+--     be provided.+--+-- -   If the source type is a parameter group, a @DBParameterGroupName@+--     must be provided.+--+-- -   If the source type is a snapshot, a @DBSnapshotIdentifier@ must be+--     provided.+createEventSubscription_sourceIds :: Lens.Lens' CreateEventSubscription (Prelude.Maybe [Prelude.Text])+createEventSubscription_sourceIds = Lens.lens (\CreateEventSubscription' {sourceIds} -> sourceIds) (\s@CreateEventSubscription' {} a -> s {sourceIds = a} :: CreateEventSubscription) Prelude.. Lens.mapping Lens.coerced++-- | The type of source that is generating the events. For example, if you+-- want to be notified of events generated by an instance, you would set+-- this parameter to @db-instance@. If this value is not specified, all+-- events are returned.+--+-- Valid values: @db-instance@, @db-cluster@, @db-parameter-group@,+-- @db-security-group@, @db-cluster-snapshot@+createEventSubscription_sourceType :: Lens.Lens' CreateEventSubscription (Prelude.Maybe Prelude.Text)+createEventSubscription_sourceType = Lens.lens (\CreateEventSubscription' {sourceType} -> sourceType) (\s@CreateEventSubscription' {} a -> s {sourceType = a} :: CreateEventSubscription)++-- | The tags to be assigned to the event subscription.+createEventSubscription_tags :: Lens.Lens' CreateEventSubscription (Prelude.Maybe [Tag])+createEventSubscription_tags = Lens.lens (\CreateEventSubscription' {tags} -> tags) (\s@CreateEventSubscription' {} a -> s {tags = a} :: CreateEventSubscription) Prelude.. Lens.mapping Lens.coerced++-- | The name of the subscription.+--+-- Constraints: The name must be fewer than 255 characters.+createEventSubscription_subscriptionName :: Lens.Lens' CreateEventSubscription Prelude.Text+createEventSubscription_subscriptionName = Lens.lens (\CreateEventSubscription' {subscriptionName} -> subscriptionName) (\s@CreateEventSubscription' {} a -> s {subscriptionName = a} :: CreateEventSubscription)++-- | The Amazon Resource Name (ARN) of the SNS topic created for event+-- notification. Amazon SNS creates the ARN when you create a topic and+-- subscribe to it.+createEventSubscription_snsTopicArn :: Lens.Lens' CreateEventSubscription Prelude.Text+createEventSubscription_snsTopicArn = Lens.lens (\CreateEventSubscription' {snsTopicArn} -> snsTopicArn) (\s@CreateEventSubscription' {} a -> s {snsTopicArn = a} :: CreateEventSubscription)++instance Core.AWSRequest CreateEventSubscription where+  type+    AWSResponse CreateEventSubscription =+      CreateEventSubscriptionResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "CreateEventSubscriptionResult"+      ( \s h x ->+          CreateEventSubscriptionResponse'+            Prelude.<$> (x Data..@? "EventSubscription")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateEventSubscription where+  hashWithSalt _salt CreateEventSubscription' {..} =+    _salt+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` eventCategories+      `Prelude.hashWithSalt` sourceIds+      `Prelude.hashWithSalt` sourceType+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` subscriptionName+      `Prelude.hashWithSalt` snsTopicArn++instance Prelude.NFData CreateEventSubscription where+  rnf CreateEventSubscription' {..} =+    Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf eventCategories+      `Prelude.seq` Prelude.rnf sourceIds+      `Prelude.seq` Prelude.rnf sourceType+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf subscriptionName+      `Prelude.seq` Prelude.rnf snsTopicArn++instance Data.ToHeaders CreateEventSubscription where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath CreateEventSubscription where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateEventSubscription where+  toQuery CreateEventSubscription' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("CreateEventSubscription" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Enabled" Data.=: enabled,+        "EventCategories"+          Data.=: Data.toQuery+            ( Data.toQueryList "EventCategory"+                Prelude.<$> eventCategories+            ),+        "SourceIds"+          Data.=: Data.toQuery+            (Data.toQueryList "SourceId" Prelude.<$> sourceIds),+        "SourceType" Data.=: sourceType,+        "Tags"+          Data.=: Data.toQuery+            (Data.toQueryList "Tag" Prelude.<$> tags),+        "SubscriptionName" Data.=: subscriptionName,+        "SnsTopicArn" Data.=: snsTopicArn+      ]++-- | /See:/ 'newCreateEventSubscriptionResponse' smart constructor.+data CreateEventSubscriptionResponse = CreateEventSubscriptionResponse'+  { eventSubscription :: Prelude.Maybe EventSubscription,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEventSubscriptionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventSubscription', 'createEventSubscriptionResponse_eventSubscription' - Undocumented member.+--+-- 'httpStatus', 'createEventSubscriptionResponse_httpStatus' - The response's http status code.+newCreateEventSubscriptionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateEventSubscriptionResponse+newCreateEventSubscriptionResponse pHttpStatus_ =+  CreateEventSubscriptionResponse'+    { eventSubscription =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+createEventSubscriptionResponse_eventSubscription :: Lens.Lens' CreateEventSubscriptionResponse (Prelude.Maybe EventSubscription)+createEventSubscriptionResponse_eventSubscription = Lens.lens (\CreateEventSubscriptionResponse' {eventSubscription} -> eventSubscription) (\s@CreateEventSubscriptionResponse' {} a -> s {eventSubscription = a} :: CreateEventSubscriptionResponse)++-- | The response's http status code.+createEventSubscriptionResponse_httpStatus :: Lens.Lens' CreateEventSubscriptionResponse Prelude.Int+createEventSubscriptionResponse_httpStatus = Lens.lens (\CreateEventSubscriptionResponse' {httpStatus} -> httpStatus) (\s@CreateEventSubscriptionResponse' {} a -> s {httpStatus = a} :: CreateEventSubscriptionResponse)++instance+  Prelude.NFData+    CreateEventSubscriptionResponse+  where+  rnf CreateEventSubscriptionResponse' {..} =+    Prelude.rnf eventSubscription+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/CreateGlobalCluster.hs view
@@ -0,0 +1,267 @@+{-# 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.DocumentDB.CreateGlobalCluster+-- 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 Amazon DocumentDB global cluster that can span multiple+-- multiple Amazon Web Services Regions. The global cluster contains one+-- primary cluster with read-write capability, and up-to give read-only+-- secondary clusters. Global clusters uses storage-based fast replication+-- across regions with latencies less than one second, using dedicated+-- infrastructure with no impact to your workload’s performance.+--+-- You can create a global cluster that is initially empty, and then add a+-- primary and a secondary to it. Or you can specify an existing cluster+-- during the create operation, and this cluster becomes the primary of the+-- global cluster.+--+-- This action only applies to Amazon DocumentDB clusters.+module Amazonka.DocumentDB.CreateGlobalCluster+  ( -- * Creating a Request+    CreateGlobalCluster (..),+    newCreateGlobalCluster,++    -- * Request Lenses+    createGlobalCluster_databaseName,+    createGlobalCluster_deletionProtection,+    createGlobalCluster_engine,+    createGlobalCluster_engineVersion,+    createGlobalCluster_sourceDBClusterIdentifier,+    createGlobalCluster_storageEncrypted,+    createGlobalCluster_globalClusterIdentifier,++    -- * Destructuring the Response+    CreateGlobalClusterResponse (..),+    newCreateGlobalClusterResponse,++    -- * Response Lenses+    createGlobalClusterResponse_globalCluster,+    createGlobalClusterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to CreateGlobalCluster.+--+-- /See:/ 'newCreateGlobalCluster' smart constructor.+data CreateGlobalCluster = CreateGlobalCluster'+  { -- | The name for your database of up to 64 alpha-numeric characters. If you+    -- do not provide a name, Amazon DocumentDB will not create a database in+    -- the global cluster you are creating.+    databaseName :: Prelude.Maybe Prelude.Text,+    -- | The deletion protection setting for the new global cluster. The global+    -- cluster can\'t be deleted when deletion protection is enabled.+    deletionProtection :: Prelude.Maybe Prelude.Bool,+    -- | The name of the database engine to be used for this cluster.+    engine :: Prelude.Maybe Prelude.Text,+    -- | The engine version of the global cluster.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) to use as the primary cluster of the+    -- global cluster. This parameter is optional.+    sourceDBClusterIdentifier :: Prelude.Maybe Prelude.Text,+    -- | The storage encryption setting for the new global cluster.+    storageEncrypted :: Prelude.Maybe Prelude.Bool,+    -- | The cluster identifier of the new global cluster.+    globalClusterIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateGlobalCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'databaseName', 'createGlobalCluster_databaseName' - The name for your database of up to 64 alpha-numeric characters. If you+-- do not provide a name, Amazon DocumentDB will not create a database in+-- the global cluster you are creating.+--+-- 'deletionProtection', 'createGlobalCluster_deletionProtection' - The deletion protection setting for the new global cluster. The global+-- cluster can\'t be deleted when deletion protection is enabled.+--+-- 'engine', 'createGlobalCluster_engine' - The name of the database engine to be used for this cluster.+--+-- 'engineVersion', 'createGlobalCluster_engineVersion' - The engine version of the global cluster.+--+-- 'sourceDBClusterIdentifier', 'createGlobalCluster_sourceDBClusterIdentifier' - The Amazon Resource Name (ARN) to use as the primary cluster of the+-- global cluster. This parameter is optional.+--+-- 'storageEncrypted', 'createGlobalCluster_storageEncrypted' - The storage encryption setting for the new global cluster.+--+-- 'globalClusterIdentifier', 'createGlobalCluster_globalClusterIdentifier' - The cluster identifier of the new global cluster.+newCreateGlobalCluster ::+  -- | 'globalClusterIdentifier'+  Prelude.Text ->+  CreateGlobalCluster+newCreateGlobalCluster pGlobalClusterIdentifier_ =+  CreateGlobalCluster'+    { databaseName =+        Prelude.Nothing,+      deletionProtection = Prelude.Nothing,+      engine = Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      sourceDBClusterIdentifier = Prelude.Nothing,+      storageEncrypted = Prelude.Nothing,+      globalClusterIdentifier = pGlobalClusterIdentifier_+    }++-- | The name for your database of up to 64 alpha-numeric characters. If you+-- do not provide a name, Amazon DocumentDB will not create a database in+-- the global cluster you are creating.+createGlobalCluster_databaseName :: Lens.Lens' CreateGlobalCluster (Prelude.Maybe Prelude.Text)+createGlobalCluster_databaseName = Lens.lens (\CreateGlobalCluster' {databaseName} -> databaseName) (\s@CreateGlobalCluster' {} a -> s {databaseName = a} :: CreateGlobalCluster)++-- | The deletion protection setting for the new global cluster. The global+-- cluster can\'t be deleted when deletion protection is enabled.+createGlobalCluster_deletionProtection :: Lens.Lens' CreateGlobalCluster (Prelude.Maybe Prelude.Bool)+createGlobalCluster_deletionProtection = Lens.lens (\CreateGlobalCluster' {deletionProtection} -> deletionProtection) (\s@CreateGlobalCluster' {} a -> s {deletionProtection = a} :: CreateGlobalCluster)++-- | The name of the database engine to be used for this cluster.+createGlobalCluster_engine :: Lens.Lens' CreateGlobalCluster (Prelude.Maybe Prelude.Text)+createGlobalCluster_engine = Lens.lens (\CreateGlobalCluster' {engine} -> engine) (\s@CreateGlobalCluster' {} a -> s {engine = a} :: CreateGlobalCluster)++-- | The engine version of the global cluster.+createGlobalCluster_engineVersion :: Lens.Lens' CreateGlobalCluster (Prelude.Maybe Prelude.Text)+createGlobalCluster_engineVersion = Lens.lens (\CreateGlobalCluster' {engineVersion} -> engineVersion) (\s@CreateGlobalCluster' {} a -> s {engineVersion = a} :: CreateGlobalCluster)++-- | The Amazon Resource Name (ARN) to use as the primary cluster of the+-- global cluster. This parameter is optional.+createGlobalCluster_sourceDBClusterIdentifier :: Lens.Lens' CreateGlobalCluster (Prelude.Maybe Prelude.Text)+createGlobalCluster_sourceDBClusterIdentifier = Lens.lens (\CreateGlobalCluster' {sourceDBClusterIdentifier} -> sourceDBClusterIdentifier) (\s@CreateGlobalCluster' {} a -> s {sourceDBClusterIdentifier = a} :: CreateGlobalCluster)++-- | The storage encryption setting for the new global cluster.+createGlobalCluster_storageEncrypted :: Lens.Lens' CreateGlobalCluster (Prelude.Maybe Prelude.Bool)+createGlobalCluster_storageEncrypted = Lens.lens (\CreateGlobalCluster' {storageEncrypted} -> storageEncrypted) (\s@CreateGlobalCluster' {} a -> s {storageEncrypted = a} :: CreateGlobalCluster)++-- | The cluster identifier of the new global cluster.+createGlobalCluster_globalClusterIdentifier :: Lens.Lens' CreateGlobalCluster Prelude.Text+createGlobalCluster_globalClusterIdentifier = Lens.lens (\CreateGlobalCluster' {globalClusterIdentifier} -> globalClusterIdentifier) (\s@CreateGlobalCluster' {} a -> s {globalClusterIdentifier = a} :: CreateGlobalCluster)++instance Core.AWSRequest CreateGlobalCluster where+  type+    AWSResponse CreateGlobalCluster =+      CreateGlobalClusterResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "CreateGlobalClusterResult"+      ( \s h x ->+          CreateGlobalClusterResponse'+            Prelude.<$> (x Data..@? "GlobalCluster")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateGlobalCluster where+  hashWithSalt _salt CreateGlobalCluster' {..} =+    _salt+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` deletionProtection+      `Prelude.hashWithSalt` engine+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` sourceDBClusterIdentifier+      `Prelude.hashWithSalt` storageEncrypted+      `Prelude.hashWithSalt` globalClusterIdentifier++instance Prelude.NFData CreateGlobalCluster where+  rnf CreateGlobalCluster' {..} =+    Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf deletionProtection+      `Prelude.seq` Prelude.rnf engine+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf sourceDBClusterIdentifier+      `Prelude.seq` Prelude.rnf storageEncrypted+      `Prelude.seq` Prelude.rnf globalClusterIdentifier++instance Data.ToHeaders CreateGlobalCluster where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath CreateGlobalCluster where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateGlobalCluster where+  toQuery CreateGlobalCluster' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("CreateGlobalCluster" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DatabaseName" Data.=: databaseName,+        "DeletionProtection" Data.=: deletionProtection,+        "Engine" Data.=: engine,+        "EngineVersion" Data.=: engineVersion,+        "SourceDBClusterIdentifier"+          Data.=: sourceDBClusterIdentifier,+        "StorageEncrypted" Data.=: storageEncrypted,+        "GlobalClusterIdentifier"+          Data.=: globalClusterIdentifier+      ]++-- | /See:/ 'newCreateGlobalClusterResponse' smart constructor.+data CreateGlobalClusterResponse = CreateGlobalClusterResponse'+  { globalCluster :: Prelude.Maybe GlobalCluster,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateGlobalClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'globalCluster', 'createGlobalClusterResponse_globalCluster' - Undocumented member.+--+-- 'httpStatus', 'createGlobalClusterResponse_httpStatus' - The response's http status code.+newCreateGlobalClusterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateGlobalClusterResponse+newCreateGlobalClusterResponse pHttpStatus_ =+  CreateGlobalClusterResponse'+    { globalCluster =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+createGlobalClusterResponse_globalCluster :: Lens.Lens' CreateGlobalClusterResponse (Prelude.Maybe GlobalCluster)+createGlobalClusterResponse_globalCluster = Lens.lens (\CreateGlobalClusterResponse' {globalCluster} -> globalCluster) (\s@CreateGlobalClusterResponse' {} a -> s {globalCluster = a} :: CreateGlobalClusterResponse)++-- | The response's http status code.+createGlobalClusterResponse_httpStatus :: Lens.Lens' CreateGlobalClusterResponse Prelude.Int+createGlobalClusterResponse_httpStatus = Lens.lens (\CreateGlobalClusterResponse' {httpStatus} -> httpStatus) (\s@CreateGlobalClusterResponse' {} a -> s {httpStatus = a} :: CreateGlobalClusterResponse)++instance Prelude.NFData CreateGlobalClusterResponse where+  rnf CreateGlobalClusterResponse' {..} =+    Prelude.rnf globalCluster+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DeleteDBCluster.hs view
@@ -0,0 +1,267 @@+{-# 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.DocumentDB.DeleteDBCluster+-- 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 previously provisioned cluster. When you delete a cluster, all+-- automated backups for that cluster are deleted and can\'t be recovered.+-- Manual DB cluster snapshots of the specified cluster are not deleted.+module Amazonka.DocumentDB.DeleteDBCluster+  ( -- * Creating a Request+    DeleteDBCluster (..),+    newDeleteDBCluster,++    -- * Request Lenses+    deleteDBCluster_finalDBSnapshotIdentifier,+    deleteDBCluster_skipFinalSnapshot,+    deleteDBCluster_dbClusterIdentifier,++    -- * Destructuring the Response+    DeleteDBClusterResponse (..),+    newDeleteDBClusterResponse,++    -- * Response Lenses+    deleteDBClusterResponse_dbCluster,+    deleteDBClusterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DeleteDBCluster.+--+-- /See:/ 'newDeleteDBCluster' smart constructor.+data DeleteDBCluster = DeleteDBCluster'+  { -- | The cluster snapshot identifier of the new cluster snapshot created when+    -- @SkipFinalSnapshot@ is set to @false@.+    --+    -- Specifying this parameter and also setting the @SkipFinalShapshot@+    -- parameter to @true@ results in an error.+    --+    -- Constraints:+    --+    -- -   Must be from 1 to 255 letters, numbers, or hyphens.+    --+    -- -   The first character must be a letter.+    --+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.+    finalDBSnapshotIdentifier :: Prelude.Maybe Prelude.Text,+    -- | Determines whether a final cluster snapshot is created before the+    -- cluster is deleted. If @true@ is specified, no cluster snapshot is+    -- created. If @false@ is specified, a cluster snapshot is created before+    -- the DB cluster is deleted.+    --+    -- If @SkipFinalSnapshot@ is @false@, you must specify a+    -- @FinalDBSnapshotIdentifier@ parameter.+    --+    -- Default: @false@+    skipFinalSnapshot :: Prelude.Maybe Prelude.Bool,+    -- | The cluster identifier for the cluster to be deleted. This parameter+    -- isn\'t case sensitive.+    --+    -- Constraints:+    --+    -- -   Must match an existing @DBClusterIdentifier@.+    dbClusterIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDBCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'finalDBSnapshotIdentifier', 'deleteDBCluster_finalDBSnapshotIdentifier' - The cluster snapshot identifier of the new cluster snapshot created when+-- @SkipFinalSnapshot@ is set to @false@.+--+-- Specifying this parameter and also setting the @SkipFinalShapshot@+-- parameter to @true@ results in an error.+--+-- Constraints:+--+-- -   Must be from 1 to 255 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- 'skipFinalSnapshot', 'deleteDBCluster_skipFinalSnapshot' - Determines whether a final cluster snapshot is created before the+-- cluster is deleted. If @true@ is specified, no cluster snapshot is+-- created. If @false@ is specified, a cluster snapshot is created before+-- the DB cluster is deleted.+--+-- If @SkipFinalSnapshot@ is @false@, you must specify a+-- @FinalDBSnapshotIdentifier@ parameter.+--+-- Default: @false@+--+-- 'dbClusterIdentifier', 'deleteDBCluster_dbClusterIdentifier' - The cluster identifier for the cluster to be deleted. This parameter+-- isn\'t case sensitive.+--+-- Constraints:+--+-- -   Must match an existing @DBClusterIdentifier@.+newDeleteDBCluster ::+  -- | 'dbClusterIdentifier'+  Prelude.Text ->+  DeleteDBCluster+newDeleteDBCluster pDBClusterIdentifier_ =+  DeleteDBCluster'+    { finalDBSnapshotIdentifier =+        Prelude.Nothing,+      skipFinalSnapshot = Prelude.Nothing,+      dbClusterIdentifier = pDBClusterIdentifier_+    }++-- | The cluster snapshot identifier of the new cluster snapshot created when+-- @SkipFinalSnapshot@ is set to @false@.+--+-- Specifying this parameter and also setting the @SkipFinalShapshot@+-- parameter to @true@ results in an error.+--+-- Constraints:+--+-- -   Must be from 1 to 255 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+deleteDBCluster_finalDBSnapshotIdentifier :: Lens.Lens' DeleteDBCluster (Prelude.Maybe Prelude.Text)+deleteDBCluster_finalDBSnapshotIdentifier = Lens.lens (\DeleteDBCluster' {finalDBSnapshotIdentifier} -> finalDBSnapshotIdentifier) (\s@DeleteDBCluster' {} a -> s {finalDBSnapshotIdentifier = a} :: DeleteDBCluster)++-- | Determines whether a final cluster snapshot is created before the+-- cluster is deleted. If @true@ is specified, no cluster snapshot is+-- created. If @false@ is specified, a cluster snapshot is created before+-- the DB cluster is deleted.+--+-- If @SkipFinalSnapshot@ is @false@, you must specify a+-- @FinalDBSnapshotIdentifier@ parameter.+--+-- Default: @false@+deleteDBCluster_skipFinalSnapshot :: Lens.Lens' DeleteDBCluster (Prelude.Maybe Prelude.Bool)+deleteDBCluster_skipFinalSnapshot = Lens.lens (\DeleteDBCluster' {skipFinalSnapshot} -> skipFinalSnapshot) (\s@DeleteDBCluster' {} a -> s {skipFinalSnapshot = a} :: DeleteDBCluster)++-- | The cluster identifier for the cluster to be deleted. This parameter+-- isn\'t case sensitive.+--+-- Constraints:+--+-- -   Must match an existing @DBClusterIdentifier@.+deleteDBCluster_dbClusterIdentifier :: Lens.Lens' DeleteDBCluster Prelude.Text+deleteDBCluster_dbClusterIdentifier = Lens.lens (\DeleteDBCluster' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@DeleteDBCluster' {} a -> s {dbClusterIdentifier = a} :: DeleteDBCluster)++instance Core.AWSRequest DeleteDBCluster where+  type+    AWSResponse DeleteDBCluster =+      DeleteDBClusterResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DeleteDBClusterResult"+      ( \s h x ->+          DeleteDBClusterResponse'+            Prelude.<$> (x Data..@? "DBCluster")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteDBCluster where+  hashWithSalt _salt DeleteDBCluster' {..} =+    _salt+      `Prelude.hashWithSalt` finalDBSnapshotIdentifier+      `Prelude.hashWithSalt` skipFinalSnapshot+      `Prelude.hashWithSalt` dbClusterIdentifier++instance Prelude.NFData DeleteDBCluster where+  rnf DeleteDBCluster' {..} =+    Prelude.rnf finalDBSnapshotIdentifier+      `Prelude.seq` Prelude.rnf skipFinalSnapshot+      `Prelude.seq` Prelude.rnf dbClusterIdentifier++instance Data.ToHeaders DeleteDBCluster where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteDBCluster where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteDBCluster where+  toQuery DeleteDBCluster' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DeleteDBCluster" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "FinalDBSnapshotIdentifier"+          Data.=: finalDBSnapshotIdentifier,+        "SkipFinalSnapshot" Data.=: skipFinalSnapshot,+        "DBClusterIdentifier" Data.=: dbClusterIdentifier+      ]++-- | /See:/ 'newDeleteDBClusterResponse' smart constructor.+data DeleteDBClusterResponse = DeleteDBClusterResponse'+  { dbCluster :: Prelude.Maybe DBCluster,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDBClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbCluster', 'deleteDBClusterResponse_dbCluster' - Undocumented member.+--+-- 'httpStatus', 'deleteDBClusterResponse_httpStatus' - The response's http status code.+newDeleteDBClusterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteDBClusterResponse+newDeleteDBClusterResponse pHttpStatus_ =+  DeleteDBClusterResponse'+    { dbCluster =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+deleteDBClusterResponse_dbCluster :: Lens.Lens' DeleteDBClusterResponse (Prelude.Maybe DBCluster)+deleteDBClusterResponse_dbCluster = Lens.lens (\DeleteDBClusterResponse' {dbCluster} -> dbCluster) (\s@DeleteDBClusterResponse' {} a -> s {dbCluster = a} :: DeleteDBClusterResponse)++-- | The response's http status code.+deleteDBClusterResponse_httpStatus :: Lens.Lens' DeleteDBClusterResponse Prelude.Int+deleteDBClusterResponse_httpStatus = Lens.lens (\DeleteDBClusterResponse' {httpStatus} -> httpStatus) (\s@DeleteDBClusterResponse' {} a -> s {httpStatus = a} :: DeleteDBClusterResponse)++instance Prelude.NFData DeleteDBClusterResponse where+  rnf DeleteDBClusterResponse' {..} =+    Prelude.rnf dbCluster+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DeleteDBClusterParameterGroup.hs view
@@ -0,0 +1,167 @@+{-# 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.DocumentDB.DeleteDBClusterParameterGroup+-- 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 specified cluster parameter group. The cluster parameter group+-- to be deleted can\'t be associated with any clusters.+module Amazonka.DocumentDB.DeleteDBClusterParameterGroup+  ( -- * Creating a Request+    DeleteDBClusterParameterGroup (..),+    newDeleteDBClusterParameterGroup,++    -- * Request Lenses+    deleteDBClusterParameterGroup_dbClusterParameterGroupName,++    -- * Destructuring the Response+    DeleteDBClusterParameterGroupResponse (..),+    newDeleteDBClusterParameterGroupResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DeleteDBClusterParameterGroup.+--+-- /See:/ 'newDeleteDBClusterParameterGroup' smart constructor.+data DeleteDBClusterParameterGroup = DeleteDBClusterParameterGroup'+  { -- | The name of the cluster parameter group.+    --+    -- Constraints:+    --+    -- -   Must be the name of an existing cluster parameter group.+    --+    -- -   You can\'t delete a default cluster parameter group.+    --+    -- -   Cannot be associated with any clusters.+    dbClusterParameterGroupName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDBClusterParameterGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterParameterGroupName', 'deleteDBClusterParameterGroup_dbClusterParameterGroupName' - The name of the cluster parameter group.+--+-- Constraints:+--+-- -   Must be the name of an existing cluster parameter group.+--+-- -   You can\'t delete a default cluster parameter group.+--+-- -   Cannot be associated with any clusters.+newDeleteDBClusterParameterGroup ::+  -- | 'dbClusterParameterGroupName'+  Prelude.Text ->+  DeleteDBClusterParameterGroup+newDeleteDBClusterParameterGroup+  pDBClusterParameterGroupName_ =+    DeleteDBClusterParameterGroup'+      { dbClusterParameterGroupName =+          pDBClusterParameterGroupName_+      }++-- | The name of the cluster parameter group.+--+-- Constraints:+--+-- -   Must be the name of an existing cluster parameter group.+--+-- -   You can\'t delete a default cluster parameter group.+--+-- -   Cannot be associated with any clusters.+deleteDBClusterParameterGroup_dbClusterParameterGroupName :: Lens.Lens' DeleteDBClusterParameterGroup Prelude.Text+deleteDBClusterParameterGroup_dbClusterParameterGroupName = Lens.lens (\DeleteDBClusterParameterGroup' {dbClusterParameterGroupName} -> dbClusterParameterGroupName) (\s@DeleteDBClusterParameterGroup' {} a -> s {dbClusterParameterGroupName = a} :: DeleteDBClusterParameterGroup)++instance+  Core.AWSRequest+    DeleteDBClusterParameterGroup+  where+  type+    AWSResponse DeleteDBClusterParameterGroup =+      DeleteDBClusterParameterGroupResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveNull+      DeleteDBClusterParameterGroupResponse'++instance+  Prelude.Hashable+    DeleteDBClusterParameterGroup+  where+  hashWithSalt _salt DeleteDBClusterParameterGroup' {..} =+    _salt+      `Prelude.hashWithSalt` dbClusterParameterGroupName++instance Prelude.NFData DeleteDBClusterParameterGroup where+  rnf DeleteDBClusterParameterGroup' {..} =+    Prelude.rnf dbClusterParameterGroupName++instance Data.ToHeaders DeleteDBClusterParameterGroup where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteDBClusterParameterGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteDBClusterParameterGroup where+  toQuery DeleteDBClusterParameterGroup' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "DeleteDBClusterParameterGroup" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBClusterParameterGroupName"+          Data.=: dbClusterParameterGroupName+      ]++-- | /See:/ 'newDeleteDBClusterParameterGroupResponse' smart constructor.+data DeleteDBClusterParameterGroupResponse = DeleteDBClusterParameterGroupResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDBClusterParameterGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteDBClusterParameterGroupResponse ::+  DeleteDBClusterParameterGroupResponse+newDeleteDBClusterParameterGroupResponse =+  DeleteDBClusterParameterGroupResponse'++instance+  Prelude.NFData+    DeleteDBClusterParameterGroupResponse+  where+  rnf _ = ()
+ gen/Amazonka/DocumentDB/DeleteDBClusterSnapshot.hs view
@@ -0,0 +1,180 @@+{-# 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.DocumentDB.DeleteDBClusterSnapshot+-- 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 snapshot. If the snapshot is being copied, the copy+-- operation is terminated.+--+-- The cluster snapshot must be in the @available@ state to be deleted.+module Amazonka.DocumentDB.DeleteDBClusterSnapshot+  ( -- * Creating a Request+    DeleteDBClusterSnapshot (..),+    newDeleteDBClusterSnapshot,++    -- * Request Lenses+    deleteDBClusterSnapshot_dbClusterSnapshotIdentifier,++    -- * Destructuring the Response+    DeleteDBClusterSnapshotResponse (..),+    newDeleteDBClusterSnapshotResponse,++    -- * Response Lenses+    deleteDBClusterSnapshotResponse_dbClusterSnapshot,+    deleteDBClusterSnapshotResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DeleteDBClusterSnapshot.+--+-- /See:/ 'newDeleteDBClusterSnapshot' smart constructor.+data DeleteDBClusterSnapshot = DeleteDBClusterSnapshot'+  { -- | The identifier of the cluster snapshot to delete.+    --+    -- Constraints: Must be the name of an existing cluster snapshot in the+    -- @available@ state.+    dbClusterSnapshotIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDBClusterSnapshot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterSnapshotIdentifier', 'deleteDBClusterSnapshot_dbClusterSnapshotIdentifier' - The identifier of the cluster snapshot to delete.+--+-- Constraints: Must be the name of an existing cluster snapshot in the+-- @available@ state.+newDeleteDBClusterSnapshot ::+  -- | 'dbClusterSnapshotIdentifier'+  Prelude.Text ->+  DeleteDBClusterSnapshot+newDeleteDBClusterSnapshot+  pDBClusterSnapshotIdentifier_ =+    DeleteDBClusterSnapshot'+      { dbClusterSnapshotIdentifier =+          pDBClusterSnapshotIdentifier_+      }++-- | The identifier of the cluster snapshot to delete.+--+-- Constraints: Must be the name of an existing cluster snapshot in the+-- @available@ state.+deleteDBClusterSnapshot_dbClusterSnapshotIdentifier :: Lens.Lens' DeleteDBClusterSnapshot Prelude.Text+deleteDBClusterSnapshot_dbClusterSnapshotIdentifier = Lens.lens (\DeleteDBClusterSnapshot' {dbClusterSnapshotIdentifier} -> dbClusterSnapshotIdentifier) (\s@DeleteDBClusterSnapshot' {} a -> s {dbClusterSnapshotIdentifier = a} :: DeleteDBClusterSnapshot)++instance Core.AWSRequest DeleteDBClusterSnapshot where+  type+    AWSResponse DeleteDBClusterSnapshot =+      DeleteDBClusterSnapshotResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DeleteDBClusterSnapshotResult"+      ( \s h x ->+          DeleteDBClusterSnapshotResponse'+            Prelude.<$> (x Data..@? "DBClusterSnapshot")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteDBClusterSnapshot where+  hashWithSalt _salt DeleteDBClusterSnapshot' {..} =+    _salt+      `Prelude.hashWithSalt` dbClusterSnapshotIdentifier++instance Prelude.NFData DeleteDBClusterSnapshot where+  rnf DeleteDBClusterSnapshot' {..} =+    Prelude.rnf dbClusterSnapshotIdentifier++instance Data.ToHeaders DeleteDBClusterSnapshot where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteDBClusterSnapshot where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteDBClusterSnapshot where+  toQuery DeleteDBClusterSnapshot' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DeleteDBClusterSnapshot" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBClusterSnapshotIdentifier"+          Data.=: dbClusterSnapshotIdentifier+      ]++-- | /See:/ 'newDeleteDBClusterSnapshotResponse' smart constructor.+data DeleteDBClusterSnapshotResponse = DeleteDBClusterSnapshotResponse'+  { dbClusterSnapshot :: Prelude.Maybe DBClusterSnapshot,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDBClusterSnapshotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterSnapshot', 'deleteDBClusterSnapshotResponse_dbClusterSnapshot' - Undocumented member.+--+-- 'httpStatus', 'deleteDBClusterSnapshotResponse_httpStatus' - The response's http status code.+newDeleteDBClusterSnapshotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteDBClusterSnapshotResponse+newDeleteDBClusterSnapshotResponse pHttpStatus_ =+  DeleteDBClusterSnapshotResponse'+    { dbClusterSnapshot =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+deleteDBClusterSnapshotResponse_dbClusterSnapshot :: Lens.Lens' DeleteDBClusterSnapshotResponse (Prelude.Maybe DBClusterSnapshot)+deleteDBClusterSnapshotResponse_dbClusterSnapshot = Lens.lens (\DeleteDBClusterSnapshotResponse' {dbClusterSnapshot} -> dbClusterSnapshot) (\s@DeleteDBClusterSnapshotResponse' {} a -> s {dbClusterSnapshot = a} :: DeleteDBClusterSnapshotResponse)++-- | The response's http status code.+deleteDBClusterSnapshotResponse_httpStatus :: Lens.Lens' DeleteDBClusterSnapshotResponse Prelude.Int+deleteDBClusterSnapshotResponse_httpStatus = Lens.lens (\DeleteDBClusterSnapshotResponse' {httpStatus} -> httpStatus) (\s@DeleteDBClusterSnapshotResponse' {} a -> s {httpStatus = a} :: DeleteDBClusterSnapshotResponse)++instance+  Prelude.NFData+    DeleteDBClusterSnapshotResponse+  where+  rnf DeleteDBClusterSnapshotResponse' {..} =+    Prelude.rnf dbClusterSnapshot+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DeleteDBInstance.hs view
@@ -0,0 +1,177 @@+{-# 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.DocumentDB.DeleteDBInstance+-- 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 previously provisioned instance.+module Amazonka.DocumentDB.DeleteDBInstance+  ( -- * Creating a Request+    DeleteDBInstance (..),+    newDeleteDBInstance,++    -- * Request Lenses+    deleteDBInstance_dbInstanceIdentifier,++    -- * Destructuring the Response+    DeleteDBInstanceResponse (..),+    newDeleteDBInstanceResponse,++    -- * Response Lenses+    deleteDBInstanceResponse_dbInstance,+    deleteDBInstanceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DeleteDBInstance.+--+-- /See:/ 'newDeleteDBInstance' smart constructor.+data DeleteDBInstance = DeleteDBInstance'+  { -- | The instance identifier for the instance to be deleted. This parameter+    -- isn\'t case sensitive.+    --+    -- Constraints:+    --+    -- -   Must match the name of an existing instance.+    dbInstanceIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDBInstance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbInstanceIdentifier', 'deleteDBInstance_dbInstanceIdentifier' - The instance identifier for the instance to be deleted. This parameter+-- isn\'t case sensitive.+--+-- Constraints:+--+-- -   Must match the name of an existing instance.+newDeleteDBInstance ::+  -- | 'dbInstanceIdentifier'+  Prelude.Text ->+  DeleteDBInstance+newDeleteDBInstance pDBInstanceIdentifier_ =+  DeleteDBInstance'+    { dbInstanceIdentifier =+        pDBInstanceIdentifier_+    }++-- | The instance identifier for the instance to be deleted. This parameter+-- isn\'t case sensitive.+--+-- Constraints:+--+-- -   Must match the name of an existing instance.+deleteDBInstance_dbInstanceIdentifier :: Lens.Lens' DeleteDBInstance Prelude.Text+deleteDBInstance_dbInstanceIdentifier = Lens.lens (\DeleteDBInstance' {dbInstanceIdentifier} -> dbInstanceIdentifier) (\s@DeleteDBInstance' {} a -> s {dbInstanceIdentifier = a} :: DeleteDBInstance)++instance Core.AWSRequest DeleteDBInstance where+  type+    AWSResponse DeleteDBInstance =+      DeleteDBInstanceResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DeleteDBInstanceResult"+      ( \s h x ->+          DeleteDBInstanceResponse'+            Prelude.<$> (x Data..@? "DBInstance")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteDBInstance where+  hashWithSalt _salt DeleteDBInstance' {..} =+    _salt `Prelude.hashWithSalt` dbInstanceIdentifier++instance Prelude.NFData DeleteDBInstance where+  rnf DeleteDBInstance' {..} =+    Prelude.rnf dbInstanceIdentifier++instance Data.ToHeaders DeleteDBInstance where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteDBInstance where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteDBInstance where+  toQuery DeleteDBInstance' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DeleteDBInstance" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBInstanceIdentifier" Data.=: dbInstanceIdentifier+      ]++-- | /See:/ 'newDeleteDBInstanceResponse' smart constructor.+data DeleteDBInstanceResponse = DeleteDBInstanceResponse'+  { dbInstance :: Prelude.Maybe DBInstance,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDBInstanceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbInstance', 'deleteDBInstanceResponse_dbInstance' - Undocumented member.+--+-- 'httpStatus', 'deleteDBInstanceResponse_httpStatus' - The response's http status code.+newDeleteDBInstanceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteDBInstanceResponse+newDeleteDBInstanceResponse pHttpStatus_ =+  DeleteDBInstanceResponse'+    { dbInstance =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+deleteDBInstanceResponse_dbInstance :: Lens.Lens' DeleteDBInstanceResponse (Prelude.Maybe DBInstance)+deleteDBInstanceResponse_dbInstance = Lens.lens (\DeleteDBInstanceResponse' {dbInstance} -> dbInstance) (\s@DeleteDBInstanceResponse' {} a -> s {dbInstance = a} :: DeleteDBInstanceResponse)++-- | The response's http status code.+deleteDBInstanceResponse_httpStatus :: Lens.Lens' DeleteDBInstanceResponse Prelude.Int+deleteDBInstanceResponse_httpStatus = Lens.lens (\DeleteDBInstanceResponse' {httpStatus} -> httpStatus) (\s@DeleteDBInstanceResponse' {} a -> s {httpStatus = a} :: DeleteDBInstanceResponse)++instance Prelude.NFData DeleteDBInstanceResponse where+  rnf DeleteDBInstanceResponse' {..} =+    Prelude.rnf dbInstance+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DeleteDBSubnetGroup.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.DeleteDBSubnetGroup+-- 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.+--+-- The specified database subnet group must not be associated with any DB+-- instances.+module Amazonka.DocumentDB.DeleteDBSubnetGroup+  ( -- * Creating a Request+    DeleteDBSubnetGroup (..),+    newDeleteDBSubnetGroup,++    -- * Request Lenses+    deleteDBSubnetGroup_dbSubnetGroupName,++    -- * Destructuring the Response+    DeleteDBSubnetGroupResponse (..),+    newDeleteDBSubnetGroupResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DeleteDBSubnetGroup.+--+-- /See:/ 'newDeleteDBSubnetGroup' smart constructor.+data DeleteDBSubnetGroup = DeleteDBSubnetGroup'+  { -- | The name of the database subnet group to delete.+    --+    -- You can\'t delete the default subnet group.+    --+    -- Constraints:+    --+    -- Must match the name of an existing @DBSubnetGroup@. Must not be default.+    --+    -- Example: @mySubnetgroup@+    dbSubnetGroupName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDBSubnetGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbSubnetGroupName', 'deleteDBSubnetGroup_dbSubnetGroupName' - The name of the database subnet group to delete.+--+-- You can\'t delete the default subnet group.+--+-- Constraints:+--+-- Must match the name of an existing @DBSubnetGroup@. Must not be default.+--+-- Example: @mySubnetgroup@+newDeleteDBSubnetGroup ::+  -- | 'dbSubnetGroupName'+  Prelude.Text ->+  DeleteDBSubnetGroup+newDeleteDBSubnetGroup pDBSubnetGroupName_ =+  DeleteDBSubnetGroup'+    { dbSubnetGroupName =+        pDBSubnetGroupName_+    }++-- | The name of the database subnet group to delete.+--+-- You can\'t delete the default subnet group.+--+-- Constraints:+--+-- Must match the name of an existing @DBSubnetGroup@. Must not be default.+--+-- Example: @mySubnetgroup@+deleteDBSubnetGroup_dbSubnetGroupName :: Lens.Lens' DeleteDBSubnetGroup Prelude.Text+deleteDBSubnetGroup_dbSubnetGroupName = Lens.lens (\DeleteDBSubnetGroup' {dbSubnetGroupName} -> dbSubnetGroupName) (\s@DeleteDBSubnetGroup' {} a -> s {dbSubnetGroupName = a} :: DeleteDBSubnetGroup)++instance Core.AWSRequest DeleteDBSubnetGroup where+  type+    AWSResponse DeleteDBSubnetGroup =+      DeleteDBSubnetGroupResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveNull DeleteDBSubnetGroupResponse'++instance Prelude.Hashable DeleteDBSubnetGroup where+  hashWithSalt _salt DeleteDBSubnetGroup' {..} =+    _salt `Prelude.hashWithSalt` dbSubnetGroupName++instance Prelude.NFData DeleteDBSubnetGroup where+  rnf DeleteDBSubnetGroup' {..} =+    Prelude.rnf dbSubnetGroupName++instance Data.ToHeaders DeleteDBSubnetGroup where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteDBSubnetGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteDBSubnetGroup where+  toQuery DeleteDBSubnetGroup' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DeleteDBSubnetGroup" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBSubnetGroupName" Data.=: dbSubnetGroupName+      ]++-- | /See:/ 'newDeleteDBSubnetGroupResponse' smart constructor.+data DeleteDBSubnetGroupResponse = DeleteDBSubnetGroupResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDBSubnetGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteDBSubnetGroupResponse ::+  DeleteDBSubnetGroupResponse+newDeleteDBSubnetGroupResponse =+  DeleteDBSubnetGroupResponse'++instance Prelude.NFData DeleteDBSubnetGroupResponse where+  rnf _ = ()
+ gen/Amazonka/DocumentDB/DeleteEventSubscription.hs view
@@ -0,0 +1,168 @@+{-# 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.DocumentDB.DeleteEventSubscription+-- 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 Amazon DocumentDB event notification subscription.+module Amazonka.DocumentDB.DeleteEventSubscription+  ( -- * Creating a Request+    DeleteEventSubscription (..),+    newDeleteEventSubscription,++    -- * Request Lenses+    deleteEventSubscription_subscriptionName,++    -- * Destructuring the Response+    DeleteEventSubscriptionResponse (..),+    newDeleteEventSubscriptionResponse,++    -- * Response Lenses+    deleteEventSubscriptionResponse_eventSubscription,+    deleteEventSubscriptionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DeleteEventSubscription.+--+-- /See:/ 'newDeleteEventSubscription' smart constructor.+data DeleteEventSubscription = DeleteEventSubscription'+  { -- | The name of the Amazon DocumentDB event notification subscription that+    -- you want to delete.+    subscriptionName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEventSubscription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subscriptionName', 'deleteEventSubscription_subscriptionName' - The name of the Amazon DocumentDB event notification subscription that+-- you want to delete.+newDeleteEventSubscription ::+  -- | 'subscriptionName'+  Prelude.Text ->+  DeleteEventSubscription+newDeleteEventSubscription pSubscriptionName_ =+  DeleteEventSubscription'+    { subscriptionName =+        pSubscriptionName_+    }++-- | The name of the Amazon DocumentDB event notification subscription that+-- you want to delete.+deleteEventSubscription_subscriptionName :: Lens.Lens' DeleteEventSubscription Prelude.Text+deleteEventSubscription_subscriptionName = Lens.lens (\DeleteEventSubscription' {subscriptionName} -> subscriptionName) (\s@DeleteEventSubscription' {} a -> s {subscriptionName = a} :: DeleteEventSubscription)++instance Core.AWSRequest DeleteEventSubscription where+  type+    AWSResponse DeleteEventSubscription =+      DeleteEventSubscriptionResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DeleteEventSubscriptionResult"+      ( \s h x ->+          DeleteEventSubscriptionResponse'+            Prelude.<$> (x Data..@? "EventSubscription")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteEventSubscription where+  hashWithSalt _salt DeleteEventSubscription' {..} =+    _salt `Prelude.hashWithSalt` subscriptionName++instance Prelude.NFData DeleteEventSubscription where+  rnf DeleteEventSubscription' {..} =+    Prelude.rnf subscriptionName++instance Data.ToHeaders DeleteEventSubscription where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteEventSubscription where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteEventSubscription where+  toQuery DeleteEventSubscription' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DeleteEventSubscription" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "SubscriptionName" Data.=: subscriptionName+      ]++-- | /See:/ 'newDeleteEventSubscriptionResponse' smart constructor.+data DeleteEventSubscriptionResponse = DeleteEventSubscriptionResponse'+  { eventSubscription :: Prelude.Maybe EventSubscription,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEventSubscriptionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventSubscription', 'deleteEventSubscriptionResponse_eventSubscription' - Undocumented member.+--+-- 'httpStatus', 'deleteEventSubscriptionResponse_httpStatus' - The response's http status code.+newDeleteEventSubscriptionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteEventSubscriptionResponse+newDeleteEventSubscriptionResponse pHttpStatus_ =+  DeleteEventSubscriptionResponse'+    { eventSubscription =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+deleteEventSubscriptionResponse_eventSubscription :: Lens.Lens' DeleteEventSubscriptionResponse (Prelude.Maybe EventSubscription)+deleteEventSubscriptionResponse_eventSubscription = Lens.lens (\DeleteEventSubscriptionResponse' {eventSubscription} -> eventSubscription) (\s@DeleteEventSubscriptionResponse' {} a -> s {eventSubscription = a} :: DeleteEventSubscriptionResponse)++-- | The response's http status code.+deleteEventSubscriptionResponse_httpStatus :: Lens.Lens' DeleteEventSubscriptionResponse Prelude.Int+deleteEventSubscriptionResponse_httpStatus = Lens.lens (\DeleteEventSubscriptionResponse' {httpStatus} -> httpStatus) (\s@DeleteEventSubscriptionResponse' {} a -> s {httpStatus = a} :: DeleteEventSubscriptionResponse)++instance+  Prelude.NFData+    DeleteEventSubscriptionResponse+  where+  rnf DeleteEventSubscriptionResponse' {..} =+    Prelude.rnf eventSubscription+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DeleteGlobalCluster.hs view
@@ -0,0 +1,168 @@+{-# 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.DocumentDB.DeleteGlobalCluster+-- 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 global cluster. The primary and secondary clusters must+-- already be detached or deleted before attempting to delete a global+-- cluster.+--+-- This action only applies to Amazon DocumentDB clusters.+module Amazonka.DocumentDB.DeleteGlobalCluster+  ( -- * Creating a Request+    DeleteGlobalCluster (..),+    newDeleteGlobalCluster,++    -- * Request Lenses+    deleteGlobalCluster_globalClusterIdentifier,++    -- * Destructuring the Response+    DeleteGlobalClusterResponse (..),+    newDeleteGlobalClusterResponse,++    -- * Response Lenses+    deleteGlobalClusterResponse_globalCluster,+    deleteGlobalClusterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DeleteGlobalCluster.+--+-- /See:/ 'newDeleteGlobalCluster' smart constructor.+data DeleteGlobalCluster = DeleteGlobalCluster'+  { -- | The cluster identifier of the global cluster being deleted.+    globalClusterIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteGlobalCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'globalClusterIdentifier', 'deleteGlobalCluster_globalClusterIdentifier' - The cluster identifier of the global cluster being deleted.+newDeleteGlobalCluster ::+  -- | 'globalClusterIdentifier'+  Prelude.Text ->+  DeleteGlobalCluster+newDeleteGlobalCluster pGlobalClusterIdentifier_ =+  DeleteGlobalCluster'+    { globalClusterIdentifier =+        pGlobalClusterIdentifier_+    }++-- | The cluster identifier of the global cluster being deleted.+deleteGlobalCluster_globalClusterIdentifier :: Lens.Lens' DeleteGlobalCluster Prelude.Text+deleteGlobalCluster_globalClusterIdentifier = Lens.lens (\DeleteGlobalCluster' {globalClusterIdentifier} -> globalClusterIdentifier) (\s@DeleteGlobalCluster' {} a -> s {globalClusterIdentifier = a} :: DeleteGlobalCluster)++instance Core.AWSRequest DeleteGlobalCluster where+  type+    AWSResponse DeleteGlobalCluster =+      DeleteGlobalClusterResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DeleteGlobalClusterResult"+      ( \s h x ->+          DeleteGlobalClusterResponse'+            Prelude.<$> (x Data..@? "GlobalCluster")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteGlobalCluster where+  hashWithSalt _salt DeleteGlobalCluster' {..} =+    _salt+      `Prelude.hashWithSalt` globalClusterIdentifier++instance Prelude.NFData DeleteGlobalCluster where+  rnf DeleteGlobalCluster' {..} =+    Prelude.rnf globalClusterIdentifier++instance Data.ToHeaders DeleteGlobalCluster where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DeleteGlobalCluster where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteGlobalCluster where+  toQuery DeleteGlobalCluster' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DeleteGlobalCluster" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "GlobalClusterIdentifier"+          Data.=: globalClusterIdentifier+      ]++-- | /See:/ 'newDeleteGlobalClusterResponse' smart constructor.+data DeleteGlobalClusterResponse = DeleteGlobalClusterResponse'+  { globalCluster :: Prelude.Maybe GlobalCluster,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteGlobalClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'globalCluster', 'deleteGlobalClusterResponse_globalCluster' - Undocumented member.+--+-- 'httpStatus', 'deleteGlobalClusterResponse_httpStatus' - The response's http status code.+newDeleteGlobalClusterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteGlobalClusterResponse+newDeleteGlobalClusterResponse pHttpStatus_ =+  DeleteGlobalClusterResponse'+    { globalCluster =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+deleteGlobalClusterResponse_globalCluster :: Lens.Lens' DeleteGlobalClusterResponse (Prelude.Maybe GlobalCluster)+deleteGlobalClusterResponse_globalCluster = Lens.lens (\DeleteGlobalClusterResponse' {globalCluster} -> globalCluster) (\s@DeleteGlobalClusterResponse' {} a -> s {globalCluster = a} :: DeleteGlobalClusterResponse)++-- | The response's http status code.+deleteGlobalClusterResponse_httpStatus :: Lens.Lens' DeleteGlobalClusterResponse Prelude.Int+deleteGlobalClusterResponse_httpStatus = Lens.lens (\DeleteGlobalClusterResponse' {httpStatus} -> httpStatus) (\s@DeleteGlobalClusterResponse' {} a -> s {httpStatus = a} :: DeleteGlobalClusterResponse)++instance Prelude.NFData DeleteGlobalClusterResponse where+  rnf DeleteGlobalClusterResponse' {..} =+    Prelude.rnf globalCluster+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeCertificates.hs view
@@ -0,0 +1,318 @@+{-# 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.DocumentDB.DescribeCertificates+-- 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 certificate authority (CA) certificates provided by+-- Amazon DocumentDB for this Amazon Web Services account.+--+-- This operation returns paginated results.+module Amazonka.DocumentDB.DescribeCertificates+  ( -- * Creating a Request+    DescribeCertificates (..),+    newDescribeCertificates,++    -- * Request Lenses+    describeCertificates_certificateIdentifier,+    describeCertificates_filters,+    describeCertificates_marker,+    describeCertificates_maxRecords,++    -- * Destructuring the Response+    DescribeCertificatesResponse (..),+    newDescribeCertificatesResponse,++    -- * Response Lenses+    describeCertificatesResponse_certificates,+    describeCertificatesResponse_marker,+    describeCertificatesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeCertificates' smart constructor.+data DescribeCertificates = DescribeCertificates'+  { -- | The user-supplied certificate identifier. If this parameter is+    -- specified, information for only the specified certificate is returned.+    -- If this parameter is omitted, a list of up to @MaxRecords@ certificates+    -- is returned. This parameter is not case sensitive.+    --+    -- Constraints+    --+    -- -   Must match an existing @CertificateIdentifier@.+    certificateIdentifier :: Prelude.Maybe Prelude.Text,+    -- | This parameter is not currently supported.+    filters :: Prelude.Maybe [Filter],+    -- | An optional pagination token provided by a previous+    -- @DescribeCertificates@ request. If this parameter is specified, the+    -- response includes only records beyond the marker, up to the value+    -- specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to include in the response. If more+    -- records exist than the specified @MaxRecords@ value, a pagination token+    -- called a marker is included in the response so that the remaining+    -- results can be retrieved.+    --+    -- Default: 100+    --+    -- Constraints:+    --+    -- -   Minimum: 20+    --+    -- -   Maximum: 100+    maxRecords :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCertificates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificateIdentifier', 'describeCertificates_certificateIdentifier' - The user-supplied certificate identifier. If this parameter is+-- specified, information for only the specified certificate is returned.+-- If this parameter is omitted, a list of up to @MaxRecords@ certificates+-- is returned. This parameter is not case sensitive.+--+-- Constraints+--+-- -   Must match an existing @CertificateIdentifier@.+--+-- 'filters', 'describeCertificates_filters' - This parameter is not currently supported.+--+-- 'marker', 'describeCertificates_marker' - An optional pagination token provided by a previous+-- @DescribeCertificates@ request. If this parameter is specified, the+-- response includes only records beyond the marker, up to the value+-- specified by @MaxRecords@.+--+-- 'maxRecords', 'describeCertificates_maxRecords' - The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- called a marker is included in the response so that the remaining+-- results can be retrieved.+--+-- Default: 100+--+-- Constraints:+--+-- -   Minimum: 20+--+-- -   Maximum: 100+newDescribeCertificates ::+  DescribeCertificates+newDescribeCertificates =+  DescribeCertificates'+    { certificateIdentifier =+        Prelude.Nothing,+      filters = Prelude.Nothing,+      marker = Prelude.Nothing,+      maxRecords = Prelude.Nothing+    }++-- | The user-supplied certificate identifier. If this parameter is+-- specified, information for only the specified certificate is returned.+-- If this parameter is omitted, a list of up to @MaxRecords@ certificates+-- is returned. This parameter is not case sensitive.+--+-- Constraints+--+-- -   Must match an existing @CertificateIdentifier@.+describeCertificates_certificateIdentifier :: Lens.Lens' DescribeCertificates (Prelude.Maybe Prelude.Text)+describeCertificates_certificateIdentifier = Lens.lens (\DescribeCertificates' {certificateIdentifier} -> certificateIdentifier) (\s@DescribeCertificates' {} a -> s {certificateIdentifier = a} :: DescribeCertificates)++-- | This parameter is not currently supported.+describeCertificates_filters :: Lens.Lens' DescribeCertificates (Prelude.Maybe [Filter])+describeCertificates_filters = Lens.lens (\DescribeCertificates' {filters} -> filters) (\s@DescribeCertificates' {} a -> s {filters = a} :: DescribeCertificates) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous+-- @DescribeCertificates@ request. If this parameter is specified, the+-- response includes only records beyond the marker, up to the value+-- specified by @MaxRecords@.+describeCertificates_marker :: Lens.Lens' DescribeCertificates (Prelude.Maybe Prelude.Text)+describeCertificates_marker = Lens.lens (\DescribeCertificates' {marker} -> marker) (\s@DescribeCertificates' {} a -> s {marker = a} :: DescribeCertificates)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- called a marker is included in the response so that the remaining+-- results can be retrieved.+--+-- Default: 100+--+-- Constraints:+--+-- -   Minimum: 20+--+-- -   Maximum: 100+describeCertificates_maxRecords :: Lens.Lens' DescribeCertificates (Prelude.Maybe Prelude.Int)+describeCertificates_maxRecords = Lens.lens (\DescribeCertificates' {maxRecords} -> maxRecords) (\s@DescribeCertificates' {} a -> s {maxRecords = a} :: DescribeCertificates)++instance Core.AWSPager DescribeCertificates where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeCertificatesResponse_marker+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeCertificatesResponse_certificates+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeCertificates_marker+          Lens..~ rs+          Lens.^? describeCertificatesResponse_marker+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeCertificates where+  type+    AWSResponse DescribeCertificates =+      DescribeCertificatesResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeCertificatesResult"+      ( \s h x ->+          DescribeCertificatesResponse'+            Prelude.<$> ( x+                            Data..@? "Certificates"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may (Data.parseXMLList "Certificate")+                        )+            Prelude.<*> (x Data..@? "Marker")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeCertificates where+  hashWithSalt _salt DescribeCertificates' {..} =+    _salt+      `Prelude.hashWithSalt` certificateIdentifier+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` marker+      `Prelude.hashWithSalt` maxRecords++instance Prelude.NFData DescribeCertificates where+  rnf DescribeCertificates' {..} =+    Prelude.rnf certificateIdentifier+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf maxRecords++instance Data.ToHeaders DescribeCertificates where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeCertificates where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeCertificates where+  toQuery DescribeCertificates' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DescribeCertificates" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "CertificateIdentifier"+          Data.=: certificateIdentifier,+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "Marker" Data.=: marker,+        "MaxRecords" Data.=: maxRecords+      ]++-- | /See:/ 'newDescribeCertificatesResponse' smart constructor.+data DescribeCertificatesResponse = DescribeCertificatesResponse'+  { -- | A list of certificates for this Amazon Web Services account.+    certificates :: Prelude.Maybe [Certificate],+    -- | An optional pagination token provided if the number of records retrieved+    -- is greater than @MaxRecords@. If this parameter is specified, the marker+    -- specifies the next record in the list. Including the value of @Marker@+    -- in the next call to @DescribeCertificates@ results in the next page of+    -- certificates.+    marker :: 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 'DescribeCertificatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificates', 'describeCertificatesResponse_certificates' - A list of certificates for this Amazon Web Services account.+--+-- 'marker', 'describeCertificatesResponse_marker' - An optional pagination token provided if the number of records retrieved+-- is greater than @MaxRecords@. If this parameter is specified, the marker+-- specifies the next record in the list. Including the value of @Marker@+-- in the next call to @DescribeCertificates@ results in the next page of+-- certificates.+--+-- 'httpStatus', 'describeCertificatesResponse_httpStatus' - The response's http status code.+newDescribeCertificatesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeCertificatesResponse+newDescribeCertificatesResponse pHttpStatus_ =+  DescribeCertificatesResponse'+    { certificates =+        Prelude.Nothing,+      marker = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of certificates for this Amazon Web Services account.+describeCertificatesResponse_certificates :: Lens.Lens' DescribeCertificatesResponse (Prelude.Maybe [Certificate])+describeCertificatesResponse_certificates = Lens.lens (\DescribeCertificatesResponse' {certificates} -> certificates) (\s@DescribeCertificatesResponse' {} a -> s {certificates = a} :: DescribeCertificatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided if the number of records retrieved+-- is greater than @MaxRecords@. If this parameter is specified, the marker+-- specifies the next record in the list. Including the value of @Marker@+-- in the next call to @DescribeCertificates@ results in the next page of+-- certificates.+describeCertificatesResponse_marker :: Lens.Lens' DescribeCertificatesResponse (Prelude.Maybe Prelude.Text)+describeCertificatesResponse_marker = Lens.lens (\DescribeCertificatesResponse' {marker} -> marker) (\s@DescribeCertificatesResponse' {} a -> s {marker = a} :: DescribeCertificatesResponse)++-- | The response's http status code.+describeCertificatesResponse_httpStatus :: Lens.Lens' DescribeCertificatesResponse Prelude.Int+describeCertificatesResponse_httpStatus = Lens.lens (\DescribeCertificatesResponse' {httpStatus} -> httpStatus) (\s@DescribeCertificatesResponse' {} a -> s {httpStatus = a} :: DescribeCertificatesResponse)++instance Prelude.NFData DescribeCertificatesResponse where+  rnf DescribeCertificatesResponse' {..} =+    Prelude.rnf certificates+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeDBClusterParameterGroups.hs view
@@ -0,0 +1,323 @@+{-# 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.DocumentDB.DescribeDBClusterParameterGroups+-- 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 @DBClusterParameterGroup@ descriptions. If a+-- @DBClusterParameterGroupName@ parameter is specified, the list contains+-- only the description of the specified cluster parameter group.+--+-- This operation returns paginated results.+module Amazonka.DocumentDB.DescribeDBClusterParameterGroups+  ( -- * Creating a Request+    DescribeDBClusterParameterGroups (..),+    newDescribeDBClusterParameterGroups,++    -- * Request Lenses+    describeDBClusterParameterGroups_dbClusterParameterGroupName,+    describeDBClusterParameterGroups_filters,+    describeDBClusterParameterGroups_marker,+    describeDBClusterParameterGroups_maxRecords,++    -- * Destructuring the Response+    DescribeDBClusterParameterGroupsResponse (..),+    newDescribeDBClusterParameterGroupsResponse,++    -- * Response Lenses+    describeDBClusterParameterGroupsResponse_dbClusterParameterGroups,+    describeDBClusterParameterGroupsResponse_marker,+    describeDBClusterParameterGroupsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DescribeDBClusterParameterGroups.+--+-- /See:/ 'newDescribeDBClusterParameterGroups' smart constructor.+data DescribeDBClusterParameterGroups = DescribeDBClusterParameterGroups'+  { -- | The name of a specific cluster parameter group to return details for.+    --+    -- Constraints:+    --+    -- -   If provided, must match the name of an existing+    --     @DBClusterParameterGroup@.+    dbClusterParameterGroupName :: Prelude.Maybe Prelude.Text,+    -- | This parameter is not currently supported.+    filters :: Prelude.Maybe [Filter],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to include in the response. If more+    -- records exist than the specified @MaxRecords@ value, a pagination token+    -- (marker) is included in the response so that the remaining results can+    -- be retrieved.+    --+    -- Default: 100+    --+    -- Constraints: Minimum 20, maximum 100.+    maxRecords :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDBClusterParameterGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterParameterGroupName', 'describeDBClusterParameterGroups_dbClusterParameterGroupName' - The name of a specific cluster parameter group to return details for.+--+-- Constraints:+--+-- -   If provided, must match the name of an existing+--     @DBClusterParameterGroup@.+--+-- 'filters', 'describeDBClusterParameterGroups_filters' - This parameter is not currently supported.+--+-- 'marker', 'describeDBClusterParameterGroups_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'maxRecords', 'describeDBClusterParameterGroups_maxRecords' - The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+newDescribeDBClusterParameterGroups ::+  DescribeDBClusterParameterGroups+newDescribeDBClusterParameterGroups =+  DescribeDBClusterParameterGroups'+    { dbClusterParameterGroupName =+        Prelude.Nothing,+      filters = Prelude.Nothing,+      marker = Prelude.Nothing,+      maxRecords = Prelude.Nothing+    }++-- | The name of a specific cluster parameter group to return details for.+--+-- Constraints:+--+-- -   If provided, must match the name of an existing+--     @DBClusterParameterGroup@.+describeDBClusterParameterGroups_dbClusterParameterGroupName :: Lens.Lens' DescribeDBClusterParameterGroups (Prelude.Maybe Prelude.Text)+describeDBClusterParameterGroups_dbClusterParameterGroupName = Lens.lens (\DescribeDBClusterParameterGroups' {dbClusterParameterGroupName} -> dbClusterParameterGroupName) (\s@DescribeDBClusterParameterGroups' {} a -> s {dbClusterParameterGroupName = a} :: DescribeDBClusterParameterGroups)++-- | This parameter is not currently supported.+describeDBClusterParameterGroups_filters :: Lens.Lens' DescribeDBClusterParameterGroups (Prelude.Maybe [Filter])+describeDBClusterParameterGroups_filters = Lens.lens (\DescribeDBClusterParameterGroups' {filters} -> filters) (\s@DescribeDBClusterParameterGroups' {} a -> s {filters = a} :: DescribeDBClusterParameterGroups) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeDBClusterParameterGroups_marker :: Lens.Lens' DescribeDBClusterParameterGroups (Prelude.Maybe Prelude.Text)+describeDBClusterParameterGroups_marker = Lens.lens (\DescribeDBClusterParameterGroups' {marker} -> marker) (\s@DescribeDBClusterParameterGroups' {} a -> s {marker = a} :: DescribeDBClusterParameterGroups)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+describeDBClusterParameterGroups_maxRecords :: Lens.Lens' DescribeDBClusterParameterGroups (Prelude.Maybe Prelude.Int)+describeDBClusterParameterGroups_maxRecords = Lens.lens (\DescribeDBClusterParameterGroups' {maxRecords} -> maxRecords) (\s@DescribeDBClusterParameterGroups' {} a -> s {maxRecords = a} :: DescribeDBClusterParameterGroups)++instance+  Core.AWSPager+    DescribeDBClusterParameterGroups+  where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeDBClusterParameterGroupsResponse_marker+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeDBClusterParameterGroupsResponse_dbClusterParameterGroups+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeDBClusterParameterGroups_marker+          Lens..~ rs+          Lens.^? describeDBClusterParameterGroupsResponse_marker+          Prelude.. Lens._Just++instance+  Core.AWSRequest+    DescribeDBClusterParameterGroups+  where+  type+    AWSResponse DescribeDBClusterParameterGroups =+      DescribeDBClusterParameterGroupsResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeDBClusterParameterGroupsResult"+      ( \s h x ->+          DescribeDBClusterParameterGroupsResponse'+            Prelude.<$> ( x+                            Data..@? "DBClusterParameterGroups"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may+                              (Data.parseXMLList "DBClusterParameterGroup")+                        )+            Prelude.<*> (x Data..@? "Marker")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeDBClusterParameterGroups+  where+  hashWithSalt+    _salt+    DescribeDBClusterParameterGroups' {..} =+      _salt+        `Prelude.hashWithSalt` dbClusterParameterGroupName+        `Prelude.hashWithSalt` filters+        `Prelude.hashWithSalt` marker+        `Prelude.hashWithSalt` maxRecords++instance+  Prelude.NFData+    DescribeDBClusterParameterGroups+  where+  rnf DescribeDBClusterParameterGroups' {..} =+    Prelude.rnf dbClusterParameterGroupName+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf maxRecords++instance+  Data.ToHeaders+    DescribeDBClusterParameterGroups+  where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeDBClusterParameterGroups where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    DescribeDBClusterParameterGroups+  where+  toQuery DescribeDBClusterParameterGroups' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "DescribeDBClusterParameterGroups" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBClusterParameterGroupName"+          Data.=: dbClusterParameterGroupName,+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "Marker" Data.=: marker,+        "MaxRecords" Data.=: maxRecords+      ]++-- | Represents the output of DBClusterParameterGroups.+--+-- /See:/ 'newDescribeDBClusterParameterGroupsResponse' smart constructor.+data DescribeDBClusterParameterGroupsResponse = DescribeDBClusterParameterGroupsResponse'+  { -- | A list of cluster parameter groups.+    dbClusterParameterGroups :: Prelude.Maybe [DBClusterParameterGroup],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: 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 'DescribeDBClusterParameterGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterParameterGroups', 'describeDBClusterParameterGroupsResponse_dbClusterParameterGroups' - A list of cluster parameter groups.+--+-- 'marker', 'describeDBClusterParameterGroupsResponse_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'httpStatus', 'describeDBClusterParameterGroupsResponse_httpStatus' - The response's http status code.+newDescribeDBClusterParameterGroupsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDBClusterParameterGroupsResponse+newDescribeDBClusterParameterGroupsResponse+  pHttpStatus_ =+    DescribeDBClusterParameterGroupsResponse'+      { dbClusterParameterGroups =+          Prelude.Nothing,+        marker = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | A list of cluster parameter groups.+describeDBClusterParameterGroupsResponse_dbClusterParameterGroups :: Lens.Lens' DescribeDBClusterParameterGroupsResponse (Prelude.Maybe [DBClusterParameterGroup])+describeDBClusterParameterGroupsResponse_dbClusterParameterGroups = Lens.lens (\DescribeDBClusterParameterGroupsResponse' {dbClusterParameterGroups} -> dbClusterParameterGroups) (\s@DescribeDBClusterParameterGroupsResponse' {} a -> s {dbClusterParameterGroups = a} :: DescribeDBClusterParameterGroupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeDBClusterParameterGroupsResponse_marker :: Lens.Lens' DescribeDBClusterParameterGroupsResponse (Prelude.Maybe Prelude.Text)+describeDBClusterParameterGroupsResponse_marker = Lens.lens (\DescribeDBClusterParameterGroupsResponse' {marker} -> marker) (\s@DescribeDBClusterParameterGroupsResponse' {} a -> s {marker = a} :: DescribeDBClusterParameterGroupsResponse)++-- | The response's http status code.+describeDBClusterParameterGroupsResponse_httpStatus :: Lens.Lens' DescribeDBClusterParameterGroupsResponse Prelude.Int+describeDBClusterParameterGroupsResponse_httpStatus = Lens.lens (\DescribeDBClusterParameterGroupsResponse' {httpStatus} -> httpStatus) (\s@DescribeDBClusterParameterGroupsResponse' {} a -> s {httpStatus = a} :: DescribeDBClusterParameterGroupsResponse)++instance+  Prelude.NFData+    DescribeDBClusterParameterGroupsResponse+  where+  rnf DescribeDBClusterParameterGroupsResponse' {..} =+    Prelude.rnf dbClusterParameterGroups+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeDBClusterParameters.hs view
@@ -0,0 +1,323 @@+{-# 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.DocumentDB.DescribeDBClusterParameters+-- 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 cluster parameter+-- group.+--+-- This operation returns paginated results.+module Amazonka.DocumentDB.DescribeDBClusterParameters+  ( -- * Creating a Request+    DescribeDBClusterParameters (..),+    newDescribeDBClusterParameters,++    -- * Request Lenses+    describeDBClusterParameters_filters,+    describeDBClusterParameters_marker,+    describeDBClusterParameters_maxRecords,+    describeDBClusterParameters_source,+    describeDBClusterParameters_dbClusterParameterGroupName,++    -- * Destructuring the Response+    DescribeDBClusterParametersResponse (..),+    newDescribeDBClusterParametersResponse,++    -- * Response Lenses+    describeDBClusterParametersResponse_marker,+    describeDBClusterParametersResponse_parameters,+    describeDBClusterParametersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DescribeDBClusterParameters.+--+-- /See:/ 'newDescribeDBClusterParameters' smart constructor.+data DescribeDBClusterParameters = DescribeDBClusterParameters'+  { -- | This parameter is not currently supported.+    filters :: Prelude.Maybe [Filter],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to include in the response. If more+    -- records exist than the specified @MaxRecords@ value, a pagination token+    -- (marker) is included in the response so that the remaining results can+    -- be retrieved.+    --+    -- Default: 100+    --+    -- Constraints: Minimum 20, maximum 100.+    maxRecords :: Prelude.Maybe Prelude.Int,+    -- | A value that indicates to return only parameters for a specific source.+    -- Parameter sources can be @engine@, @service@, or @customer@.+    source :: Prelude.Maybe Prelude.Text,+    -- | The name of a specific cluster parameter group to return parameter+    -- details for.+    --+    -- Constraints:+    --+    -- -   If provided, must match the name of an existing+    --     @DBClusterParameterGroup@.+    dbClusterParameterGroupName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDBClusterParameters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeDBClusterParameters_filters' - This parameter is not currently supported.+--+-- 'marker', 'describeDBClusterParameters_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'maxRecords', 'describeDBClusterParameters_maxRecords' - The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+--+-- 'source', 'describeDBClusterParameters_source' - A value that indicates to return only parameters for a specific source.+-- Parameter sources can be @engine@, @service@, or @customer@.+--+-- 'dbClusterParameterGroupName', 'describeDBClusterParameters_dbClusterParameterGroupName' - The name of a specific cluster parameter group to return parameter+-- details for.+--+-- Constraints:+--+-- -   If provided, must match the name of an existing+--     @DBClusterParameterGroup@.+newDescribeDBClusterParameters ::+  -- | 'dbClusterParameterGroupName'+  Prelude.Text ->+  DescribeDBClusterParameters+newDescribeDBClusterParameters+  pDBClusterParameterGroupName_ =+    DescribeDBClusterParameters'+      { filters =+          Prelude.Nothing,+        marker = Prelude.Nothing,+        maxRecords = Prelude.Nothing,+        source = Prelude.Nothing,+        dbClusterParameterGroupName =+          pDBClusterParameterGroupName_+      }++-- | This parameter is not currently supported.+describeDBClusterParameters_filters :: Lens.Lens' DescribeDBClusterParameters (Prelude.Maybe [Filter])+describeDBClusterParameters_filters = Lens.lens (\DescribeDBClusterParameters' {filters} -> filters) (\s@DescribeDBClusterParameters' {} a -> s {filters = a} :: DescribeDBClusterParameters) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeDBClusterParameters_marker :: Lens.Lens' DescribeDBClusterParameters (Prelude.Maybe Prelude.Text)+describeDBClusterParameters_marker = Lens.lens (\DescribeDBClusterParameters' {marker} -> marker) (\s@DescribeDBClusterParameters' {} a -> s {marker = a} :: DescribeDBClusterParameters)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+describeDBClusterParameters_maxRecords :: Lens.Lens' DescribeDBClusterParameters (Prelude.Maybe Prelude.Int)+describeDBClusterParameters_maxRecords = Lens.lens (\DescribeDBClusterParameters' {maxRecords} -> maxRecords) (\s@DescribeDBClusterParameters' {} a -> s {maxRecords = a} :: DescribeDBClusterParameters)++-- | A value that indicates to return only parameters for a specific source.+-- Parameter sources can be @engine@, @service@, or @customer@.+describeDBClusterParameters_source :: Lens.Lens' DescribeDBClusterParameters (Prelude.Maybe Prelude.Text)+describeDBClusterParameters_source = Lens.lens (\DescribeDBClusterParameters' {source} -> source) (\s@DescribeDBClusterParameters' {} a -> s {source = a} :: DescribeDBClusterParameters)++-- | The name of a specific cluster parameter group to return parameter+-- details for.+--+-- Constraints:+--+-- -   If provided, must match the name of an existing+--     @DBClusterParameterGroup@.+describeDBClusterParameters_dbClusterParameterGroupName :: Lens.Lens' DescribeDBClusterParameters Prelude.Text+describeDBClusterParameters_dbClusterParameterGroupName = Lens.lens (\DescribeDBClusterParameters' {dbClusterParameterGroupName} -> dbClusterParameterGroupName) (\s@DescribeDBClusterParameters' {} a -> s {dbClusterParameterGroupName = a} :: DescribeDBClusterParameters)++instance Core.AWSPager DescribeDBClusterParameters where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeDBClusterParametersResponse_marker+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeDBClusterParametersResponse_parameters+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeDBClusterParameters_marker+          Lens..~ rs+          Lens.^? describeDBClusterParametersResponse_marker+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeDBClusterParameters where+  type+    AWSResponse DescribeDBClusterParameters =+      DescribeDBClusterParametersResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeDBClusterParametersResult"+      ( \s h x ->+          DescribeDBClusterParametersResponse'+            Prelude.<$> (x Data..@? "Marker")+            Prelude.<*> ( x+                            Data..@? "Parameters"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may (Data.parseXMLList "Parameter")+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDBClusterParameters where+  hashWithSalt _salt DescribeDBClusterParameters' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` marker+      `Prelude.hashWithSalt` maxRecords+      `Prelude.hashWithSalt` source+      `Prelude.hashWithSalt` dbClusterParameterGroupName++instance Prelude.NFData DescribeDBClusterParameters where+  rnf DescribeDBClusterParameters' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf maxRecords+      `Prelude.seq` Prelude.rnf source+      `Prelude.seq` Prelude.rnf dbClusterParameterGroupName++instance Data.ToHeaders DescribeDBClusterParameters where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeDBClusterParameters where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeDBClusterParameters where+  toQuery DescribeDBClusterParameters' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "DescribeDBClusterParameters" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "Marker" Data.=: marker,+        "MaxRecords" Data.=: maxRecords,+        "Source" Data.=: source,+        "DBClusterParameterGroupName"+          Data.=: dbClusterParameterGroupName+      ]++-- | Represents the output of DBClusterParameterGroup.+--+-- /See:/ 'newDescribeDBClusterParametersResponse' smart constructor.+data DescribeDBClusterParametersResponse = DescribeDBClusterParametersResponse'+  { -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | Provides a list of parameters for the cluster parameter group.+    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 'DescribeDBClusterParametersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'marker', 'describeDBClusterParametersResponse_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'parameters', 'describeDBClusterParametersResponse_parameters' - Provides a list of parameters for the cluster parameter group.+--+-- 'httpStatus', 'describeDBClusterParametersResponse_httpStatus' - The response's http status code.+newDescribeDBClusterParametersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDBClusterParametersResponse+newDescribeDBClusterParametersResponse pHttpStatus_ =+  DescribeDBClusterParametersResponse'+    { marker =+        Prelude.Nothing,+      parameters = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeDBClusterParametersResponse_marker :: Lens.Lens' DescribeDBClusterParametersResponse (Prelude.Maybe Prelude.Text)+describeDBClusterParametersResponse_marker = Lens.lens (\DescribeDBClusterParametersResponse' {marker} -> marker) (\s@DescribeDBClusterParametersResponse' {} a -> s {marker = a} :: DescribeDBClusterParametersResponse)++-- | Provides a list of parameters for the cluster parameter group.+describeDBClusterParametersResponse_parameters :: Lens.Lens' DescribeDBClusterParametersResponse (Prelude.Maybe [Parameter])+describeDBClusterParametersResponse_parameters = Lens.lens (\DescribeDBClusterParametersResponse' {parameters} -> parameters) (\s@DescribeDBClusterParametersResponse' {} a -> s {parameters = a} :: DescribeDBClusterParametersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeDBClusterParametersResponse_httpStatus :: Lens.Lens' DescribeDBClusterParametersResponse Prelude.Int+describeDBClusterParametersResponse_httpStatus = Lens.lens (\DescribeDBClusterParametersResponse' {httpStatus} -> httpStatus) (\s@DescribeDBClusterParametersResponse' {} a -> s {httpStatus = a} :: DescribeDBClusterParametersResponse)++instance+  Prelude.NFData+    DescribeDBClusterParametersResponse+  where+  rnf DescribeDBClusterParametersResponse' {..} =+    Prelude.rnf marker+      `Prelude.seq` Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeDBClusterSnapshotAttributes.hs view
@@ -0,0 +1,200 @@+{-# 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.DocumentDB.DescribeDBClusterSnapshotAttributes+-- 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 cluster snapshot attribute names and values for a+-- manual DB cluster snapshot.+--+-- When you share snapshots with other Amazon Web Services accounts,+-- @DescribeDBClusterSnapshotAttributes@ returns the @restore@ attribute+-- and a list of IDs for the Amazon Web Services accounts that are+-- authorized to copy or restore the manual cluster snapshot. If @all@ is+-- included in the list of values for the @restore@ attribute, then the+-- manual cluster snapshot is public and can be copied or restored by all+-- Amazon Web Services accounts.+module Amazonka.DocumentDB.DescribeDBClusterSnapshotAttributes+  ( -- * Creating a Request+    DescribeDBClusterSnapshotAttributes (..),+    newDescribeDBClusterSnapshotAttributes,++    -- * Request Lenses+    describeDBClusterSnapshotAttributes_dbClusterSnapshotIdentifier,++    -- * Destructuring the Response+    DescribeDBClusterSnapshotAttributesResponse (..),+    newDescribeDBClusterSnapshotAttributesResponse,++    -- * Response Lenses+    describeDBClusterSnapshotAttributesResponse_dbClusterSnapshotAttributesResult,+    describeDBClusterSnapshotAttributesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DescribeDBClusterSnapshotAttributes.+--+-- /See:/ 'newDescribeDBClusterSnapshotAttributes' smart constructor.+data DescribeDBClusterSnapshotAttributes = DescribeDBClusterSnapshotAttributes'+  { -- | The identifier for the cluster snapshot to describe the attributes for.+    dbClusterSnapshotIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDBClusterSnapshotAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterSnapshotIdentifier', 'describeDBClusterSnapshotAttributes_dbClusterSnapshotIdentifier' - The identifier for the cluster snapshot to describe the attributes for.+newDescribeDBClusterSnapshotAttributes ::+  -- | 'dbClusterSnapshotIdentifier'+  Prelude.Text ->+  DescribeDBClusterSnapshotAttributes+newDescribeDBClusterSnapshotAttributes+  pDBClusterSnapshotIdentifier_ =+    DescribeDBClusterSnapshotAttributes'+      { dbClusterSnapshotIdentifier =+          pDBClusterSnapshotIdentifier_+      }++-- | The identifier for the cluster snapshot to describe the attributes for.+describeDBClusterSnapshotAttributes_dbClusterSnapshotIdentifier :: Lens.Lens' DescribeDBClusterSnapshotAttributes Prelude.Text+describeDBClusterSnapshotAttributes_dbClusterSnapshotIdentifier = Lens.lens (\DescribeDBClusterSnapshotAttributes' {dbClusterSnapshotIdentifier} -> dbClusterSnapshotIdentifier) (\s@DescribeDBClusterSnapshotAttributes' {} a -> s {dbClusterSnapshotIdentifier = a} :: DescribeDBClusterSnapshotAttributes)++instance+  Core.AWSRequest+    DescribeDBClusterSnapshotAttributes+  where+  type+    AWSResponse DescribeDBClusterSnapshotAttributes =+      DescribeDBClusterSnapshotAttributesResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeDBClusterSnapshotAttributesResult"+      ( \s h x ->+          DescribeDBClusterSnapshotAttributesResponse'+            Prelude.<$> (x Data..@? "DBClusterSnapshotAttributesResult")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeDBClusterSnapshotAttributes+  where+  hashWithSalt+    _salt+    DescribeDBClusterSnapshotAttributes' {..} =+      _salt+        `Prelude.hashWithSalt` dbClusterSnapshotIdentifier++instance+  Prelude.NFData+    DescribeDBClusterSnapshotAttributes+  where+  rnf DescribeDBClusterSnapshotAttributes' {..} =+    Prelude.rnf dbClusterSnapshotIdentifier++instance+  Data.ToHeaders+    DescribeDBClusterSnapshotAttributes+  where+  toHeaders = Prelude.const Prelude.mempty++instance+  Data.ToPath+    DescribeDBClusterSnapshotAttributes+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    DescribeDBClusterSnapshotAttributes+  where+  toQuery DescribeDBClusterSnapshotAttributes' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "DescribeDBClusterSnapshotAttributes" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBClusterSnapshotIdentifier"+          Data.=: dbClusterSnapshotIdentifier+      ]++-- | /See:/ 'newDescribeDBClusterSnapshotAttributesResponse' smart constructor.+data DescribeDBClusterSnapshotAttributesResponse = DescribeDBClusterSnapshotAttributesResponse'+  { dbClusterSnapshotAttributesResult :: Prelude.Maybe DBClusterSnapshotAttributesResult,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDBClusterSnapshotAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterSnapshotAttributesResult', 'describeDBClusterSnapshotAttributesResponse_dbClusterSnapshotAttributesResult' - Undocumented member.+--+-- 'httpStatus', 'describeDBClusterSnapshotAttributesResponse_httpStatus' - The response's http status code.+newDescribeDBClusterSnapshotAttributesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDBClusterSnapshotAttributesResponse+newDescribeDBClusterSnapshotAttributesResponse+  pHttpStatus_ =+    DescribeDBClusterSnapshotAttributesResponse'+      { dbClusterSnapshotAttributesResult =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Undocumented member.+describeDBClusterSnapshotAttributesResponse_dbClusterSnapshotAttributesResult :: Lens.Lens' DescribeDBClusterSnapshotAttributesResponse (Prelude.Maybe DBClusterSnapshotAttributesResult)+describeDBClusterSnapshotAttributesResponse_dbClusterSnapshotAttributesResult = Lens.lens (\DescribeDBClusterSnapshotAttributesResponse' {dbClusterSnapshotAttributesResult} -> dbClusterSnapshotAttributesResult) (\s@DescribeDBClusterSnapshotAttributesResponse' {} a -> s {dbClusterSnapshotAttributesResult = a} :: DescribeDBClusterSnapshotAttributesResponse)++-- | The response's http status code.+describeDBClusterSnapshotAttributesResponse_httpStatus :: Lens.Lens' DescribeDBClusterSnapshotAttributesResponse Prelude.Int+describeDBClusterSnapshotAttributesResponse_httpStatus = Lens.lens (\DescribeDBClusterSnapshotAttributesResponse' {httpStatus} -> httpStatus) (\s@DescribeDBClusterSnapshotAttributesResponse' {} a -> s {httpStatus = a} :: DescribeDBClusterSnapshotAttributesResponse)++instance+  Prelude.NFData+    DescribeDBClusterSnapshotAttributesResponse+  where+  rnf DescribeDBClusterSnapshotAttributesResponse' {..} =+    Prelude.rnf dbClusterSnapshotAttributesResult+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeDBClusterSnapshots.hs view
@@ -0,0 +1,473 @@+{-# 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.DocumentDB.DescribeDBClusterSnapshots+-- 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. This API operation supports+-- pagination.+--+-- This operation returns paginated results.+module Amazonka.DocumentDB.DescribeDBClusterSnapshots+  ( -- * Creating a Request+    DescribeDBClusterSnapshots (..),+    newDescribeDBClusterSnapshots,++    -- * Request Lenses+    describeDBClusterSnapshots_dbClusterIdentifier,+    describeDBClusterSnapshots_dbClusterSnapshotIdentifier,+    describeDBClusterSnapshots_filters,+    describeDBClusterSnapshots_includePublic,+    describeDBClusterSnapshots_includeShared,+    describeDBClusterSnapshots_marker,+    describeDBClusterSnapshots_maxRecords,+    describeDBClusterSnapshots_snapshotType,++    -- * Destructuring the Response+    DescribeDBClusterSnapshotsResponse (..),+    newDescribeDBClusterSnapshotsResponse,++    -- * Response Lenses+    describeDBClusterSnapshotsResponse_dbClusterSnapshots,+    describeDBClusterSnapshotsResponse_marker,+    describeDBClusterSnapshotsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DescribeDBClusterSnapshots.+--+-- /See:/ 'newDescribeDBClusterSnapshots' smart constructor.+data DescribeDBClusterSnapshots = DescribeDBClusterSnapshots'+  { -- | The ID of the cluster to retrieve the list of cluster snapshots for.+    -- This parameter can\'t be used with the @DBClusterSnapshotIdentifier@+    -- parameter. This parameter is not case sensitive.+    --+    -- Constraints:+    --+    -- -   If provided, must match the identifier of an existing @DBCluster@.+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,+    -- | A specific cluster snapshot identifier to describe. This parameter+    -- can\'t be used with the @DBClusterIdentifier@ parameter. This value is+    -- stored as a lowercase string.+    --+    -- Constraints:+    --+    -- -   If provided, must match the identifier of an existing+    --     @DBClusterSnapshot@.+    --+    -- -   If this identifier is for an automated snapshot, the @SnapshotType@+    --     parameter must also be specified.+    dbClusterSnapshotIdentifier :: Prelude.Maybe Prelude.Text,+    -- | This parameter is not currently supported.+    filters :: Prelude.Maybe [Filter],+    -- | Set to @true@ to include manual cluster snapshots that are public and+    -- can be copied or restored by any Amazon Web Services account, and+    -- otherwise @false@. The default is @false@.+    includePublic :: Prelude.Maybe Prelude.Bool,+    -- | Set to @true@ to include shared manual cluster snapshots from other+    -- Amazon Web Services accounts that this Amazon Web Services account has+    -- been given permission to copy or restore, and otherwise @false@. The+    -- default is @false@.+    includeShared :: Prelude.Maybe Prelude.Bool,+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to include in the response. If more+    -- records exist than the specified @MaxRecords@ value, a pagination token+    -- (marker) is included in the response so that the remaining results can+    -- be retrieved.+    --+    -- Default: 100+    --+    -- Constraints: Minimum 20, maximum 100.+    maxRecords :: Prelude.Maybe Prelude.Int,+    -- | The type of cluster snapshots to be returned. You can specify one of the+    -- following values:+    --+    -- -   @automated@ - Return all cluster snapshots that Amazon DocumentDB+    --     has automatically created for your Amazon Web Services account.+    --+    -- -   @manual@ - Return all cluster snapshots that you have manually+    --     created for your Amazon Web Services account.+    --+    -- -   @shared@ - Return all manual cluster snapshots that have been shared+    --     to your Amazon Web Services account.+    --+    -- -   @public@ - Return all cluster snapshots that have been marked as+    --     public.+    --+    -- If you don\'t specify a @SnapshotType@ value, then both automated and+    -- manual cluster snapshots are returned. You can include shared cluster+    -- snapshots with these results by setting the @IncludeShared@ parameter to+    -- @true@. You can include public cluster snapshots with these results by+    -- setting the@IncludePublic@ parameter to @true@.+    --+    -- The @IncludeShared@ and @IncludePublic@ parameters don\'t apply for+    -- @SnapshotType@ values of @manual@ or @automated@. The @IncludePublic@+    -- parameter doesn\'t apply when @SnapshotType@ is set to @shared@. The+    -- @IncludeShared@ parameter doesn\'t apply when @SnapshotType@ is set to+    -- @public@.+    snapshotType :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDBClusterSnapshots' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterIdentifier', 'describeDBClusterSnapshots_dbClusterIdentifier' - The ID of the cluster to retrieve the list of cluster snapshots for.+-- This parameter can\'t be used with the @DBClusterSnapshotIdentifier@+-- parameter. This parameter is not case sensitive.+--+-- Constraints:+--+-- -   If provided, must match the identifier of an existing @DBCluster@.+--+-- 'dbClusterSnapshotIdentifier', 'describeDBClusterSnapshots_dbClusterSnapshotIdentifier' - A specific cluster snapshot identifier to describe. This parameter+-- can\'t be used with the @DBClusterIdentifier@ parameter. This value is+-- stored as a lowercase string.+--+-- Constraints:+--+-- -   If provided, must match the identifier of an existing+--     @DBClusterSnapshot@.+--+-- -   If this identifier is for an automated snapshot, the @SnapshotType@+--     parameter must also be specified.+--+-- 'filters', 'describeDBClusterSnapshots_filters' - This parameter is not currently supported.+--+-- 'includePublic', 'describeDBClusterSnapshots_includePublic' - Set to @true@ to include manual cluster snapshots that are public and+-- can be copied or restored by any Amazon Web Services account, and+-- otherwise @false@. The default is @false@.+--+-- 'includeShared', 'describeDBClusterSnapshots_includeShared' - Set to @true@ to include shared manual cluster snapshots from other+-- Amazon Web Services accounts that this Amazon Web Services account has+-- been given permission to copy or restore, and otherwise @false@. The+-- default is @false@.+--+-- 'marker', 'describeDBClusterSnapshots_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'maxRecords', 'describeDBClusterSnapshots_maxRecords' - The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+--+-- 'snapshotType', 'describeDBClusterSnapshots_snapshotType' - The type of cluster snapshots to be returned. You can specify one of the+-- following values:+--+-- -   @automated@ - Return all cluster snapshots that Amazon DocumentDB+--     has automatically created for your Amazon Web Services account.+--+-- -   @manual@ - Return all cluster snapshots that you have manually+--     created for your Amazon Web Services account.+--+-- -   @shared@ - Return all manual cluster snapshots that have been shared+--     to your Amazon Web Services account.+--+-- -   @public@ - Return all cluster snapshots that have been marked as+--     public.+--+-- If you don\'t specify a @SnapshotType@ value, then both automated and+-- manual cluster snapshots are returned. You can include shared cluster+-- snapshots with these results by setting the @IncludeShared@ parameter to+-- @true@. You can include public cluster snapshots with these results by+-- setting the@IncludePublic@ parameter to @true@.+--+-- The @IncludeShared@ and @IncludePublic@ parameters don\'t apply for+-- @SnapshotType@ values of @manual@ or @automated@. The @IncludePublic@+-- parameter doesn\'t apply when @SnapshotType@ is set to @shared@. The+-- @IncludeShared@ parameter doesn\'t apply when @SnapshotType@ is set to+-- @public@.+newDescribeDBClusterSnapshots ::+  DescribeDBClusterSnapshots+newDescribeDBClusterSnapshots =+  DescribeDBClusterSnapshots'+    { dbClusterIdentifier =+        Prelude.Nothing,+      dbClusterSnapshotIdentifier = Prelude.Nothing,+      filters = Prelude.Nothing,+      includePublic = Prelude.Nothing,+      includeShared = Prelude.Nothing,+      marker = Prelude.Nothing,+      maxRecords = Prelude.Nothing,+      snapshotType = Prelude.Nothing+    }++-- | The ID of the cluster to retrieve the list of cluster snapshots for.+-- This parameter can\'t be used with the @DBClusterSnapshotIdentifier@+-- parameter. This parameter is not case sensitive.+--+-- Constraints:+--+-- -   If provided, must match the identifier of an existing @DBCluster@.+describeDBClusterSnapshots_dbClusterIdentifier :: Lens.Lens' DescribeDBClusterSnapshots (Prelude.Maybe Prelude.Text)+describeDBClusterSnapshots_dbClusterIdentifier = Lens.lens (\DescribeDBClusterSnapshots' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@DescribeDBClusterSnapshots' {} a -> s {dbClusterIdentifier = a} :: DescribeDBClusterSnapshots)++-- | A specific cluster snapshot identifier to describe. This parameter+-- can\'t be used with the @DBClusterIdentifier@ parameter. This value is+-- stored as a lowercase string.+--+-- Constraints:+--+-- -   If provided, must match the identifier of an existing+--     @DBClusterSnapshot@.+--+-- -   If this identifier is for an automated snapshot, the @SnapshotType@+--     parameter must also be specified.+describeDBClusterSnapshots_dbClusterSnapshotIdentifier :: Lens.Lens' DescribeDBClusterSnapshots (Prelude.Maybe Prelude.Text)+describeDBClusterSnapshots_dbClusterSnapshotIdentifier = Lens.lens (\DescribeDBClusterSnapshots' {dbClusterSnapshotIdentifier} -> dbClusterSnapshotIdentifier) (\s@DescribeDBClusterSnapshots' {} a -> s {dbClusterSnapshotIdentifier = a} :: DescribeDBClusterSnapshots)++-- | This parameter is not currently supported.+describeDBClusterSnapshots_filters :: Lens.Lens' DescribeDBClusterSnapshots (Prelude.Maybe [Filter])+describeDBClusterSnapshots_filters = Lens.lens (\DescribeDBClusterSnapshots' {filters} -> filters) (\s@DescribeDBClusterSnapshots' {} a -> s {filters = a} :: DescribeDBClusterSnapshots) Prelude.. Lens.mapping Lens.coerced++-- | Set to @true@ to include manual cluster snapshots that are public and+-- can be copied or restored by any Amazon Web Services account, and+-- otherwise @false@. The default is @false@.+describeDBClusterSnapshots_includePublic :: Lens.Lens' DescribeDBClusterSnapshots (Prelude.Maybe Prelude.Bool)+describeDBClusterSnapshots_includePublic = Lens.lens (\DescribeDBClusterSnapshots' {includePublic} -> includePublic) (\s@DescribeDBClusterSnapshots' {} a -> s {includePublic = a} :: DescribeDBClusterSnapshots)++-- | Set to @true@ to include shared manual cluster snapshots from other+-- Amazon Web Services accounts that this Amazon Web Services account has+-- been given permission to copy or restore, and otherwise @false@. The+-- default is @false@.+describeDBClusterSnapshots_includeShared :: Lens.Lens' DescribeDBClusterSnapshots (Prelude.Maybe Prelude.Bool)+describeDBClusterSnapshots_includeShared = Lens.lens (\DescribeDBClusterSnapshots' {includeShared} -> includeShared) (\s@DescribeDBClusterSnapshots' {} a -> s {includeShared = a} :: DescribeDBClusterSnapshots)++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeDBClusterSnapshots_marker :: Lens.Lens' DescribeDBClusterSnapshots (Prelude.Maybe Prelude.Text)+describeDBClusterSnapshots_marker = Lens.lens (\DescribeDBClusterSnapshots' {marker} -> marker) (\s@DescribeDBClusterSnapshots' {} a -> s {marker = a} :: DescribeDBClusterSnapshots)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+describeDBClusterSnapshots_maxRecords :: Lens.Lens' DescribeDBClusterSnapshots (Prelude.Maybe Prelude.Int)+describeDBClusterSnapshots_maxRecords = Lens.lens (\DescribeDBClusterSnapshots' {maxRecords} -> maxRecords) (\s@DescribeDBClusterSnapshots' {} a -> s {maxRecords = a} :: DescribeDBClusterSnapshots)++-- | The type of cluster snapshots to be returned. You can specify one of the+-- following values:+--+-- -   @automated@ - Return all cluster snapshots that Amazon DocumentDB+--     has automatically created for your Amazon Web Services account.+--+-- -   @manual@ - Return all cluster snapshots that you have manually+--     created for your Amazon Web Services account.+--+-- -   @shared@ - Return all manual cluster snapshots that have been shared+--     to your Amazon Web Services account.+--+-- -   @public@ - Return all cluster snapshots that have been marked as+--     public.+--+-- If you don\'t specify a @SnapshotType@ value, then both automated and+-- manual cluster snapshots are returned. You can include shared cluster+-- snapshots with these results by setting the @IncludeShared@ parameter to+-- @true@. You can include public cluster snapshots with these results by+-- setting the@IncludePublic@ parameter to @true@.+--+-- The @IncludeShared@ and @IncludePublic@ parameters don\'t apply for+-- @SnapshotType@ values of @manual@ or @automated@. The @IncludePublic@+-- parameter doesn\'t apply when @SnapshotType@ is set to @shared@. The+-- @IncludeShared@ parameter doesn\'t apply when @SnapshotType@ is set to+-- @public@.+describeDBClusterSnapshots_snapshotType :: Lens.Lens' DescribeDBClusterSnapshots (Prelude.Maybe Prelude.Text)+describeDBClusterSnapshots_snapshotType = Lens.lens (\DescribeDBClusterSnapshots' {snapshotType} -> snapshotType) (\s@DescribeDBClusterSnapshots' {} a -> s {snapshotType = a} :: DescribeDBClusterSnapshots)++instance Core.AWSPager DescribeDBClusterSnapshots where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeDBClusterSnapshotsResponse_marker+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeDBClusterSnapshotsResponse_dbClusterSnapshots+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeDBClusterSnapshots_marker+          Lens..~ rs+          Lens.^? describeDBClusterSnapshotsResponse_marker+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeDBClusterSnapshots where+  type+    AWSResponse DescribeDBClusterSnapshots =+      DescribeDBClusterSnapshotsResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeDBClusterSnapshotsResult"+      ( \s h x ->+          DescribeDBClusterSnapshotsResponse'+            Prelude.<$> ( x+                            Data..@? "DBClusterSnapshots"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may (Data.parseXMLList "DBClusterSnapshot")+                        )+            Prelude.<*> (x Data..@? "Marker")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDBClusterSnapshots where+  hashWithSalt _salt DescribeDBClusterSnapshots' {..} =+    _salt+      `Prelude.hashWithSalt` dbClusterIdentifier+      `Prelude.hashWithSalt` dbClusterSnapshotIdentifier+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` includePublic+      `Prelude.hashWithSalt` includeShared+      `Prelude.hashWithSalt` marker+      `Prelude.hashWithSalt` maxRecords+      `Prelude.hashWithSalt` snapshotType++instance Prelude.NFData DescribeDBClusterSnapshots where+  rnf DescribeDBClusterSnapshots' {..} =+    Prelude.rnf dbClusterIdentifier+      `Prelude.seq` Prelude.rnf dbClusterSnapshotIdentifier+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf includePublic+      `Prelude.seq` Prelude.rnf includeShared+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf maxRecords+      `Prelude.seq` Prelude.rnf snapshotType++instance Data.ToHeaders DescribeDBClusterSnapshots where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeDBClusterSnapshots where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeDBClusterSnapshots where+  toQuery DescribeDBClusterSnapshots' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DescribeDBClusterSnapshots" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBClusterIdentifier" Data.=: dbClusterIdentifier,+        "DBClusterSnapshotIdentifier"+          Data.=: dbClusterSnapshotIdentifier,+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "IncludePublic" Data.=: includePublic,+        "IncludeShared" Data.=: includeShared,+        "Marker" Data.=: marker,+        "MaxRecords" Data.=: maxRecords,+        "SnapshotType" Data.=: snapshotType+      ]++-- | Represents the output of DescribeDBClusterSnapshots.+--+-- /See:/ 'newDescribeDBClusterSnapshotsResponse' smart constructor.+data DescribeDBClusterSnapshotsResponse = DescribeDBClusterSnapshotsResponse'+  { -- | Provides a list of cluster snapshots.+    dbClusterSnapshots :: Prelude.Maybe [DBClusterSnapshot],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: 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 'DescribeDBClusterSnapshotsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterSnapshots', 'describeDBClusterSnapshotsResponse_dbClusterSnapshots' - Provides a list of cluster snapshots.+--+-- 'marker', 'describeDBClusterSnapshotsResponse_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'httpStatus', 'describeDBClusterSnapshotsResponse_httpStatus' - The response's http status code.+newDescribeDBClusterSnapshotsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDBClusterSnapshotsResponse+newDescribeDBClusterSnapshotsResponse pHttpStatus_ =+  DescribeDBClusterSnapshotsResponse'+    { dbClusterSnapshots =+        Prelude.Nothing,+      marker = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Provides a list of cluster snapshots.+describeDBClusterSnapshotsResponse_dbClusterSnapshots :: Lens.Lens' DescribeDBClusterSnapshotsResponse (Prelude.Maybe [DBClusterSnapshot])+describeDBClusterSnapshotsResponse_dbClusterSnapshots = Lens.lens (\DescribeDBClusterSnapshotsResponse' {dbClusterSnapshots} -> dbClusterSnapshots) (\s@DescribeDBClusterSnapshotsResponse' {} a -> s {dbClusterSnapshots = a} :: DescribeDBClusterSnapshotsResponse) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeDBClusterSnapshotsResponse_marker :: Lens.Lens' DescribeDBClusterSnapshotsResponse (Prelude.Maybe Prelude.Text)+describeDBClusterSnapshotsResponse_marker = Lens.lens (\DescribeDBClusterSnapshotsResponse' {marker} -> marker) (\s@DescribeDBClusterSnapshotsResponse' {} a -> s {marker = a} :: DescribeDBClusterSnapshotsResponse)++-- | The response's http status code.+describeDBClusterSnapshotsResponse_httpStatus :: Lens.Lens' DescribeDBClusterSnapshotsResponse Prelude.Int+describeDBClusterSnapshotsResponse_httpStatus = Lens.lens (\DescribeDBClusterSnapshotsResponse' {httpStatus} -> httpStatus) (\s@DescribeDBClusterSnapshotsResponse' {} a -> s {httpStatus = a} :: DescribeDBClusterSnapshotsResponse)++instance+  Prelude.NFData+    DescribeDBClusterSnapshotsResponse+  where+  rnf DescribeDBClusterSnapshotsResponse' {..} =+    Prelude.rnf dbClusterSnapshots+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeDBClusters.hs view
@@ -0,0 +1,319 @@+{-# 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.DocumentDB.DescribeDBClusters+-- 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 provisioned Amazon DocumentDB clusters. This+-- API operation supports pagination. For certain management features such+-- as cluster and instance lifecycle management, Amazon DocumentDB+-- leverages operational technology that is shared with Amazon RDS and+-- Amazon Neptune. Use the @filterName=engine,Values=docdb@ filter+-- parameter to return only Amazon DocumentDB clusters.+--+-- This operation returns paginated results.+module Amazonka.DocumentDB.DescribeDBClusters+  ( -- * Creating a Request+    DescribeDBClusters (..),+    newDescribeDBClusters,++    -- * Request Lenses+    describeDBClusters_dbClusterIdentifier,+    describeDBClusters_filters,+    describeDBClusters_marker,+    describeDBClusters_maxRecords,++    -- * Destructuring the Response+    DescribeDBClustersResponse (..),+    newDescribeDBClustersResponse,++    -- * Response Lenses+    describeDBClustersResponse_dbClusters,+    describeDBClustersResponse_marker,+    describeDBClustersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DescribeDBClusters.+--+-- /See:/ 'newDescribeDBClusters' smart constructor.+data DescribeDBClusters = DescribeDBClusters'+  { -- | The user-provided cluster identifier. If this parameter is specified,+    -- information from only the specific cluster is returned. This parameter+    -- isn\'t case sensitive.+    --+    -- Constraints:+    --+    -- -   If provided, must match an existing @DBClusterIdentifier@.+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,+    -- | A filter that specifies one or more clusters to describe.+    --+    -- Supported filters:+    --+    -- -   @db-cluster-id@ - Accepts cluster identifiers and cluster Amazon+    --     Resource Names (ARNs). The results list only includes information+    --     about the clusters identified by these ARNs.+    filters :: Prelude.Maybe [Filter],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to include in the response. If more+    -- records exist than the specified @MaxRecords@ value, a pagination token+    -- (marker) is included in the response so that the remaining results can+    -- be retrieved.+    --+    -- Default: 100+    --+    -- Constraints: Minimum 20, maximum 100.+    maxRecords :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDBClusters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterIdentifier', 'describeDBClusters_dbClusterIdentifier' - The user-provided cluster identifier. If this parameter is specified,+-- information from only the specific cluster is returned. This parameter+-- isn\'t case sensitive.+--+-- Constraints:+--+-- -   If provided, must match an existing @DBClusterIdentifier@.+--+-- 'filters', 'describeDBClusters_filters' - A filter that specifies one or more clusters to describe.+--+-- Supported filters:+--+-- -   @db-cluster-id@ - Accepts cluster identifiers and cluster Amazon+--     Resource Names (ARNs). The results list only includes information+--     about the clusters identified by these ARNs.+--+-- 'marker', 'describeDBClusters_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'maxRecords', 'describeDBClusters_maxRecords' - The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+newDescribeDBClusters ::+  DescribeDBClusters+newDescribeDBClusters =+  DescribeDBClusters'+    { dbClusterIdentifier =+        Prelude.Nothing,+      filters = Prelude.Nothing,+      marker = Prelude.Nothing,+      maxRecords = Prelude.Nothing+    }++-- | The user-provided cluster identifier. If this parameter is specified,+-- information from only the specific cluster is returned. This parameter+-- isn\'t case sensitive.+--+-- Constraints:+--+-- -   If provided, must match an existing @DBClusterIdentifier@.+describeDBClusters_dbClusterIdentifier :: Lens.Lens' DescribeDBClusters (Prelude.Maybe Prelude.Text)+describeDBClusters_dbClusterIdentifier = Lens.lens (\DescribeDBClusters' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@DescribeDBClusters' {} a -> s {dbClusterIdentifier = a} :: DescribeDBClusters)++-- | A filter that specifies one or more clusters to describe.+--+-- Supported filters:+--+-- -   @db-cluster-id@ - Accepts cluster identifiers and cluster Amazon+--     Resource Names (ARNs). The results list only includes information+--     about the clusters identified by these ARNs.+describeDBClusters_filters :: Lens.Lens' DescribeDBClusters (Prelude.Maybe [Filter])+describeDBClusters_filters = Lens.lens (\DescribeDBClusters' {filters} -> filters) (\s@DescribeDBClusters' {} a -> s {filters = a} :: DescribeDBClusters) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeDBClusters_marker :: Lens.Lens' DescribeDBClusters (Prelude.Maybe Prelude.Text)+describeDBClusters_marker = Lens.lens (\DescribeDBClusters' {marker} -> marker) (\s@DescribeDBClusters' {} a -> s {marker = a} :: DescribeDBClusters)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+describeDBClusters_maxRecords :: Lens.Lens' DescribeDBClusters (Prelude.Maybe Prelude.Int)+describeDBClusters_maxRecords = Lens.lens (\DescribeDBClusters' {maxRecords} -> maxRecords) (\s@DescribeDBClusters' {} a -> s {maxRecords = a} :: DescribeDBClusters)++instance Core.AWSPager DescribeDBClusters where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeDBClustersResponse_marker+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeDBClustersResponse_dbClusters+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeDBClusters_marker+          Lens..~ rs+          Lens.^? describeDBClustersResponse_marker+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeDBClusters where+  type+    AWSResponse DescribeDBClusters =+      DescribeDBClustersResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeDBClustersResult"+      ( \s h x ->+          DescribeDBClustersResponse'+            Prelude.<$> ( x+                            Data..@? "DBClusters"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may (Data.parseXMLList "DBCluster")+                        )+            Prelude.<*> (x Data..@? "Marker")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDBClusters where+  hashWithSalt _salt DescribeDBClusters' {..} =+    _salt+      `Prelude.hashWithSalt` dbClusterIdentifier+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` marker+      `Prelude.hashWithSalt` maxRecords++instance Prelude.NFData DescribeDBClusters where+  rnf DescribeDBClusters' {..} =+    Prelude.rnf dbClusterIdentifier+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf maxRecords++instance Data.ToHeaders DescribeDBClusters where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeDBClusters where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeDBClusters where+  toQuery DescribeDBClusters' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DescribeDBClusters" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBClusterIdentifier" Data.=: dbClusterIdentifier,+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "Marker" Data.=: marker,+        "MaxRecords" Data.=: maxRecords+      ]++-- | Represents the output of DescribeDBClusters.+--+-- /See:/ 'newDescribeDBClustersResponse' smart constructor.+data DescribeDBClustersResponse = DescribeDBClustersResponse'+  { -- | A list of clusters.+    dbClusters :: Prelude.Maybe [DBCluster],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: 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 'DescribeDBClustersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusters', 'describeDBClustersResponse_dbClusters' - A list of clusters.+--+-- 'marker', 'describeDBClustersResponse_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'httpStatus', 'describeDBClustersResponse_httpStatus' - The response's http status code.+newDescribeDBClustersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDBClustersResponse+newDescribeDBClustersResponse pHttpStatus_ =+  DescribeDBClustersResponse'+    { dbClusters =+        Prelude.Nothing,+      marker = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of clusters.+describeDBClustersResponse_dbClusters :: Lens.Lens' DescribeDBClustersResponse (Prelude.Maybe [DBCluster])+describeDBClustersResponse_dbClusters = Lens.lens (\DescribeDBClustersResponse' {dbClusters} -> dbClusters) (\s@DescribeDBClustersResponse' {} a -> s {dbClusters = a} :: DescribeDBClustersResponse) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeDBClustersResponse_marker :: Lens.Lens' DescribeDBClustersResponse (Prelude.Maybe Prelude.Text)+describeDBClustersResponse_marker = Lens.lens (\DescribeDBClustersResponse' {marker} -> marker) (\s@DescribeDBClustersResponse' {} a -> s {marker = a} :: DescribeDBClustersResponse)++-- | The response's http status code.+describeDBClustersResponse_httpStatus :: Lens.Lens' DescribeDBClustersResponse Prelude.Int+describeDBClustersResponse_httpStatus = Lens.lens (\DescribeDBClustersResponse' {httpStatus} -> httpStatus) (\s@DescribeDBClustersResponse' {} a -> s {httpStatus = a} :: DescribeDBClustersResponse)++instance Prelude.NFData DescribeDBClustersResponse where+  rnf DescribeDBClustersResponse' {..} =+    Prelude.rnf dbClusters+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeDBEngineVersions.hs view
@@ -0,0 +1,382 @@+{-# 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.DocumentDB.DescribeDBEngineVersions+-- 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 engines.+--+-- This operation returns paginated results.+module Amazonka.DocumentDB.DescribeDBEngineVersions+  ( -- * Creating a Request+    DescribeDBEngineVersions (..),+    newDescribeDBEngineVersions,++    -- * Request Lenses+    describeDBEngineVersions_dbParameterGroupFamily,+    describeDBEngineVersions_defaultOnly,+    describeDBEngineVersions_engine,+    describeDBEngineVersions_engineVersion,+    describeDBEngineVersions_filters,+    describeDBEngineVersions_listSupportedCharacterSets,+    describeDBEngineVersions_listSupportedTimezones,+    describeDBEngineVersions_marker,+    describeDBEngineVersions_maxRecords,++    -- * Destructuring the Response+    DescribeDBEngineVersionsResponse (..),+    newDescribeDBEngineVersionsResponse,++    -- * Response Lenses+    describeDBEngineVersionsResponse_dbEngineVersions,+    describeDBEngineVersionsResponse_marker,+    describeDBEngineVersionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DescribeDBEngineVersions.+--+-- /See:/ 'newDescribeDBEngineVersions' smart constructor.+data DescribeDBEngineVersions = DescribeDBEngineVersions'+  { -- | The name of a specific parameter group family to return details for.+    --+    -- Constraints:+    --+    -- -   If provided, must match an existing @DBParameterGroupFamily@.+    dbParameterGroupFamily :: Prelude.Maybe Prelude.Text,+    -- | Indicates that only the default version of the specified engine or+    -- engine and major version combination is returned.+    defaultOnly :: Prelude.Maybe Prelude.Bool,+    -- | The database engine to return.+    engine :: Prelude.Maybe Prelude.Text,+    -- | The database engine version to return.+    --+    -- Example: @3.6.0@+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | This parameter is not currently supported.+    filters :: Prelude.Maybe [Filter],+    -- | If this parameter is specified and the requested engine supports the+    -- @CharacterSetName@ parameter for @CreateDBInstance@, the response+    -- includes a list of supported character sets for each engine version.+    listSupportedCharacterSets :: Prelude.Maybe Prelude.Bool,+    -- | If this parameter is specified and the requested engine supports the+    -- @TimeZone@ parameter for @CreateDBInstance@, the response includes a+    -- list of supported time zones for each engine version.+    listSupportedTimezones :: Prelude.Maybe Prelude.Bool,+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to include in the response. If more+    -- records exist than the specified @MaxRecords@ value, a pagination token+    -- (marker) is included in the response so that the remaining results can+    -- be retrieved.+    --+    -- Default: 100+    --+    -- Constraints: Minimum 20, maximum 100.+    maxRecords :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDBEngineVersions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbParameterGroupFamily', 'describeDBEngineVersions_dbParameterGroupFamily' - The name of a specific parameter group family to return details for.+--+-- Constraints:+--+-- -   If provided, must match an existing @DBParameterGroupFamily@.+--+-- 'defaultOnly', 'describeDBEngineVersions_defaultOnly' - Indicates that only the default version of the specified engine or+-- engine and major version combination is returned.+--+-- 'engine', 'describeDBEngineVersions_engine' - The database engine to return.+--+-- 'engineVersion', 'describeDBEngineVersions_engineVersion' - The database engine version to return.+--+-- Example: @3.6.0@+--+-- 'filters', 'describeDBEngineVersions_filters' - This parameter is not currently supported.+--+-- 'listSupportedCharacterSets', 'describeDBEngineVersions_listSupportedCharacterSets' - If this parameter is specified and the requested engine supports the+-- @CharacterSetName@ parameter for @CreateDBInstance@, the response+-- includes a list of supported character sets for each engine version.+--+-- 'listSupportedTimezones', 'describeDBEngineVersions_listSupportedTimezones' - If this parameter is specified and the requested engine supports the+-- @TimeZone@ parameter for @CreateDBInstance@, the response includes a+-- list of supported time zones for each engine version.+--+-- 'marker', 'describeDBEngineVersions_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'maxRecords', 'describeDBEngineVersions_maxRecords' - The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+newDescribeDBEngineVersions ::+  DescribeDBEngineVersions+newDescribeDBEngineVersions =+  DescribeDBEngineVersions'+    { dbParameterGroupFamily =+        Prelude.Nothing,+      defaultOnly = Prelude.Nothing,+      engine = Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      filters = Prelude.Nothing,+      listSupportedCharacterSets = Prelude.Nothing,+      listSupportedTimezones = Prelude.Nothing,+      marker = Prelude.Nothing,+      maxRecords = Prelude.Nothing+    }++-- | The name of a specific parameter group family to return details for.+--+-- Constraints:+--+-- -   If provided, must match an existing @DBParameterGroupFamily@.+describeDBEngineVersions_dbParameterGroupFamily :: Lens.Lens' DescribeDBEngineVersions (Prelude.Maybe Prelude.Text)+describeDBEngineVersions_dbParameterGroupFamily = Lens.lens (\DescribeDBEngineVersions' {dbParameterGroupFamily} -> dbParameterGroupFamily) (\s@DescribeDBEngineVersions' {} a -> s {dbParameterGroupFamily = a} :: DescribeDBEngineVersions)++-- | Indicates that only the default version of the specified engine or+-- engine and major version combination is returned.+describeDBEngineVersions_defaultOnly :: Lens.Lens' DescribeDBEngineVersions (Prelude.Maybe Prelude.Bool)+describeDBEngineVersions_defaultOnly = Lens.lens (\DescribeDBEngineVersions' {defaultOnly} -> defaultOnly) (\s@DescribeDBEngineVersions' {} a -> s {defaultOnly = a} :: DescribeDBEngineVersions)++-- | The database engine to return.+describeDBEngineVersions_engine :: Lens.Lens' DescribeDBEngineVersions (Prelude.Maybe Prelude.Text)+describeDBEngineVersions_engine = Lens.lens (\DescribeDBEngineVersions' {engine} -> engine) (\s@DescribeDBEngineVersions' {} a -> s {engine = a} :: DescribeDBEngineVersions)++-- | The database engine version to return.+--+-- Example: @3.6.0@+describeDBEngineVersions_engineVersion :: Lens.Lens' DescribeDBEngineVersions (Prelude.Maybe Prelude.Text)+describeDBEngineVersions_engineVersion = Lens.lens (\DescribeDBEngineVersions' {engineVersion} -> engineVersion) (\s@DescribeDBEngineVersions' {} a -> s {engineVersion = a} :: DescribeDBEngineVersions)++-- | This parameter is not currently supported.+describeDBEngineVersions_filters :: Lens.Lens' DescribeDBEngineVersions (Prelude.Maybe [Filter])+describeDBEngineVersions_filters = Lens.lens (\DescribeDBEngineVersions' {filters} -> filters) (\s@DescribeDBEngineVersions' {} a -> s {filters = a} :: DescribeDBEngineVersions) Prelude.. Lens.mapping Lens.coerced++-- | If this parameter is specified and the requested engine supports the+-- @CharacterSetName@ parameter for @CreateDBInstance@, the response+-- includes a list of supported character sets for each engine version.+describeDBEngineVersions_listSupportedCharacterSets :: Lens.Lens' DescribeDBEngineVersions (Prelude.Maybe Prelude.Bool)+describeDBEngineVersions_listSupportedCharacterSets = Lens.lens (\DescribeDBEngineVersions' {listSupportedCharacterSets} -> listSupportedCharacterSets) (\s@DescribeDBEngineVersions' {} a -> s {listSupportedCharacterSets = a} :: DescribeDBEngineVersions)++-- | If this parameter is specified and the requested engine supports the+-- @TimeZone@ parameter for @CreateDBInstance@, the response includes a+-- list of supported time zones for each engine version.+describeDBEngineVersions_listSupportedTimezones :: Lens.Lens' DescribeDBEngineVersions (Prelude.Maybe Prelude.Bool)+describeDBEngineVersions_listSupportedTimezones = Lens.lens (\DescribeDBEngineVersions' {listSupportedTimezones} -> listSupportedTimezones) (\s@DescribeDBEngineVersions' {} a -> s {listSupportedTimezones = a} :: DescribeDBEngineVersions)++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeDBEngineVersions_marker :: Lens.Lens' DescribeDBEngineVersions (Prelude.Maybe Prelude.Text)+describeDBEngineVersions_marker = Lens.lens (\DescribeDBEngineVersions' {marker} -> marker) (\s@DescribeDBEngineVersions' {} a -> s {marker = a} :: DescribeDBEngineVersions)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+describeDBEngineVersions_maxRecords :: Lens.Lens' DescribeDBEngineVersions (Prelude.Maybe Prelude.Int)+describeDBEngineVersions_maxRecords = Lens.lens (\DescribeDBEngineVersions' {maxRecords} -> maxRecords) (\s@DescribeDBEngineVersions' {} a -> s {maxRecords = a} :: DescribeDBEngineVersions)++instance Core.AWSPager DescribeDBEngineVersions where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeDBEngineVersionsResponse_marker+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeDBEngineVersionsResponse_dbEngineVersions+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeDBEngineVersions_marker+          Lens..~ rs+          Lens.^? describeDBEngineVersionsResponse_marker+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeDBEngineVersions where+  type+    AWSResponse DescribeDBEngineVersions =+      DescribeDBEngineVersionsResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeDBEngineVersionsResult"+      ( \s h x ->+          DescribeDBEngineVersionsResponse'+            Prelude.<$> ( x+                            Data..@? "DBEngineVersions"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may (Data.parseXMLList "DBEngineVersion")+                        )+            Prelude.<*> (x Data..@? "Marker")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDBEngineVersions where+  hashWithSalt _salt DescribeDBEngineVersions' {..} =+    _salt+      `Prelude.hashWithSalt` dbParameterGroupFamily+      `Prelude.hashWithSalt` defaultOnly+      `Prelude.hashWithSalt` engine+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` listSupportedCharacterSets+      `Prelude.hashWithSalt` listSupportedTimezones+      `Prelude.hashWithSalt` marker+      `Prelude.hashWithSalt` maxRecords++instance Prelude.NFData DescribeDBEngineVersions where+  rnf DescribeDBEngineVersions' {..} =+    Prelude.rnf dbParameterGroupFamily+      `Prelude.seq` Prelude.rnf defaultOnly+      `Prelude.seq` Prelude.rnf engine+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf listSupportedCharacterSets+      `Prelude.seq` Prelude.rnf listSupportedTimezones+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf maxRecords++instance Data.ToHeaders DescribeDBEngineVersions where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeDBEngineVersions where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeDBEngineVersions where+  toQuery DescribeDBEngineVersions' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DescribeDBEngineVersions" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBParameterGroupFamily"+          Data.=: dbParameterGroupFamily,+        "DefaultOnly" Data.=: defaultOnly,+        "Engine" Data.=: engine,+        "EngineVersion" Data.=: engineVersion,+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "ListSupportedCharacterSets"+          Data.=: listSupportedCharacterSets,+        "ListSupportedTimezones"+          Data.=: listSupportedTimezones,+        "Marker" Data.=: marker,+        "MaxRecords" Data.=: maxRecords+      ]++-- | Represents the output of DescribeDBEngineVersions.+--+-- /See:/ 'newDescribeDBEngineVersionsResponse' smart constructor.+data DescribeDBEngineVersionsResponse = DescribeDBEngineVersionsResponse'+  { -- | Detailed information about one or more engine versions.+    dbEngineVersions :: Prelude.Maybe [DBEngineVersion],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: 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 'DescribeDBEngineVersionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbEngineVersions', 'describeDBEngineVersionsResponse_dbEngineVersions' - Detailed information about one or more engine versions.+--+-- 'marker', 'describeDBEngineVersionsResponse_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'httpStatus', 'describeDBEngineVersionsResponse_httpStatus' - The response's http status code.+newDescribeDBEngineVersionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDBEngineVersionsResponse+newDescribeDBEngineVersionsResponse pHttpStatus_ =+  DescribeDBEngineVersionsResponse'+    { dbEngineVersions =+        Prelude.Nothing,+      marker = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Detailed information about one or more engine versions.+describeDBEngineVersionsResponse_dbEngineVersions :: Lens.Lens' DescribeDBEngineVersionsResponse (Prelude.Maybe [DBEngineVersion])+describeDBEngineVersionsResponse_dbEngineVersions = Lens.lens (\DescribeDBEngineVersionsResponse' {dbEngineVersions} -> dbEngineVersions) (\s@DescribeDBEngineVersionsResponse' {} a -> s {dbEngineVersions = a} :: DescribeDBEngineVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeDBEngineVersionsResponse_marker :: Lens.Lens' DescribeDBEngineVersionsResponse (Prelude.Maybe Prelude.Text)+describeDBEngineVersionsResponse_marker = Lens.lens (\DescribeDBEngineVersionsResponse' {marker} -> marker) (\s@DescribeDBEngineVersionsResponse' {} a -> s {marker = a} :: DescribeDBEngineVersionsResponse)++-- | The response's http status code.+describeDBEngineVersionsResponse_httpStatus :: Lens.Lens' DescribeDBEngineVersionsResponse Prelude.Int+describeDBEngineVersionsResponse_httpStatus = Lens.lens (\DescribeDBEngineVersionsResponse' {httpStatus} -> httpStatus) (\s@DescribeDBEngineVersionsResponse' {} a -> s {httpStatus = a} :: DescribeDBEngineVersionsResponse)++instance+  Prelude.NFData+    DescribeDBEngineVersionsResponse+  where+  rnf DescribeDBEngineVersionsResponse' {..} =+    Prelude.rnf dbEngineVersions+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeDBInstances.hs view
@@ -0,0 +1,330 @@+{-# 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.DocumentDB.DescribeDBInstances+-- 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 provisioned Amazon DocumentDB instances. This+-- API supports pagination.+--+-- This operation returns paginated results.+module Amazonka.DocumentDB.DescribeDBInstances+  ( -- * Creating a Request+    DescribeDBInstances (..),+    newDescribeDBInstances,++    -- * Request Lenses+    describeDBInstances_dbInstanceIdentifier,+    describeDBInstances_filters,+    describeDBInstances_marker,+    describeDBInstances_maxRecords,++    -- * Destructuring the Response+    DescribeDBInstancesResponse (..),+    newDescribeDBInstancesResponse,++    -- * Response Lenses+    describeDBInstancesResponse_dbInstances,+    describeDBInstancesResponse_marker,+    describeDBInstancesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DescribeDBInstances.+--+-- /See:/ 'newDescribeDBInstances' smart constructor.+data DescribeDBInstances = DescribeDBInstances'+  { -- | The user-provided instance identifier. If this parameter is specified,+    -- information from only the specific instance is returned. This parameter+    -- isn\'t case sensitive.+    --+    -- Constraints:+    --+    -- -   If provided, must match the identifier of an existing @DBInstance@.+    dbInstanceIdentifier :: Prelude.Maybe Prelude.Text,+    -- | A filter that specifies one or more instances to describe.+    --+    -- Supported filters:+    --+    -- -   @db-cluster-id@ - Accepts cluster identifiers and cluster Amazon+    --     Resource Names (ARNs). The results list includes only the+    --     information about the instances that are associated with the+    --     clusters that are identified by these ARNs.+    --+    -- -   @db-instance-id@ - Accepts instance identifiers and instance ARNs.+    --     The results list includes only the information about the instances+    --     that are identified by these ARNs.+    filters :: Prelude.Maybe [Filter],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to include in the response. If more+    -- records exist than the specified @MaxRecords@ value, a pagination token+    -- (marker) is included in the response so that the remaining results can+    -- be retrieved.+    --+    -- Default: 100+    --+    -- Constraints: Minimum 20, maximum 100.+    maxRecords :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDBInstances' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbInstanceIdentifier', 'describeDBInstances_dbInstanceIdentifier' - The user-provided instance identifier. If this parameter is specified,+-- information from only the specific instance is returned. This parameter+-- isn\'t case sensitive.+--+-- Constraints:+--+-- -   If provided, must match the identifier of an existing @DBInstance@.+--+-- 'filters', 'describeDBInstances_filters' - A filter that specifies one or more instances to describe.+--+-- Supported filters:+--+-- -   @db-cluster-id@ - Accepts cluster identifiers and cluster Amazon+--     Resource Names (ARNs). The results list includes only the+--     information about the instances that are associated with the+--     clusters that are identified by these ARNs.+--+-- -   @db-instance-id@ - Accepts instance identifiers and instance ARNs.+--     The results list includes only the information about the instances+--     that are identified by these ARNs.+--+-- 'marker', 'describeDBInstances_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'maxRecords', 'describeDBInstances_maxRecords' - The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+newDescribeDBInstances ::+  DescribeDBInstances+newDescribeDBInstances =+  DescribeDBInstances'+    { dbInstanceIdentifier =+        Prelude.Nothing,+      filters = Prelude.Nothing,+      marker = Prelude.Nothing,+      maxRecords = Prelude.Nothing+    }++-- | The user-provided instance identifier. If this parameter is specified,+-- information from only the specific instance is returned. This parameter+-- isn\'t case sensitive.+--+-- Constraints:+--+-- -   If provided, must match the identifier of an existing @DBInstance@.+describeDBInstances_dbInstanceIdentifier :: Lens.Lens' DescribeDBInstances (Prelude.Maybe Prelude.Text)+describeDBInstances_dbInstanceIdentifier = Lens.lens (\DescribeDBInstances' {dbInstanceIdentifier} -> dbInstanceIdentifier) (\s@DescribeDBInstances' {} a -> s {dbInstanceIdentifier = a} :: DescribeDBInstances)++-- | A filter that specifies one or more instances to describe.+--+-- Supported filters:+--+-- -   @db-cluster-id@ - Accepts cluster identifiers and cluster Amazon+--     Resource Names (ARNs). The results list includes only the+--     information about the instances that are associated with the+--     clusters that are identified by these ARNs.+--+-- -   @db-instance-id@ - Accepts instance identifiers and instance ARNs.+--     The results list includes only the information about the instances+--     that are identified by these ARNs.+describeDBInstances_filters :: Lens.Lens' DescribeDBInstances (Prelude.Maybe [Filter])+describeDBInstances_filters = Lens.lens (\DescribeDBInstances' {filters} -> filters) (\s@DescribeDBInstances' {} a -> s {filters = a} :: DescribeDBInstances) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeDBInstances_marker :: Lens.Lens' DescribeDBInstances (Prelude.Maybe Prelude.Text)+describeDBInstances_marker = Lens.lens (\DescribeDBInstances' {marker} -> marker) (\s@DescribeDBInstances' {} a -> s {marker = a} :: DescribeDBInstances)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+describeDBInstances_maxRecords :: Lens.Lens' DescribeDBInstances (Prelude.Maybe Prelude.Int)+describeDBInstances_maxRecords = Lens.lens (\DescribeDBInstances' {maxRecords} -> maxRecords) (\s@DescribeDBInstances' {} a -> s {maxRecords = a} :: DescribeDBInstances)++instance Core.AWSPager DescribeDBInstances where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeDBInstancesResponse_marker+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeDBInstancesResponse_dbInstances+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeDBInstances_marker+          Lens..~ rs+          Lens.^? describeDBInstancesResponse_marker+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeDBInstances where+  type+    AWSResponse DescribeDBInstances =+      DescribeDBInstancesResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeDBInstancesResult"+      ( \s h x ->+          DescribeDBInstancesResponse'+            Prelude.<$> ( x+                            Data..@? "DBInstances"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may (Data.parseXMLList "DBInstance")+                        )+            Prelude.<*> (x Data..@? "Marker")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDBInstances where+  hashWithSalt _salt DescribeDBInstances' {..} =+    _salt+      `Prelude.hashWithSalt` dbInstanceIdentifier+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` marker+      `Prelude.hashWithSalt` maxRecords++instance Prelude.NFData DescribeDBInstances where+  rnf DescribeDBInstances' {..} =+    Prelude.rnf dbInstanceIdentifier+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf maxRecords++instance Data.ToHeaders DescribeDBInstances where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeDBInstances where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeDBInstances where+  toQuery DescribeDBInstances' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DescribeDBInstances" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBInstanceIdentifier" Data.=: dbInstanceIdentifier,+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "Marker" Data.=: marker,+        "MaxRecords" Data.=: maxRecords+      ]++-- | Represents the output of DescribeDBInstances.+--+-- /See:/ 'newDescribeDBInstancesResponse' smart constructor.+data DescribeDBInstancesResponse = DescribeDBInstancesResponse'+  { -- | Detailed information about one or more instances.+    dbInstances :: Prelude.Maybe [DBInstance],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: 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 'DescribeDBInstancesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbInstances', 'describeDBInstancesResponse_dbInstances' - Detailed information about one or more instances.+--+-- 'marker', 'describeDBInstancesResponse_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'httpStatus', 'describeDBInstancesResponse_httpStatus' - The response's http status code.+newDescribeDBInstancesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDBInstancesResponse+newDescribeDBInstancesResponse pHttpStatus_ =+  DescribeDBInstancesResponse'+    { dbInstances =+        Prelude.Nothing,+      marker = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Detailed information about one or more instances.+describeDBInstancesResponse_dbInstances :: Lens.Lens' DescribeDBInstancesResponse (Prelude.Maybe [DBInstance])+describeDBInstancesResponse_dbInstances = Lens.lens (\DescribeDBInstancesResponse' {dbInstances} -> dbInstances) (\s@DescribeDBInstancesResponse' {} a -> s {dbInstances = a} :: DescribeDBInstancesResponse) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeDBInstancesResponse_marker :: Lens.Lens' DescribeDBInstancesResponse (Prelude.Maybe Prelude.Text)+describeDBInstancesResponse_marker = Lens.lens (\DescribeDBInstancesResponse' {marker} -> marker) (\s@DescribeDBInstancesResponse' {} a -> s {marker = a} :: DescribeDBInstancesResponse)++-- | The response's http status code.+describeDBInstancesResponse_httpStatus :: Lens.Lens' DescribeDBInstancesResponse Prelude.Int+describeDBInstancesResponse_httpStatus = Lens.lens (\DescribeDBInstancesResponse' {httpStatus} -> httpStatus) (\s@DescribeDBInstancesResponse' {} a -> s {httpStatus = a} :: DescribeDBInstancesResponse)++instance Prelude.NFData DescribeDBInstancesResponse where+  rnf DescribeDBInstancesResponse' {..} =+    Prelude.rnf dbInstances+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeDBSubnetGroups.hs view
@@ -0,0 +1,283 @@+{-# 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.DocumentDB.DescribeDBSubnetGroups+-- 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 @DBSubnetGroup@ descriptions. If a @DBSubnetGroupName@+-- is specified, the list will contain only the descriptions of the+-- specified @DBSubnetGroup@.+--+-- This operation returns paginated results.+module Amazonka.DocumentDB.DescribeDBSubnetGroups+  ( -- * Creating a Request+    DescribeDBSubnetGroups (..),+    newDescribeDBSubnetGroups,++    -- * Request Lenses+    describeDBSubnetGroups_dbSubnetGroupName,+    describeDBSubnetGroups_filters,+    describeDBSubnetGroups_marker,+    describeDBSubnetGroups_maxRecords,++    -- * Destructuring the Response+    DescribeDBSubnetGroupsResponse (..),+    newDescribeDBSubnetGroupsResponse,++    -- * Response Lenses+    describeDBSubnetGroupsResponse_dbSubnetGroups,+    describeDBSubnetGroupsResponse_marker,+    describeDBSubnetGroupsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DescribeDBSubnetGroups.+--+-- /See:/ 'newDescribeDBSubnetGroups' smart constructor.+data DescribeDBSubnetGroups = DescribeDBSubnetGroups'+  { -- | The name of the subnet group to return details for.+    dbSubnetGroupName :: Prelude.Maybe Prelude.Text,+    -- | This parameter is not currently supported.+    filters :: Prelude.Maybe [Filter],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to include in the response. If more+    -- records exist than the specified @MaxRecords@ value, a pagination token+    -- (marker) is included in the response so that the remaining results can+    -- be retrieved.+    --+    -- Default: 100+    --+    -- Constraints: Minimum 20, maximum 100.+    maxRecords :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDBSubnetGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbSubnetGroupName', 'describeDBSubnetGroups_dbSubnetGroupName' - The name of the subnet group to return details for.+--+-- 'filters', 'describeDBSubnetGroups_filters' - This parameter is not currently supported.+--+-- 'marker', 'describeDBSubnetGroups_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'maxRecords', 'describeDBSubnetGroups_maxRecords' - The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+newDescribeDBSubnetGroups ::+  DescribeDBSubnetGroups+newDescribeDBSubnetGroups =+  DescribeDBSubnetGroups'+    { dbSubnetGroupName =+        Prelude.Nothing,+      filters = Prelude.Nothing,+      marker = Prelude.Nothing,+      maxRecords = Prelude.Nothing+    }++-- | The name of the subnet group to return details for.+describeDBSubnetGroups_dbSubnetGroupName :: Lens.Lens' DescribeDBSubnetGroups (Prelude.Maybe Prelude.Text)+describeDBSubnetGroups_dbSubnetGroupName = Lens.lens (\DescribeDBSubnetGroups' {dbSubnetGroupName} -> dbSubnetGroupName) (\s@DescribeDBSubnetGroups' {} a -> s {dbSubnetGroupName = a} :: DescribeDBSubnetGroups)++-- | This parameter is not currently supported.+describeDBSubnetGroups_filters :: Lens.Lens' DescribeDBSubnetGroups (Prelude.Maybe [Filter])+describeDBSubnetGroups_filters = Lens.lens (\DescribeDBSubnetGroups' {filters} -> filters) (\s@DescribeDBSubnetGroups' {} a -> s {filters = a} :: DescribeDBSubnetGroups) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeDBSubnetGroups_marker :: Lens.Lens' DescribeDBSubnetGroups (Prelude.Maybe Prelude.Text)+describeDBSubnetGroups_marker = Lens.lens (\DescribeDBSubnetGroups' {marker} -> marker) (\s@DescribeDBSubnetGroups' {} a -> s {marker = a} :: DescribeDBSubnetGroups)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+describeDBSubnetGroups_maxRecords :: Lens.Lens' DescribeDBSubnetGroups (Prelude.Maybe Prelude.Int)+describeDBSubnetGroups_maxRecords = Lens.lens (\DescribeDBSubnetGroups' {maxRecords} -> maxRecords) (\s@DescribeDBSubnetGroups' {} a -> s {maxRecords = a} :: DescribeDBSubnetGroups)++instance Core.AWSPager DescribeDBSubnetGroups where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeDBSubnetGroupsResponse_marker+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeDBSubnetGroupsResponse_dbSubnetGroups+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeDBSubnetGroups_marker+          Lens..~ rs+          Lens.^? describeDBSubnetGroupsResponse_marker+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeDBSubnetGroups where+  type+    AWSResponse DescribeDBSubnetGroups =+      DescribeDBSubnetGroupsResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeDBSubnetGroupsResult"+      ( \s h x ->+          DescribeDBSubnetGroupsResponse'+            Prelude.<$> ( x+                            Data..@? "DBSubnetGroups"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may (Data.parseXMLList "DBSubnetGroup")+                        )+            Prelude.<*> (x Data..@? "Marker")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDBSubnetGroups where+  hashWithSalt _salt DescribeDBSubnetGroups' {..} =+    _salt+      `Prelude.hashWithSalt` dbSubnetGroupName+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` marker+      `Prelude.hashWithSalt` maxRecords++instance Prelude.NFData DescribeDBSubnetGroups where+  rnf DescribeDBSubnetGroups' {..} =+    Prelude.rnf dbSubnetGroupName+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf maxRecords++instance Data.ToHeaders DescribeDBSubnetGroups where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeDBSubnetGroups where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeDBSubnetGroups where+  toQuery DescribeDBSubnetGroups' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DescribeDBSubnetGroups" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBSubnetGroupName" Data.=: dbSubnetGroupName,+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "Marker" Data.=: marker,+        "MaxRecords" Data.=: maxRecords+      ]++-- | Represents the output of DescribeDBSubnetGroups.+--+-- /See:/ 'newDescribeDBSubnetGroupsResponse' smart constructor.+data DescribeDBSubnetGroupsResponse = DescribeDBSubnetGroupsResponse'+  { -- | Detailed information about one or more subnet groups.+    dbSubnetGroups :: Prelude.Maybe [DBSubnetGroup],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: 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 'DescribeDBSubnetGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbSubnetGroups', 'describeDBSubnetGroupsResponse_dbSubnetGroups' - Detailed information about one or more subnet groups.+--+-- 'marker', 'describeDBSubnetGroupsResponse_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'httpStatus', 'describeDBSubnetGroupsResponse_httpStatus' - The response's http status code.+newDescribeDBSubnetGroupsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDBSubnetGroupsResponse+newDescribeDBSubnetGroupsResponse pHttpStatus_ =+  DescribeDBSubnetGroupsResponse'+    { dbSubnetGroups =+        Prelude.Nothing,+      marker = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Detailed information about one or more subnet groups.+describeDBSubnetGroupsResponse_dbSubnetGroups :: Lens.Lens' DescribeDBSubnetGroupsResponse (Prelude.Maybe [DBSubnetGroup])+describeDBSubnetGroupsResponse_dbSubnetGroups = Lens.lens (\DescribeDBSubnetGroupsResponse' {dbSubnetGroups} -> dbSubnetGroups) (\s@DescribeDBSubnetGroupsResponse' {} a -> s {dbSubnetGroups = a} :: DescribeDBSubnetGroupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeDBSubnetGroupsResponse_marker :: Lens.Lens' DescribeDBSubnetGroupsResponse (Prelude.Maybe Prelude.Text)+describeDBSubnetGroupsResponse_marker = Lens.lens (\DescribeDBSubnetGroupsResponse' {marker} -> marker) (\s@DescribeDBSubnetGroupsResponse' {} a -> s {marker = a} :: DescribeDBSubnetGroupsResponse)++-- | The response's http status code.+describeDBSubnetGroupsResponse_httpStatus :: Lens.Lens' DescribeDBSubnetGroupsResponse Prelude.Int+describeDBSubnetGroupsResponse_httpStatus = Lens.lens (\DescribeDBSubnetGroupsResponse' {httpStatus} -> httpStatus) (\s@DescribeDBSubnetGroupsResponse' {} a -> s {httpStatus = a} :: DescribeDBSubnetGroupsResponse)++instance+  Prelude.NFData+    DescribeDBSubnetGroupsResponse+  where+  rnf DescribeDBSubnetGroupsResponse' {..} =+    Prelude.rnf dbSubnetGroups+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeEngineDefaultClusterParameters.hs view
@@ -0,0 +1,266 @@+{-# 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.DocumentDB.DescribeEngineDefaultClusterParameters+-- 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 default engine and system parameter information for the+-- cluster database engine.+module Amazonka.DocumentDB.DescribeEngineDefaultClusterParameters+  ( -- * Creating a Request+    DescribeEngineDefaultClusterParameters (..),+    newDescribeEngineDefaultClusterParameters,++    -- * Request Lenses+    describeEngineDefaultClusterParameters_filters,+    describeEngineDefaultClusterParameters_marker,+    describeEngineDefaultClusterParameters_maxRecords,+    describeEngineDefaultClusterParameters_dbParameterGroupFamily,++    -- * Destructuring the Response+    DescribeEngineDefaultClusterParametersResponse (..),+    newDescribeEngineDefaultClusterParametersResponse,++    -- * Response Lenses+    describeEngineDefaultClusterParametersResponse_engineDefaults,+    describeEngineDefaultClusterParametersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DescribeEngineDefaultClusterParameters.+--+-- /See:/ 'newDescribeEngineDefaultClusterParameters' smart constructor.+data DescribeEngineDefaultClusterParameters = DescribeEngineDefaultClusterParameters'+  { -- | This parameter is not currently supported.+    filters :: Prelude.Maybe [Filter],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to include in the response. If more+    -- records exist than the specified @MaxRecords@ value, a pagination token+    -- (marker) is included in the response so that the remaining results can+    -- be retrieved.+    --+    -- Default: 100+    --+    -- Constraints: Minimum 20, maximum 100.+    maxRecords :: Prelude.Maybe Prelude.Int,+    -- | The name of the cluster parameter group family to return the engine+    -- parameter information for.+    dbParameterGroupFamily :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEngineDefaultClusterParameters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeEngineDefaultClusterParameters_filters' - This parameter is not currently supported.+--+-- 'marker', 'describeEngineDefaultClusterParameters_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'maxRecords', 'describeEngineDefaultClusterParameters_maxRecords' - The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+--+-- 'dbParameterGroupFamily', 'describeEngineDefaultClusterParameters_dbParameterGroupFamily' - The name of the cluster parameter group family to return the engine+-- parameter information for.+newDescribeEngineDefaultClusterParameters ::+  -- | 'dbParameterGroupFamily'+  Prelude.Text ->+  DescribeEngineDefaultClusterParameters+newDescribeEngineDefaultClusterParameters+  pDBParameterGroupFamily_ =+    DescribeEngineDefaultClusterParameters'+      { filters =+          Prelude.Nothing,+        marker = Prelude.Nothing,+        maxRecords = Prelude.Nothing,+        dbParameterGroupFamily =+          pDBParameterGroupFamily_+      }++-- | This parameter is not currently supported.+describeEngineDefaultClusterParameters_filters :: Lens.Lens' DescribeEngineDefaultClusterParameters (Prelude.Maybe [Filter])+describeEngineDefaultClusterParameters_filters = Lens.lens (\DescribeEngineDefaultClusterParameters' {filters} -> filters) (\s@DescribeEngineDefaultClusterParameters' {} a -> s {filters = a} :: DescribeEngineDefaultClusterParameters) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeEngineDefaultClusterParameters_marker :: Lens.Lens' DescribeEngineDefaultClusterParameters (Prelude.Maybe Prelude.Text)+describeEngineDefaultClusterParameters_marker = Lens.lens (\DescribeEngineDefaultClusterParameters' {marker} -> marker) (\s@DescribeEngineDefaultClusterParameters' {} a -> s {marker = a} :: DescribeEngineDefaultClusterParameters)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+describeEngineDefaultClusterParameters_maxRecords :: Lens.Lens' DescribeEngineDefaultClusterParameters (Prelude.Maybe Prelude.Int)+describeEngineDefaultClusterParameters_maxRecords = Lens.lens (\DescribeEngineDefaultClusterParameters' {maxRecords} -> maxRecords) (\s@DescribeEngineDefaultClusterParameters' {} a -> s {maxRecords = a} :: DescribeEngineDefaultClusterParameters)++-- | The name of the cluster parameter group family to return the engine+-- parameter information for.+describeEngineDefaultClusterParameters_dbParameterGroupFamily :: Lens.Lens' DescribeEngineDefaultClusterParameters Prelude.Text+describeEngineDefaultClusterParameters_dbParameterGroupFamily = Lens.lens (\DescribeEngineDefaultClusterParameters' {dbParameterGroupFamily} -> dbParameterGroupFamily) (\s@DescribeEngineDefaultClusterParameters' {} a -> s {dbParameterGroupFamily = a} :: DescribeEngineDefaultClusterParameters)++instance+  Core.AWSRequest+    DescribeEngineDefaultClusterParameters+  where+  type+    AWSResponse+      DescribeEngineDefaultClusterParameters =+      DescribeEngineDefaultClusterParametersResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeEngineDefaultClusterParametersResult"+      ( \s h x ->+          DescribeEngineDefaultClusterParametersResponse'+            Prelude.<$> (x Data..@? "EngineDefaults")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeEngineDefaultClusterParameters+  where+  hashWithSalt+    _salt+    DescribeEngineDefaultClusterParameters' {..} =+      _salt+        `Prelude.hashWithSalt` filters+        `Prelude.hashWithSalt` marker+        `Prelude.hashWithSalt` maxRecords+        `Prelude.hashWithSalt` dbParameterGroupFamily++instance+  Prelude.NFData+    DescribeEngineDefaultClusterParameters+  where+  rnf DescribeEngineDefaultClusterParameters' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf maxRecords+      `Prelude.seq` Prelude.rnf dbParameterGroupFamily++instance+  Data.ToHeaders+    DescribeEngineDefaultClusterParameters+  where+  toHeaders = Prelude.const Prelude.mempty++instance+  Data.ToPath+    DescribeEngineDefaultClusterParameters+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    DescribeEngineDefaultClusterParameters+  where+  toQuery DescribeEngineDefaultClusterParameters' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "DescribeEngineDefaultClusterParameters" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "Marker" Data.=: marker,+        "MaxRecords" Data.=: maxRecords,+        "DBParameterGroupFamily"+          Data.=: dbParameterGroupFamily+      ]++-- | /See:/ 'newDescribeEngineDefaultClusterParametersResponse' smart constructor.+data DescribeEngineDefaultClusterParametersResponse = DescribeEngineDefaultClusterParametersResponse'+  { engineDefaults :: Prelude.Maybe EngineDefaults,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEngineDefaultClusterParametersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'engineDefaults', 'describeEngineDefaultClusterParametersResponse_engineDefaults' - Undocumented member.+--+-- 'httpStatus', 'describeEngineDefaultClusterParametersResponse_httpStatus' - The response's http status code.+newDescribeEngineDefaultClusterParametersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeEngineDefaultClusterParametersResponse+newDescribeEngineDefaultClusterParametersResponse+  pHttpStatus_ =+    DescribeEngineDefaultClusterParametersResponse'+      { engineDefaults =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Undocumented member.+describeEngineDefaultClusterParametersResponse_engineDefaults :: Lens.Lens' DescribeEngineDefaultClusterParametersResponse (Prelude.Maybe EngineDefaults)+describeEngineDefaultClusterParametersResponse_engineDefaults = Lens.lens (\DescribeEngineDefaultClusterParametersResponse' {engineDefaults} -> engineDefaults) (\s@DescribeEngineDefaultClusterParametersResponse' {} a -> s {engineDefaults = a} :: DescribeEngineDefaultClusterParametersResponse)++-- | The response's http status code.+describeEngineDefaultClusterParametersResponse_httpStatus :: Lens.Lens' DescribeEngineDefaultClusterParametersResponse Prelude.Int+describeEngineDefaultClusterParametersResponse_httpStatus = Lens.lens (\DescribeEngineDefaultClusterParametersResponse' {httpStatus} -> httpStatus) (\s@DescribeEngineDefaultClusterParametersResponse' {} a -> s {httpStatus = a} :: DescribeEngineDefaultClusterParametersResponse)++instance+  Prelude.NFData+    DescribeEngineDefaultClusterParametersResponse+  where+  rnf+    DescribeEngineDefaultClusterParametersResponse' {..} =+      Prelude.rnf engineDefaults+        `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeEventCategories.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.DescribeEventCategories+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays a list of categories for all event source types, or, if+-- specified, for a specified source type.+module Amazonka.DocumentDB.DescribeEventCategories+  ( -- * Creating a Request+    DescribeEventCategories (..),+    newDescribeEventCategories,++    -- * Request Lenses+    describeEventCategories_filters,+    describeEventCategories_sourceType,++    -- * Destructuring the Response+    DescribeEventCategoriesResponse (..),+    newDescribeEventCategoriesResponse,++    -- * Response Lenses+    describeEventCategoriesResponse_eventCategoriesMapList,+    describeEventCategoriesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DescribeEventCategories.+--+-- /See:/ 'newDescribeEventCategories' smart constructor.+data DescribeEventCategories = DescribeEventCategories'+  { -- | This parameter is not currently supported.+    filters :: Prelude.Maybe [Filter],+    -- | The type of source that is generating the events.+    --+    -- Valid values: @db-instance@, @db-parameter-group@, @db-security-group@+    sourceType :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEventCategories' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeEventCategories_filters' - This parameter is not currently supported.+--+-- 'sourceType', 'describeEventCategories_sourceType' - The type of source that is generating the events.+--+-- Valid values: @db-instance@, @db-parameter-group@, @db-security-group@+newDescribeEventCategories ::+  DescribeEventCategories+newDescribeEventCategories =+  DescribeEventCategories'+    { filters = Prelude.Nothing,+      sourceType = Prelude.Nothing+    }++-- | This parameter is not currently supported.+describeEventCategories_filters :: Lens.Lens' DescribeEventCategories (Prelude.Maybe [Filter])+describeEventCategories_filters = Lens.lens (\DescribeEventCategories' {filters} -> filters) (\s@DescribeEventCategories' {} a -> s {filters = a} :: DescribeEventCategories) Prelude.. Lens.mapping Lens.coerced++-- | The type of source that is generating the events.+--+-- Valid values: @db-instance@, @db-parameter-group@, @db-security-group@+describeEventCategories_sourceType :: Lens.Lens' DescribeEventCategories (Prelude.Maybe Prelude.Text)+describeEventCategories_sourceType = Lens.lens (\DescribeEventCategories' {sourceType} -> sourceType) (\s@DescribeEventCategories' {} a -> s {sourceType = a} :: DescribeEventCategories)++instance Core.AWSRequest DescribeEventCategories where+  type+    AWSResponse DescribeEventCategories =+      DescribeEventCategoriesResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeEventCategoriesResult"+      ( \s h x ->+          DescribeEventCategoriesResponse'+            Prelude.<$> ( x+                            Data..@? "EventCategoriesMapList"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may (Data.parseXMLList "EventCategoriesMap")+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeEventCategories where+  hashWithSalt _salt DescribeEventCategories' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` sourceType++instance Prelude.NFData DescribeEventCategories where+  rnf DescribeEventCategories' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf sourceType++instance Data.ToHeaders DescribeEventCategories where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeEventCategories where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeEventCategories where+  toQuery DescribeEventCategories' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DescribeEventCategories" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "SourceType" Data.=: sourceType+      ]++-- | Represents the output of DescribeEventCategories.+--+-- /See:/ 'newDescribeEventCategoriesResponse' smart constructor.+data DescribeEventCategoriesResponse = DescribeEventCategoriesResponse'+  { -- | A list of event category maps.+    eventCategoriesMapList :: Prelude.Maybe [EventCategoriesMap],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEventCategoriesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventCategoriesMapList', 'describeEventCategoriesResponse_eventCategoriesMapList' - A list of event category maps.+--+-- 'httpStatus', 'describeEventCategoriesResponse_httpStatus' - The response's http status code.+newDescribeEventCategoriesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeEventCategoriesResponse+newDescribeEventCategoriesResponse pHttpStatus_ =+  DescribeEventCategoriesResponse'+    { eventCategoriesMapList =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of event category maps.+describeEventCategoriesResponse_eventCategoriesMapList :: Lens.Lens' DescribeEventCategoriesResponse (Prelude.Maybe [EventCategoriesMap])+describeEventCategoriesResponse_eventCategoriesMapList = Lens.lens (\DescribeEventCategoriesResponse' {eventCategoriesMapList} -> eventCategoriesMapList) (\s@DescribeEventCategoriesResponse' {} a -> s {eventCategoriesMapList = a} :: DescribeEventCategoriesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeEventCategoriesResponse_httpStatus :: Lens.Lens' DescribeEventCategoriesResponse Prelude.Int+describeEventCategoriesResponse_httpStatus = Lens.lens (\DescribeEventCategoriesResponse' {httpStatus} -> httpStatus) (\s@DescribeEventCategoriesResponse' {} a -> s {httpStatus = a} :: DescribeEventCategoriesResponse)++instance+  Prelude.NFData+    DescribeEventCategoriesResponse+  where+  rnf DescribeEventCategoriesResponse' {..} =+    Prelude.rnf eventCategoriesMapList+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeEventSubscriptions.hs view
@@ -0,0 +1,290 @@+{-# 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.DocumentDB.DescribeEventSubscriptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all the subscription descriptions for a customer account. The+-- description for a subscription includes @SubscriptionName@,+-- @SNSTopicARN@, @CustomerID@, @SourceType@, @SourceID@, @CreationTime@,+-- and @Status@.+--+-- If you specify a @SubscriptionName@, lists the description for that+-- subscription.+--+-- This operation returns paginated results.+module Amazonka.DocumentDB.DescribeEventSubscriptions+  ( -- * Creating a Request+    DescribeEventSubscriptions (..),+    newDescribeEventSubscriptions,++    -- * Request Lenses+    describeEventSubscriptions_filters,+    describeEventSubscriptions_marker,+    describeEventSubscriptions_maxRecords,+    describeEventSubscriptions_subscriptionName,++    -- * Destructuring the Response+    DescribeEventSubscriptionsResponse (..),+    newDescribeEventSubscriptionsResponse,++    -- * Response Lenses+    describeEventSubscriptionsResponse_eventSubscriptionsList,+    describeEventSubscriptionsResponse_marker,+    describeEventSubscriptionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DescribeEventSubscriptions.+--+-- /See:/ 'newDescribeEventSubscriptions' smart constructor.+data DescribeEventSubscriptions = DescribeEventSubscriptions'+  { -- | This parameter is not currently supported.+    filters :: Prelude.Maybe [Filter],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to include in the response. If more+    -- records exist than the specified @MaxRecords@ value, a pagination token+    -- (marker) is included in the response so that the remaining results can+    -- be retrieved.+    --+    -- Default: 100+    --+    -- Constraints: Minimum 20, maximum 100.+    maxRecords :: Prelude.Maybe Prelude.Int,+    -- | The name of the Amazon DocumentDB event notification subscription that+    -- you want to describe.+    subscriptionName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEventSubscriptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeEventSubscriptions_filters' - This parameter is not currently supported.+--+-- 'marker', 'describeEventSubscriptions_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'maxRecords', 'describeEventSubscriptions_maxRecords' - The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+--+-- 'subscriptionName', 'describeEventSubscriptions_subscriptionName' - The name of the Amazon DocumentDB event notification subscription that+-- you want to describe.+newDescribeEventSubscriptions ::+  DescribeEventSubscriptions+newDescribeEventSubscriptions =+  DescribeEventSubscriptions'+    { filters =+        Prelude.Nothing,+      marker = Prelude.Nothing,+      maxRecords = Prelude.Nothing,+      subscriptionName = Prelude.Nothing+    }++-- | This parameter is not currently supported.+describeEventSubscriptions_filters :: Lens.Lens' DescribeEventSubscriptions (Prelude.Maybe [Filter])+describeEventSubscriptions_filters = Lens.lens (\DescribeEventSubscriptions' {filters} -> filters) (\s@DescribeEventSubscriptions' {} a -> s {filters = a} :: DescribeEventSubscriptions) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeEventSubscriptions_marker :: Lens.Lens' DescribeEventSubscriptions (Prelude.Maybe Prelude.Text)+describeEventSubscriptions_marker = Lens.lens (\DescribeEventSubscriptions' {marker} -> marker) (\s@DescribeEventSubscriptions' {} a -> s {marker = a} :: DescribeEventSubscriptions)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+describeEventSubscriptions_maxRecords :: Lens.Lens' DescribeEventSubscriptions (Prelude.Maybe Prelude.Int)+describeEventSubscriptions_maxRecords = Lens.lens (\DescribeEventSubscriptions' {maxRecords} -> maxRecords) (\s@DescribeEventSubscriptions' {} a -> s {maxRecords = a} :: DescribeEventSubscriptions)++-- | The name of the Amazon DocumentDB event notification subscription that+-- you want to describe.+describeEventSubscriptions_subscriptionName :: Lens.Lens' DescribeEventSubscriptions (Prelude.Maybe Prelude.Text)+describeEventSubscriptions_subscriptionName = Lens.lens (\DescribeEventSubscriptions' {subscriptionName} -> subscriptionName) (\s@DescribeEventSubscriptions' {} a -> s {subscriptionName = a} :: DescribeEventSubscriptions)++instance Core.AWSPager DescribeEventSubscriptions where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeEventSubscriptionsResponse_marker+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeEventSubscriptionsResponse_eventSubscriptionsList+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeEventSubscriptions_marker+          Lens..~ rs+          Lens.^? describeEventSubscriptionsResponse_marker+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeEventSubscriptions where+  type+    AWSResponse DescribeEventSubscriptions =+      DescribeEventSubscriptionsResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeEventSubscriptionsResult"+      ( \s h x ->+          DescribeEventSubscriptionsResponse'+            Prelude.<$> ( x+                            Data..@? "EventSubscriptionsList"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may (Data.parseXMLList "EventSubscription")+                        )+            Prelude.<*> (x Data..@? "Marker")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeEventSubscriptions where+  hashWithSalt _salt DescribeEventSubscriptions' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` marker+      `Prelude.hashWithSalt` maxRecords+      `Prelude.hashWithSalt` subscriptionName++instance Prelude.NFData DescribeEventSubscriptions where+  rnf DescribeEventSubscriptions' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf maxRecords+      `Prelude.seq` Prelude.rnf subscriptionName++instance Data.ToHeaders DescribeEventSubscriptions where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeEventSubscriptions where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeEventSubscriptions where+  toQuery DescribeEventSubscriptions' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DescribeEventSubscriptions" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "Marker" Data.=: marker,+        "MaxRecords" Data.=: maxRecords,+        "SubscriptionName" Data.=: subscriptionName+      ]++-- | Represents the output of DescribeEventSubscriptions.+--+-- /See:/ 'newDescribeEventSubscriptionsResponse' smart constructor.+data DescribeEventSubscriptionsResponse = DescribeEventSubscriptionsResponse'+  { -- | A list of event subscriptions.+    eventSubscriptionsList :: Prelude.Maybe [EventSubscription],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: 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 'DescribeEventSubscriptionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventSubscriptionsList', 'describeEventSubscriptionsResponse_eventSubscriptionsList' - A list of event subscriptions.+--+-- 'marker', 'describeEventSubscriptionsResponse_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'httpStatus', 'describeEventSubscriptionsResponse_httpStatus' - The response's http status code.+newDescribeEventSubscriptionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeEventSubscriptionsResponse+newDescribeEventSubscriptionsResponse pHttpStatus_ =+  DescribeEventSubscriptionsResponse'+    { eventSubscriptionsList =+        Prelude.Nothing,+      marker = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of event subscriptions.+describeEventSubscriptionsResponse_eventSubscriptionsList :: Lens.Lens' DescribeEventSubscriptionsResponse (Prelude.Maybe [EventSubscription])+describeEventSubscriptionsResponse_eventSubscriptionsList = Lens.lens (\DescribeEventSubscriptionsResponse' {eventSubscriptionsList} -> eventSubscriptionsList) (\s@DescribeEventSubscriptionsResponse' {} a -> s {eventSubscriptionsList = a} :: DescribeEventSubscriptionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeEventSubscriptionsResponse_marker :: Lens.Lens' DescribeEventSubscriptionsResponse (Prelude.Maybe Prelude.Text)+describeEventSubscriptionsResponse_marker = Lens.lens (\DescribeEventSubscriptionsResponse' {marker} -> marker) (\s@DescribeEventSubscriptionsResponse' {} a -> s {marker = a} :: DescribeEventSubscriptionsResponse)++-- | The response's http status code.+describeEventSubscriptionsResponse_httpStatus :: Lens.Lens' DescribeEventSubscriptionsResponse Prelude.Int+describeEventSubscriptionsResponse_httpStatus = Lens.lens (\DescribeEventSubscriptionsResponse' {httpStatus} -> httpStatus) (\s@DescribeEventSubscriptionsResponse' {} a -> s {httpStatus = a} :: DescribeEventSubscriptionsResponse)++instance+  Prelude.NFData+    DescribeEventSubscriptionsResponse+  where+  rnf DescribeEventSubscriptionsResponse' {..} =+    Prelude.rnf eventSubscriptionsList+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeEvents.hs view
@@ -0,0 +1,439 @@+{-# 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.DocumentDB.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 instances, security groups, snapshots, and DB+-- parameter groups for the past 14 days. You can obtain events specific to+-- a particular DB instance, security group, snapshot, or parameter group+-- by providing the name as a parameter. By default, the events of the past+-- hour are returned.+--+-- This operation returns paginated results.+module Amazonka.DocumentDB.DescribeEvents+  ( -- * Creating a Request+    DescribeEvents (..),+    newDescribeEvents,++    -- * Request Lenses+    describeEvents_duration,+    describeEvents_endTime,+    describeEvents_eventCategories,+    describeEvents_filters,+    describeEvents_marker,+    describeEvents_maxRecords,+    describeEvents_sourceIdentifier,+    describeEvents_sourceType,+    describeEvents_startTime,++    -- * Destructuring the Response+    DescribeEventsResponse (..),+    newDescribeEventsResponse,++    -- * Response Lenses+    describeEventsResponse_events,+    describeEventsResponse_marker,+    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.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DescribeEvents.+--+-- /See:/ 'newDescribeEvents' smart constructor.+data DescribeEvents = DescribeEvents'+  { -- | The number of minutes to retrieve events for.+    --+    -- Default: 60+    duration :: Prelude.Maybe Prelude.Int,+    -- | The end of the time interval for which to retrieve events, specified in+    -- ISO 8601 format.+    --+    -- Example: 2009-07-08T18:00Z+    endTime :: Prelude.Maybe Data.ISO8601,+    -- | A list of event categories that trigger notifications for an event+    -- notification subscription.+    eventCategories :: Prelude.Maybe [Prelude.Text],+    -- | This parameter is not currently supported.+    filters :: Prelude.Maybe [Filter],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to include in the response. If more+    -- records exist than the specified @MaxRecords@ value, a pagination token+    -- (marker) is included in the response so that the remaining results can+    -- be retrieved.+    --+    -- Default: 100+    --+    -- Constraints: Minimum 20, maximum 100.+    maxRecords :: Prelude.Maybe Prelude.Int,+    -- | The identifier of the event source for which events are returned. If not+    -- specified, then all sources are included in the response.+    --+    -- Constraints:+    --+    -- -   If @SourceIdentifier@ is provided, @SourceType@ must also be+    --     provided.+    --+    -- -   If the source type is @DBInstance@, a @DBInstanceIdentifier@ must be+    --     provided.+    --+    -- -   If the source type is @DBSecurityGroup@, a @DBSecurityGroupName@+    --     must be provided.+    --+    -- -   If the source type is @DBParameterGroup@, a @DBParameterGroupName@+    --     must be provided.+    --+    -- -   If the source type is @DBSnapshot@, a @DBSnapshotIdentifier@ must be+    --     provided.+    --+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.+    sourceIdentifier :: 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: 2009-07-08T18:00Z+    startTime :: Prelude.Maybe Data.ISO8601+  }+  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 to retrieve events for.+--+-- Default: 60+--+-- 'endTime', 'describeEvents_endTime' - The end of the time interval for which to retrieve events, specified in+-- ISO 8601 format.+--+-- Example: 2009-07-08T18:00Z+--+-- 'eventCategories', 'describeEvents_eventCategories' - A list of event categories that trigger notifications for an event+-- notification subscription.+--+-- 'filters', 'describeEvents_filters' - This parameter is not currently supported.+--+-- 'marker', 'describeEvents_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'maxRecords', 'describeEvents_maxRecords' - The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+--+-- 'sourceIdentifier', 'describeEvents_sourceIdentifier' - The identifier of the event source for which events are returned. If not+-- specified, then all sources are included in the response.+--+-- Constraints:+--+-- -   If @SourceIdentifier@ is provided, @SourceType@ must also be+--     provided.+--+-- -   If the source type is @DBInstance@, a @DBInstanceIdentifier@ must be+--     provided.+--+-- -   If the source type is @DBSecurityGroup@, a @DBSecurityGroupName@+--     must be provided.+--+-- -   If the source type is @DBParameterGroup@, a @DBParameterGroupName@+--     must be provided.+--+-- -   If the source type is @DBSnapshot@, a @DBSnapshotIdentifier@ must be+--     provided.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- '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: 2009-07-08T18:00Z+newDescribeEvents ::+  DescribeEvents+newDescribeEvents =+  DescribeEvents'+    { duration = Prelude.Nothing,+      endTime = Prelude.Nothing,+      eventCategories = Prelude.Nothing,+      filters = Prelude.Nothing,+      marker = Prelude.Nothing,+      maxRecords = Prelude.Nothing,+      sourceIdentifier = Prelude.Nothing,+      sourceType = Prelude.Nothing,+      startTime = Prelude.Nothing+    }++-- | The number of minutes to retrieve events for.+--+-- Default: 60+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: 2009-07-08T18:00Z+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++-- | A list of event categories that trigger notifications for an event+-- notification subscription.+describeEvents_eventCategories :: Lens.Lens' DescribeEvents (Prelude.Maybe [Prelude.Text])+describeEvents_eventCategories = Lens.lens (\DescribeEvents' {eventCategories} -> eventCategories) (\s@DescribeEvents' {} a -> s {eventCategories = a} :: DescribeEvents) Prelude.. Lens.mapping Lens.coerced++-- | This parameter is not currently supported.+describeEvents_filters :: Lens.Lens' DescribeEvents (Prelude.Maybe [Filter])+describeEvents_filters = Lens.lens (\DescribeEvents' {filters} -> filters) (\s@DescribeEvents' {} a -> s {filters = a} :: DescribeEvents) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeEvents_marker :: Lens.Lens' DescribeEvents (Prelude.Maybe Prelude.Text)+describeEvents_marker = Lens.lens (\DescribeEvents' {marker} -> marker) (\s@DescribeEvents' {} a -> s {marker = a} :: DescribeEvents)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+describeEvents_maxRecords :: Lens.Lens' DescribeEvents (Prelude.Maybe Prelude.Int)+describeEvents_maxRecords = Lens.lens (\DescribeEvents' {maxRecords} -> maxRecords) (\s@DescribeEvents' {} a -> s {maxRecords = a} :: DescribeEvents)++-- | The identifier of the event source for which events are returned. If not+-- specified, then all sources are included in the response.+--+-- Constraints:+--+-- -   If @SourceIdentifier@ is provided, @SourceType@ must also be+--     provided.+--+-- -   If the source type is @DBInstance@, a @DBInstanceIdentifier@ must be+--     provided.+--+-- -   If the source type is @DBSecurityGroup@, a @DBSecurityGroupName@+--     must be provided.+--+-- -   If the source type is @DBParameterGroup@, a @DBParameterGroupName@+--     must be provided.+--+-- -   If the source type is @DBSnapshot@, a @DBSnapshotIdentifier@ must be+--     provided.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+describeEvents_sourceIdentifier :: Lens.Lens' DescribeEvents (Prelude.Maybe Prelude.Text)+describeEvents_sourceIdentifier = Lens.lens (\DescribeEvents' {sourceIdentifier} -> sourceIdentifier) (\s@DescribeEvents' {} a -> s {sourceIdentifier = 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: 2009-07-08T18:00Z+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_marker+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeEventsResponse_events+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeEvents_marker+          Lens..~ rs+          Lens.^? describeEventsResponse_marker+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeEvents where+  type+    AWSResponse DescribeEvents =+      DescribeEventsResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeEventsResult"+      ( \s h x ->+          DescribeEventsResponse'+            Prelude.<$> ( x+                            Data..@? "Events"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may (Data.parseXMLList "Event")+                        )+            Prelude.<*> (x Data..@? "Marker")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeEvents where+  hashWithSalt _salt DescribeEvents' {..} =+    _salt+      `Prelude.hashWithSalt` duration+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` eventCategories+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` marker+      `Prelude.hashWithSalt` maxRecords+      `Prelude.hashWithSalt` sourceIdentifier+      `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 eventCategories+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf maxRecords+      `Prelude.seq` Prelude.rnf sourceIdentifier+      `Prelude.seq` Prelude.rnf sourceType+      `Prelude.seq` Prelude.rnf startTime++instance Data.ToHeaders DescribeEvents where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeEvents where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeEvents where+  toQuery DescribeEvents' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DescribeEvents" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Duration" Data.=: duration,+        "EndTime" Data.=: endTime,+        "EventCategories"+          Data.=: Data.toQuery+            ( Data.toQueryList "EventCategory"+                Prelude.<$> eventCategories+            ),+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "Marker" Data.=: marker,+        "MaxRecords" Data.=: maxRecords,+        "SourceIdentifier" Data.=: sourceIdentifier,+        "SourceType" Data.=: sourceType,+        "StartTime" Data.=: startTime+      ]++-- | Represents the output of DescribeEvents.+--+-- /See:/ 'newDescribeEventsResponse' smart constructor.+data DescribeEventsResponse = DescribeEventsResponse'+  { -- | Detailed information about one or more events.+    events :: Prelude.Maybe [Event],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: 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' - Detailed information about one or more events.+--+-- 'marker', 'describeEventsResponse_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'httpStatus', 'describeEventsResponse_httpStatus' - The response's http status code.+newDescribeEventsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeEventsResponse+newDescribeEventsResponse pHttpStatus_ =+  DescribeEventsResponse'+    { events = Prelude.Nothing,+      marker = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Detailed information about one or more events.+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 pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeEventsResponse_marker :: Lens.Lens' DescribeEventsResponse (Prelude.Maybe Prelude.Text)+describeEventsResponse_marker = Lens.lens (\DescribeEventsResponse' {marker} -> marker) (\s@DescribeEventsResponse' {} a -> s {marker = 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 marker+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeGlobalClusters.hs view
@@ -0,0 +1,279 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.DescribeGlobalClusters+-- 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 Amazon DocumentDB global clusters. This API+-- supports pagination.+--+-- This action only applies to Amazon DocumentDB clusters.+--+-- This operation returns paginated results.+module Amazonka.DocumentDB.DescribeGlobalClusters+  ( -- * Creating a Request+    DescribeGlobalClusters (..),+    newDescribeGlobalClusters,++    -- * Request Lenses+    describeGlobalClusters_filters,+    describeGlobalClusters_globalClusterIdentifier,+    describeGlobalClusters_marker,+    describeGlobalClusters_maxRecords,++    -- * Destructuring the Response+    DescribeGlobalClustersResponse (..),+    newDescribeGlobalClustersResponse,++    -- * Response Lenses+    describeGlobalClustersResponse_globalClusters,+    describeGlobalClustersResponse_marker,+    describeGlobalClustersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeGlobalClusters' smart constructor.+data DescribeGlobalClusters = DescribeGlobalClusters'+  { -- | A filter that specifies one or more global DB clusters to describe.+    --+    -- Supported filters: @db-cluster-id@ accepts cluster identifiers and+    -- cluster Amazon Resource Names (ARNs). The results list will only include+    -- information about the clusters identified by these ARNs.+    filters :: Prelude.Maybe [Filter],+    -- | The user-supplied cluster identifier. If this parameter is specified,+    -- information from only the specific cluster is returned. This parameter+    -- isn\'t case-sensitive.+    globalClusterIdentifier :: Prelude.Maybe Prelude.Text,+    -- | An optional pagination token provided by a previous+    -- @DescribeGlobalClusters@ request. If this parameter is specified, the+    -- response includes only records beyond the marker, up to the value+    -- specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to include in the response. If more+    -- records exist than the specified @MaxRecords@ value, a pagination token+    -- called a marker is included in the response so that you can retrieve the+    -- remaining results.+    maxRecords :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeGlobalClusters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeGlobalClusters_filters' - A filter that specifies one or more global DB clusters to describe.+--+-- Supported filters: @db-cluster-id@ accepts cluster identifiers and+-- cluster Amazon Resource Names (ARNs). The results list will only include+-- information about the clusters identified by these ARNs.+--+-- 'globalClusterIdentifier', 'describeGlobalClusters_globalClusterIdentifier' - The user-supplied cluster identifier. If this parameter is specified,+-- information from only the specific cluster is returned. This parameter+-- isn\'t case-sensitive.+--+-- 'marker', 'describeGlobalClusters_marker' - An optional pagination token provided by a previous+-- @DescribeGlobalClusters@ request. If this parameter is specified, the+-- response includes only records beyond the marker, up to the value+-- specified by @MaxRecords@.+--+-- 'maxRecords', 'describeGlobalClusters_maxRecords' - The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- called a marker is included in the response so that you can retrieve the+-- remaining results.+newDescribeGlobalClusters ::+  DescribeGlobalClusters+newDescribeGlobalClusters =+  DescribeGlobalClusters'+    { filters = Prelude.Nothing,+      globalClusterIdentifier = Prelude.Nothing,+      marker = Prelude.Nothing,+      maxRecords = Prelude.Nothing+    }++-- | A filter that specifies one or more global DB clusters to describe.+--+-- Supported filters: @db-cluster-id@ accepts cluster identifiers and+-- cluster Amazon Resource Names (ARNs). The results list will only include+-- information about the clusters identified by these ARNs.+describeGlobalClusters_filters :: Lens.Lens' DescribeGlobalClusters (Prelude.Maybe [Filter])+describeGlobalClusters_filters = Lens.lens (\DescribeGlobalClusters' {filters} -> filters) (\s@DescribeGlobalClusters' {} a -> s {filters = a} :: DescribeGlobalClusters) Prelude.. Lens.mapping Lens.coerced++-- | The user-supplied cluster identifier. If this parameter is specified,+-- information from only the specific cluster is returned. This parameter+-- isn\'t case-sensitive.+describeGlobalClusters_globalClusterIdentifier :: Lens.Lens' DescribeGlobalClusters (Prelude.Maybe Prelude.Text)+describeGlobalClusters_globalClusterIdentifier = Lens.lens (\DescribeGlobalClusters' {globalClusterIdentifier} -> globalClusterIdentifier) (\s@DescribeGlobalClusters' {} a -> s {globalClusterIdentifier = a} :: DescribeGlobalClusters)++-- | An optional pagination token provided by a previous+-- @DescribeGlobalClusters@ request. If this parameter is specified, the+-- response includes only records beyond the marker, up to the value+-- specified by @MaxRecords@.+describeGlobalClusters_marker :: Lens.Lens' DescribeGlobalClusters (Prelude.Maybe Prelude.Text)+describeGlobalClusters_marker = Lens.lens (\DescribeGlobalClusters' {marker} -> marker) (\s@DescribeGlobalClusters' {} a -> s {marker = a} :: DescribeGlobalClusters)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- called a marker is included in the response so that you can retrieve the+-- remaining results.+describeGlobalClusters_maxRecords :: Lens.Lens' DescribeGlobalClusters (Prelude.Maybe Prelude.Int)+describeGlobalClusters_maxRecords = Lens.lens (\DescribeGlobalClusters' {maxRecords} -> maxRecords) (\s@DescribeGlobalClusters' {} a -> s {maxRecords = a} :: DescribeGlobalClusters)++instance Core.AWSPager DescribeGlobalClusters where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeGlobalClustersResponse_marker+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeGlobalClustersResponse_globalClusters+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeGlobalClusters_marker+          Lens..~ rs+          Lens.^? describeGlobalClustersResponse_marker+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeGlobalClusters where+  type+    AWSResponse DescribeGlobalClusters =+      DescribeGlobalClustersResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeGlobalClustersResult"+      ( \s h x ->+          DescribeGlobalClustersResponse'+            Prelude.<$> ( x+                            Data..@? "GlobalClusters"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may (Data.parseXMLList "GlobalClusterMember")+                        )+            Prelude.<*> (x Data..@? "Marker")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeGlobalClusters where+  hashWithSalt _salt DescribeGlobalClusters' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` globalClusterIdentifier+      `Prelude.hashWithSalt` marker+      `Prelude.hashWithSalt` maxRecords++instance Prelude.NFData DescribeGlobalClusters where+  rnf DescribeGlobalClusters' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf globalClusterIdentifier+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf maxRecords++instance Data.ToHeaders DescribeGlobalClusters where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath DescribeGlobalClusters where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeGlobalClusters where+  toQuery DescribeGlobalClusters' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("DescribeGlobalClusters" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "GlobalClusterIdentifier"+          Data.=: globalClusterIdentifier,+        "Marker" Data.=: marker,+        "MaxRecords" Data.=: maxRecords+      ]++-- | /See:/ 'newDescribeGlobalClustersResponse' smart constructor.+data DescribeGlobalClustersResponse = DescribeGlobalClustersResponse'+  { globalClusters :: Prelude.Maybe [GlobalCluster],+    marker :: 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 'DescribeGlobalClustersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'globalClusters', 'describeGlobalClustersResponse_globalClusters' -+--+-- 'marker', 'describeGlobalClustersResponse_marker' -+--+-- 'httpStatus', 'describeGlobalClustersResponse_httpStatus' - The response's http status code.+newDescribeGlobalClustersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeGlobalClustersResponse+newDescribeGlobalClustersResponse pHttpStatus_ =+  DescribeGlobalClustersResponse'+    { globalClusters =+        Prelude.Nothing,+      marker = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++describeGlobalClustersResponse_globalClusters :: Lens.Lens' DescribeGlobalClustersResponse (Prelude.Maybe [GlobalCluster])+describeGlobalClustersResponse_globalClusters = Lens.lens (\DescribeGlobalClustersResponse' {globalClusters} -> globalClusters) (\s@DescribeGlobalClustersResponse' {} a -> s {globalClusters = a} :: DescribeGlobalClustersResponse) Prelude.. Lens.mapping Lens.coerced++describeGlobalClustersResponse_marker :: Lens.Lens' DescribeGlobalClustersResponse (Prelude.Maybe Prelude.Text)+describeGlobalClustersResponse_marker = Lens.lens (\DescribeGlobalClustersResponse' {marker} -> marker) (\s@DescribeGlobalClustersResponse' {} a -> s {marker = a} :: DescribeGlobalClustersResponse)++-- | The response's http status code.+describeGlobalClustersResponse_httpStatus :: Lens.Lens' DescribeGlobalClustersResponse Prelude.Int+describeGlobalClustersResponse_httpStatus = Lens.lens (\DescribeGlobalClustersResponse' {httpStatus} -> httpStatus) (\s@DescribeGlobalClustersResponse' {} a -> s {httpStatus = a} :: DescribeGlobalClustersResponse)++instance+  Prelude.NFData+    DescribeGlobalClustersResponse+  where+  rnf DescribeGlobalClustersResponse' {..} =+    Prelude.rnf globalClusters+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribeOrderableDBInstanceOptions.hs view
@@ -0,0 +1,375 @@+{-# 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.DocumentDB.DescribeOrderableDBInstanceOptions+-- 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 orderable instance options for the specified engine.+--+-- This operation returns paginated results.+module Amazonka.DocumentDB.DescribeOrderableDBInstanceOptions+  ( -- * Creating a Request+    DescribeOrderableDBInstanceOptions (..),+    newDescribeOrderableDBInstanceOptions,++    -- * Request Lenses+    describeOrderableDBInstanceOptions_dbInstanceClass,+    describeOrderableDBInstanceOptions_engineVersion,+    describeOrderableDBInstanceOptions_filters,+    describeOrderableDBInstanceOptions_licenseModel,+    describeOrderableDBInstanceOptions_marker,+    describeOrderableDBInstanceOptions_maxRecords,+    describeOrderableDBInstanceOptions_vpc,+    describeOrderableDBInstanceOptions_engine,++    -- * Destructuring the Response+    DescribeOrderableDBInstanceOptionsResponse (..),+    newDescribeOrderableDBInstanceOptionsResponse,++    -- * Response Lenses+    describeOrderableDBInstanceOptionsResponse_marker,+    describeOrderableDBInstanceOptionsResponse_orderableDBInstanceOptions,+    describeOrderableDBInstanceOptionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DescribeOrderableDBInstanceOptions.+--+-- /See:/ 'newDescribeOrderableDBInstanceOptions' smart constructor.+data DescribeOrderableDBInstanceOptions = DescribeOrderableDBInstanceOptions'+  { -- | The instance class filter value. Specify this parameter to show only the+    -- available offerings that match the specified instance class.+    dbInstanceClass :: Prelude.Maybe Prelude.Text,+    -- | The engine version filter value. Specify this parameter to show only the+    -- available offerings that match the specified engine version.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | This parameter is not currently supported.+    filters :: Prelude.Maybe [Filter],+    -- | The license model filter value. Specify this parameter to show only the+    -- available offerings that match the specified license model.+    licenseModel :: Prelude.Maybe Prelude.Text,+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to include in the response. If more+    -- records exist than the specified @MaxRecords@ value, a pagination token+    -- (marker) is included in the response so that the remaining results can+    -- be retrieved.+    --+    -- Default: 100+    --+    -- Constraints: Minimum 20, maximum 100.+    maxRecords :: Prelude.Maybe Prelude.Int,+    -- | The virtual private cloud (VPC) filter value. Specify this parameter to+    -- show only the available VPC or non-VPC offerings.+    vpc :: Prelude.Maybe Prelude.Bool,+    -- | The name of the engine to retrieve instance options for.+    engine :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeOrderableDBInstanceOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbInstanceClass', 'describeOrderableDBInstanceOptions_dbInstanceClass' - The instance class filter value. Specify this parameter to show only the+-- available offerings that match the specified instance class.+--+-- 'engineVersion', 'describeOrderableDBInstanceOptions_engineVersion' - The engine version filter value. Specify this parameter to show only the+-- available offerings that match the specified engine version.+--+-- 'filters', 'describeOrderableDBInstanceOptions_filters' - This parameter is not currently supported.+--+-- 'licenseModel', 'describeOrderableDBInstanceOptions_licenseModel' - The license model filter value. Specify this parameter to show only the+-- available offerings that match the specified license model.+--+-- 'marker', 'describeOrderableDBInstanceOptions_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'maxRecords', 'describeOrderableDBInstanceOptions_maxRecords' - The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+--+-- 'vpc', 'describeOrderableDBInstanceOptions_vpc' - The virtual private cloud (VPC) filter value. Specify this parameter to+-- show only the available VPC or non-VPC offerings.+--+-- 'engine', 'describeOrderableDBInstanceOptions_engine' - The name of the engine to retrieve instance options for.+newDescribeOrderableDBInstanceOptions ::+  -- | 'engine'+  Prelude.Text ->+  DescribeOrderableDBInstanceOptions+newDescribeOrderableDBInstanceOptions pEngine_ =+  DescribeOrderableDBInstanceOptions'+    { dbInstanceClass =+        Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      filters = Prelude.Nothing,+      licenseModel = Prelude.Nothing,+      marker = Prelude.Nothing,+      maxRecords = Prelude.Nothing,+      vpc = Prelude.Nothing,+      engine = pEngine_+    }++-- | The instance class filter value. Specify this parameter to show only the+-- available offerings that match the specified instance class.+describeOrderableDBInstanceOptions_dbInstanceClass :: Lens.Lens' DescribeOrderableDBInstanceOptions (Prelude.Maybe Prelude.Text)+describeOrderableDBInstanceOptions_dbInstanceClass = Lens.lens (\DescribeOrderableDBInstanceOptions' {dbInstanceClass} -> dbInstanceClass) (\s@DescribeOrderableDBInstanceOptions' {} a -> s {dbInstanceClass = a} :: DescribeOrderableDBInstanceOptions)++-- | The engine version filter value. Specify this parameter to show only the+-- available offerings that match the specified engine version.+describeOrderableDBInstanceOptions_engineVersion :: Lens.Lens' DescribeOrderableDBInstanceOptions (Prelude.Maybe Prelude.Text)+describeOrderableDBInstanceOptions_engineVersion = Lens.lens (\DescribeOrderableDBInstanceOptions' {engineVersion} -> engineVersion) (\s@DescribeOrderableDBInstanceOptions' {} a -> s {engineVersion = a} :: DescribeOrderableDBInstanceOptions)++-- | This parameter is not currently supported.+describeOrderableDBInstanceOptions_filters :: Lens.Lens' DescribeOrderableDBInstanceOptions (Prelude.Maybe [Filter])+describeOrderableDBInstanceOptions_filters = Lens.lens (\DescribeOrderableDBInstanceOptions' {filters} -> filters) (\s@DescribeOrderableDBInstanceOptions' {} a -> s {filters = a} :: DescribeOrderableDBInstanceOptions) Prelude.. Lens.mapping Lens.coerced++-- | The license model filter value. Specify this parameter to show only the+-- available offerings that match the specified license model.+describeOrderableDBInstanceOptions_licenseModel :: Lens.Lens' DescribeOrderableDBInstanceOptions (Prelude.Maybe Prelude.Text)+describeOrderableDBInstanceOptions_licenseModel = Lens.lens (\DescribeOrderableDBInstanceOptions' {licenseModel} -> licenseModel) (\s@DescribeOrderableDBInstanceOptions' {} a -> s {licenseModel = a} :: DescribeOrderableDBInstanceOptions)++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeOrderableDBInstanceOptions_marker :: Lens.Lens' DescribeOrderableDBInstanceOptions (Prelude.Maybe Prelude.Text)+describeOrderableDBInstanceOptions_marker = Lens.lens (\DescribeOrderableDBInstanceOptions' {marker} -> marker) (\s@DescribeOrderableDBInstanceOptions' {} a -> s {marker = a} :: DescribeOrderableDBInstanceOptions)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+describeOrderableDBInstanceOptions_maxRecords :: Lens.Lens' DescribeOrderableDBInstanceOptions (Prelude.Maybe Prelude.Int)+describeOrderableDBInstanceOptions_maxRecords = Lens.lens (\DescribeOrderableDBInstanceOptions' {maxRecords} -> maxRecords) (\s@DescribeOrderableDBInstanceOptions' {} a -> s {maxRecords = a} :: DescribeOrderableDBInstanceOptions)++-- | The virtual private cloud (VPC) filter value. Specify this parameter to+-- show only the available VPC or non-VPC offerings.+describeOrderableDBInstanceOptions_vpc :: Lens.Lens' DescribeOrderableDBInstanceOptions (Prelude.Maybe Prelude.Bool)+describeOrderableDBInstanceOptions_vpc = Lens.lens (\DescribeOrderableDBInstanceOptions' {vpc} -> vpc) (\s@DescribeOrderableDBInstanceOptions' {} a -> s {vpc = a} :: DescribeOrderableDBInstanceOptions)++-- | The name of the engine to retrieve instance options for.+describeOrderableDBInstanceOptions_engine :: Lens.Lens' DescribeOrderableDBInstanceOptions Prelude.Text+describeOrderableDBInstanceOptions_engine = Lens.lens (\DescribeOrderableDBInstanceOptions' {engine} -> engine) (\s@DescribeOrderableDBInstanceOptions' {} a -> s {engine = a} :: DescribeOrderableDBInstanceOptions)++instance+  Core.AWSPager+    DescribeOrderableDBInstanceOptions+  where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeOrderableDBInstanceOptionsResponse_marker+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeOrderableDBInstanceOptionsResponse_orderableDBInstanceOptions+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeOrderableDBInstanceOptions_marker+          Lens..~ rs+          Lens.^? describeOrderableDBInstanceOptionsResponse_marker+          Prelude.. Lens._Just++instance+  Core.AWSRequest+    DescribeOrderableDBInstanceOptions+  where+  type+    AWSResponse DescribeOrderableDBInstanceOptions =+      DescribeOrderableDBInstanceOptionsResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribeOrderableDBInstanceOptionsResult"+      ( \s h x ->+          DescribeOrderableDBInstanceOptionsResponse'+            Prelude.<$> (x Data..@? "Marker")+            Prelude.<*> ( x+                            Data..@? "OrderableDBInstanceOptions"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may+                              (Data.parseXMLList "OrderableDBInstanceOption")+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeOrderableDBInstanceOptions+  where+  hashWithSalt+    _salt+    DescribeOrderableDBInstanceOptions' {..} =+      _salt+        `Prelude.hashWithSalt` dbInstanceClass+        `Prelude.hashWithSalt` engineVersion+        `Prelude.hashWithSalt` filters+        `Prelude.hashWithSalt` licenseModel+        `Prelude.hashWithSalt` marker+        `Prelude.hashWithSalt` maxRecords+        `Prelude.hashWithSalt` vpc+        `Prelude.hashWithSalt` engine++instance+  Prelude.NFData+    DescribeOrderableDBInstanceOptions+  where+  rnf DescribeOrderableDBInstanceOptions' {..} =+    Prelude.rnf dbInstanceClass+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf licenseModel+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf maxRecords+      `Prelude.seq` Prelude.rnf vpc+      `Prelude.seq` Prelude.rnf engine++instance+  Data.ToHeaders+    DescribeOrderableDBInstanceOptions+  where+  toHeaders = Prelude.const Prelude.mempty++instance+  Data.ToPath+    DescribeOrderableDBInstanceOptions+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    DescribeOrderableDBInstanceOptions+  where+  toQuery DescribeOrderableDBInstanceOptions' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "DescribeOrderableDBInstanceOptions" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBInstanceClass" Data.=: dbInstanceClass,+        "EngineVersion" Data.=: engineVersion,+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "LicenseModel" Data.=: licenseModel,+        "Marker" Data.=: marker,+        "MaxRecords" Data.=: maxRecords,+        "Vpc" Data.=: vpc,+        "Engine" Data.=: engine+      ]++-- | Represents the output of DescribeOrderableDBInstanceOptions.+--+-- /See:/ 'newDescribeOrderableDBInstanceOptionsResponse' smart constructor.+data DescribeOrderableDBInstanceOptionsResponse = DescribeOrderableDBInstanceOptionsResponse'+  { -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The options that are available for a particular orderable instance.+    orderableDBInstanceOptions :: Prelude.Maybe [OrderableDBInstanceOption],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeOrderableDBInstanceOptionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'marker', 'describeOrderableDBInstanceOptionsResponse_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'orderableDBInstanceOptions', 'describeOrderableDBInstanceOptionsResponse_orderableDBInstanceOptions' - The options that are available for a particular orderable instance.+--+-- 'httpStatus', 'describeOrderableDBInstanceOptionsResponse_httpStatus' - The response's http status code.+newDescribeOrderableDBInstanceOptionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeOrderableDBInstanceOptionsResponse+newDescribeOrderableDBInstanceOptionsResponse+  pHttpStatus_ =+    DescribeOrderableDBInstanceOptionsResponse'+      { marker =+          Prelude.Nothing,+        orderableDBInstanceOptions =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describeOrderableDBInstanceOptionsResponse_marker :: Lens.Lens' DescribeOrderableDBInstanceOptionsResponse (Prelude.Maybe Prelude.Text)+describeOrderableDBInstanceOptionsResponse_marker = Lens.lens (\DescribeOrderableDBInstanceOptionsResponse' {marker} -> marker) (\s@DescribeOrderableDBInstanceOptionsResponse' {} a -> s {marker = a} :: DescribeOrderableDBInstanceOptionsResponse)++-- | The options that are available for a particular orderable instance.+describeOrderableDBInstanceOptionsResponse_orderableDBInstanceOptions :: Lens.Lens' DescribeOrderableDBInstanceOptionsResponse (Prelude.Maybe [OrderableDBInstanceOption])+describeOrderableDBInstanceOptionsResponse_orderableDBInstanceOptions = Lens.lens (\DescribeOrderableDBInstanceOptionsResponse' {orderableDBInstanceOptions} -> orderableDBInstanceOptions) (\s@DescribeOrderableDBInstanceOptionsResponse' {} a -> s {orderableDBInstanceOptions = a} :: DescribeOrderableDBInstanceOptionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeOrderableDBInstanceOptionsResponse_httpStatus :: Lens.Lens' DescribeOrderableDBInstanceOptionsResponse Prelude.Int+describeOrderableDBInstanceOptionsResponse_httpStatus = Lens.lens (\DescribeOrderableDBInstanceOptionsResponse' {httpStatus} -> httpStatus) (\s@DescribeOrderableDBInstanceOptionsResponse' {} a -> s {httpStatus = a} :: DescribeOrderableDBInstanceOptionsResponse)++instance+  Prelude.NFData+    DescribeOrderableDBInstanceOptionsResponse+  where+  rnf DescribeOrderableDBInstanceOptionsResponse' {..} =+    Prelude.rnf marker+      `Prelude.seq` Prelude.rnf orderableDBInstanceOptions+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/DescribePendingMaintenanceActions.hs view
@@ -0,0 +1,345 @@+{-# 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.DocumentDB.DescribePendingMaintenanceActions+-- 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 resources (for example, instances) that have at least+-- one pending maintenance action.+--+-- This operation returns paginated results.+module Amazonka.DocumentDB.DescribePendingMaintenanceActions+  ( -- * Creating a Request+    DescribePendingMaintenanceActions (..),+    newDescribePendingMaintenanceActions,++    -- * Request Lenses+    describePendingMaintenanceActions_filters,+    describePendingMaintenanceActions_marker,+    describePendingMaintenanceActions_maxRecords,+    describePendingMaintenanceActions_resourceIdentifier,++    -- * Destructuring the Response+    DescribePendingMaintenanceActionsResponse (..),+    newDescribePendingMaintenanceActionsResponse,++    -- * Response Lenses+    describePendingMaintenanceActionsResponse_marker,+    describePendingMaintenanceActionsResponse_pendingMaintenanceActions,+    describePendingMaintenanceActionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to DescribePendingMaintenanceActions.+--+-- /See:/ 'newDescribePendingMaintenanceActions' smart constructor.+data DescribePendingMaintenanceActions = DescribePendingMaintenanceActions'+  { -- | A filter that specifies one or more resources to return pending+    -- maintenance actions for.+    --+    -- Supported filters:+    --+    -- -   @db-cluster-id@ - Accepts cluster identifiers and cluster Amazon+    --     Resource Names (ARNs). The results list includes only pending+    --     maintenance actions for the clusters identified by these ARNs.+    --+    -- -   @db-instance-id@ - Accepts instance identifiers and instance ARNs.+    --     The results list includes only pending maintenance actions for the+    --     DB instances identified by these ARNs.+    filters :: Prelude.Maybe [Filter],+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of records to include in the response. If more+    -- records exist than the specified @MaxRecords@ value, a pagination token+    -- (marker) is included in the response so that the remaining results can+    -- be retrieved.+    --+    -- Default: 100+    --+    -- Constraints: Minimum 20, maximum 100.+    maxRecords :: Prelude.Maybe Prelude.Int,+    -- | The ARN of a resource to return pending maintenance actions for.+    resourceIdentifier :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribePendingMaintenanceActions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describePendingMaintenanceActions_filters' - A filter that specifies one or more resources to return pending+-- maintenance actions for.+--+-- Supported filters:+--+-- -   @db-cluster-id@ - Accepts cluster identifiers and cluster Amazon+--     Resource Names (ARNs). The results list includes only pending+--     maintenance actions for the clusters identified by these ARNs.+--+-- -   @db-instance-id@ - Accepts instance identifiers and instance ARNs.+--     The results list includes only pending maintenance actions for the+--     DB instances identified by these ARNs.+--+-- 'marker', 'describePendingMaintenanceActions_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'maxRecords', 'describePendingMaintenanceActions_maxRecords' - The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+--+-- 'resourceIdentifier', 'describePendingMaintenanceActions_resourceIdentifier' - The ARN of a resource to return pending maintenance actions for.+newDescribePendingMaintenanceActions ::+  DescribePendingMaintenanceActions+newDescribePendingMaintenanceActions =+  DescribePendingMaintenanceActions'+    { filters =+        Prelude.Nothing,+      marker = Prelude.Nothing,+      maxRecords = Prelude.Nothing,+      resourceIdentifier = Prelude.Nothing+    }++-- | A filter that specifies one or more resources to return pending+-- maintenance actions for.+--+-- Supported filters:+--+-- -   @db-cluster-id@ - Accepts cluster identifiers and cluster Amazon+--     Resource Names (ARNs). The results list includes only pending+--     maintenance actions for the clusters identified by these ARNs.+--+-- -   @db-instance-id@ - Accepts instance identifiers and instance ARNs.+--     The results list includes only pending maintenance actions for the+--     DB instances identified by these ARNs.+describePendingMaintenanceActions_filters :: Lens.Lens' DescribePendingMaintenanceActions (Prelude.Maybe [Filter])+describePendingMaintenanceActions_filters = Lens.lens (\DescribePendingMaintenanceActions' {filters} -> filters) (\s@DescribePendingMaintenanceActions' {} a -> s {filters = a} :: DescribePendingMaintenanceActions) Prelude.. Lens.mapping Lens.coerced++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describePendingMaintenanceActions_marker :: Lens.Lens' DescribePendingMaintenanceActions (Prelude.Maybe Prelude.Text)+describePendingMaintenanceActions_marker = Lens.lens (\DescribePendingMaintenanceActions' {marker} -> marker) (\s@DescribePendingMaintenanceActions' {} a -> s {marker = a} :: DescribePendingMaintenanceActions)++-- | The maximum number of records to include in the response. If more+-- records exist than the specified @MaxRecords@ value, a pagination token+-- (marker) is included in the response so that the remaining results can+-- be retrieved.+--+-- Default: 100+--+-- Constraints: Minimum 20, maximum 100.+describePendingMaintenanceActions_maxRecords :: Lens.Lens' DescribePendingMaintenanceActions (Prelude.Maybe Prelude.Int)+describePendingMaintenanceActions_maxRecords = Lens.lens (\DescribePendingMaintenanceActions' {maxRecords} -> maxRecords) (\s@DescribePendingMaintenanceActions' {} a -> s {maxRecords = a} :: DescribePendingMaintenanceActions)++-- | The ARN of a resource to return pending maintenance actions for.+describePendingMaintenanceActions_resourceIdentifier :: Lens.Lens' DescribePendingMaintenanceActions (Prelude.Maybe Prelude.Text)+describePendingMaintenanceActions_resourceIdentifier = Lens.lens (\DescribePendingMaintenanceActions' {resourceIdentifier} -> resourceIdentifier) (\s@DescribePendingMaintenanceActions' {} a -> s {resourceIdentifier = a} :: DescribePendingMaintenanceActions)++instance+  Core.AWSPager+    DescribePendingMaintenanceActions+  where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describePendingMaintenanceActionsResponse_marker+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describePendingMaintenanceActionsResponse_pendingMaintenanceActions+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describePendingMaintenanceActions_marker+          Lens..~ rs+          Lens.^? describePendingMaintenanceActionsResponse_marker+          Prelude.. Lens._Just++instance+  Core.AWSRequest+    DescribePendingMaintenanceActions+  where+  type+    AWSResponse DescribePendingMaintenanceActions =+      DescribePendingMaintenanceActionsResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "DescribePendingMaintenanceActionsResult"+      ( \s h x ->+          DescribePendingMaintenanceActionsResponse'+            Prelude.<$> (x Data..@? "Marker")+            Prelude.<*> ( x+                            Data..@? "PendingMaintenanceActions"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may+                              ( Data.parseXMLList+                                  "ResourcePendingMaintenanceActions"+                              )+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribePendingMaintenanceActions+  where+  hashWithSalt+    _salt+    DescribePendingMaintenanceActions' {..} =+      _salt+        `Prelude.hashWithSalt` filters+        `Prelude.hashWithSalt` marker+        `Prelude.hashWithSalt` maxRecords+        `Prelude.hashWithSalt` resourceIdentifier++instance+  Prelude.NFData+    DescribePendingMaintenanceActions+  where+  rnf DescribePendingMaintenanceActions' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf maxRecords+      `Prelude.seq` Prelude.rnf resourceIdentifier++instance+  Data.ToHeaders+    DescribePendingMaintenanceActions+  where+  toHeaders = Prelude.const Prelude.mempty++instance+  Data.ToPath+    DescribePendingMaintenanceActions+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    DescribePendingMaintenanceActions+  where+  toQuery DescribePendingMaintenanceActions' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "DescribePendingMaintenanceActions" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "Marker" Data.=: marker,+        "MaxRecords" Data.=: maxRecords,+        "ResourceIdentifier" Data.=: resourceIdentifier+      ]++-- | Represents the output of DescribePendingMaintenanceActions.+--+-- /See:/ 'newDescribePendingMaintenanceActionsResponse' smart constructor.+data DescribePendingMaintenanceActionsResponse = DescribePendingMaintenanceActionsResponse'+  { -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The maintenance actions to be applied.+    pendingMaintenanceActions :: Prelude.Maybe [ResourcePendingMaintenanceActions],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribePendingMaintenanceActionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'marker', 'describePendingMaintenanceActionsResponse_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'pendingMaintenanceActions', 'describePendingMaintenanceActionsResponse_pendingMaintenanceActions' - The maintenance actions to be applied.+--+-- 'httpStatus', 'describePendingMaintenanceActionsResponse_httpStatus' - The response's http status code.+newDescribePendingMaintenanceActionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribePendingMaintenanceActionsResponse+newDescribePendingMaintenanceActionsResponse+  pHttpStatus_ =+    DescribePendingMaintenanceActionsResponse'+      { marker =+          Prelude.Nothing,+        pendingMaintenanceActions =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+describePendingMaintenanceActionsResponse_marker :: Lens.Lens' DescribePendingMaintenanceActionsResponse (Prelude.Maybe Prelude.Text)+describePendingMaintenanceActionsResponse_marker = Lens.lens (\DescribePendingMaintenanceActionsResponse' {marker} -> marker) (\s@DescribePendingMaintenanceActionsResponse' {} a -> s {marker = a} :: DescribePendingMaintenanceActionsResponse)++-- | The maintenance actions to be applied.+describePendingMaintenanceActionsResponse_pendingMaintenanceActions :: Lens.Lens' DescribePendingMaintenanceActionsResponse (Prelude.Maybe [ResourcePendingMaintenanceActions])+describePendingMaintenanceActionsResponse_pendingMaintenanceActions = Lens.lens (\DescribePendingMaintenanceActionsResponse' {pendingMaintenanceActions} -> pendingMaintenanceActions) (\s@DescribePendingMaintenanceActionsResponse' {} a -> s {pendingMaintenanceActions = a} :: DescribePendingMaintenanceActionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describePendingMaintenanceActionsResponse_httpStatus :: Lens.Lens' DescribePendingMaintenanceActionsResponse Prelude.Int+describePendingMaintenanceActionsResponse_httpStatus = Lens.lens (\DescribePendingMaintenanceActionsResponse' {httpStatus} -> httpStatus) (\s@DescribePendingMaintenanceActionsResponse' {} a -> s {httpStatus = a} :: DescribePendingMaintenanceActionsResponse)++instance+  Prelude.NFData+    DescribePendingMaintenanceActionsResponse+  where+  rnf DescribePendingMaintenanceActionsResponse' {..} =+    Prelude.rnf marker+      `Prelude.seq` Prelude.rnf pendingMaintenanceActions+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/FailoverDBCluster.hs view
@@ -0,0 +1,208 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.FailoverDBCluster+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Forces a failover for a cluster.+--+-- A failover for a cluster promotes one of the Amazon DocumentDB replicas+-- (read-only instances) in the cluster to be the primary instance (the+-- cluster writer).+--+-- If the primary instance fails, Amazon DocumentDB automatically fails+-- over to an Amazon DocumentDB replica, if one exists. You can force a+-- failover when you want to simulate a failure of a primary instance for+-- testing.+module Amazonka.DocumentDB.FailoverDBCluster+  ( -- * Creating a Request+    FailoverDBCluster (..),+    newFailoverDBCluster,++    -- * Request Lenses+    failoverDBCluster_dbClusterIdentifier,+    failoverDBCluster_targetDBInstanceIdentifier,++    -- * Destructuring the Response+    FailoverDBClusterResponse (..),+    newFailoverDBClusterResponse,++    -- * Response Lenses+    failoverDBClusterResponse_dbCluster,+    failoverDBClusterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to FailoverDBCluster.+--+-- /See:/ 'newFailoverDBCluster' smart constructor.+data FailoverDBCluster = FailoverDBCluster'+  { -- | A cluster identifier to force a failover for. This parameter is not case+    -- sensitive.+    --+    -- Constraints:+    --+    -- -   Must match the identifier of an existing @DBCluster@.+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,+    -- | The name of the instance to promote to the primary instance.+    --+    -- You must specify the instance identifier for an Amazon DocumentDB+    -- replica in the cluster. For example, @mydbcluster-replica1@.+    targetDBInstanceIdentifier :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FailoverDBCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterIdentifier', 'failoverDBCluster_dbClusterIdentifier' - A cluster identifier to force a failover for. This parameter is not case+-- sensitive.+--+-- Constraints:+--+-- -   Must match the identifier of an existing @DBCluster@.+--+-- 'targetDBInstanceIdentifier', 'failoverDBCluster_targetDBInstanceIdentifier' - The name of the instance to promote to the primary instance.+--+-- You must specify the instance identifier for an Amazon DocumentDB+-- replica in the cluster. For example, @mydbcluster-replica1@.+newFailoverDBCluster ::+  FailoverDBCluster+newFailoverDBCluster =+  FailoverDBCluster'+    { dbClusterIdentifier =+        Prelude.Nothing,+      targetDBInstanceIdentifier = Prelude.Nothing+    }++-- | A cluster identifier to force a failover for. This parameter is not case+-- sensitive.+--+-- Constraints:+--+-- -   Must match the identifier of an existing @DBCluster@.+failoverDBCluster_dbClusterIdentifier :: Lens.Lens' FailoverDBCluster (Prelude.Maybe Prelude.Text)+failoverDBCluster_dbClusterIdentifier = Lens.lens (\FailoverDBCluster' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@FailoverDBCluster' {} a -> s {dbClusterIdentifier = a} :: FailoverDBCluster)++-- | The name of the instance to promote to the primary instance.+--+-- You must specify the instance identifier for an Amazon DocumentDB+-- replica in the cluster. For example, @mydbcluster-replica1@.+failoverDBCluster_targetDBInstanceIdentifier :: Lens.Lens' FailoverDBCluster (Prelude.Maybe Prelude.Text)+failoverDBCluster_targetDBInstanceIdentifier = Lens.lens (\FailoverDBCluster' {targetDBInstanceIdentifier} -> targetDBInstanceIdentifier) (\s@FailoverDBCluster' {} a -> s {targetDBInstanceIdentifier = a} :: FailoverDBCluster)++instance Core.AWSRequest FailoverDBCluster where+  type+    AWSResponse FailoverDBCluster =+      FailoverDBClusterResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "FailoverDBClusterResult"+      ( \s h x ->+          FailoverDBClusterResponse'+            Prelude.<$> (x Data..@? "DBCluster")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable FailoverDBCluster where+  hashWithSalt _salt FailoverDBCluster' {..} =+    _salt+      `Prelude.hashWithSalt` dbClusterIdentifier+      `Prelude.hashWithSalt` targetDBInstanceIdentifier++instance Prelude.NFData FailoverDBCluster where+  rnf FailoverDBCluster' {..} =+    Prelude.rnf dbClusterIdentifier+      `Prelude.seq` Prelude.rnf targetDBInstanceIdentifier++instance Data.ToHeaders FailoverDBCluster where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath FailoverDBCluster where+  toPath = Prelude.const "/"++instance Data.ToQuery FailoverDBCluster where+  toQuery FailoverDBCluster' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("FailoverDBCluster" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBClusterIdentifier" Data.=: dbClusterIdentifier,+        "TargetDBInstanceIdentifier"+          Data.=: targetDBInstanceIdentifier+      ]++-- | /See:/ 'newFailoverDBClusterResponse' smart constructor.+data FailoverDBClusterResponse = FailoverDBClusterResponse'+  { dbCluster :: Prelude.Maybe DBCluster,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FailoverDBClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbCluster', 'failoverDBClusterResponse_dbCluster' - Undocumented member.+--+-- 'httpStatus', 'failoverDBClusterResponse_httpStatus' - The response's http status code.+newFailoverDBClusterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  FailoverDBClusterResponse+newFailoverDBClusterResponse pHttpStatus_ =+  FailoverDBClusterResponse'+    { dbCluster =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+failoverDBClusterResponse_dbCluster :: Lens.Lens' FailoverDBClusterResponse (Prelude.Maybe DBCluster)+failoverDBClusterResponse_dbCluster = Lens.lens (\FailoverDBClusterResponse' {dbCluster} -> dbCluster) (\s@FailoverDBClusterResponse' {} a -> s {dbCluster = a} :: FailoverDBClusterResponse)++-- | The response's http status code.+failoverDBClusterResponse_httpStatus :: Lens.Lens' FailoverDBClusterResponse Prelude.Int+failoverDBClusterResponse_httpStatus = Lens.lens (\FailoverDBClusterResponse' {httpStatus} -> httpStatus) (\s@FailoverDBClusterResponse' {} a -> s {httpStatus = a} :: FailoverDBClusterResponse)++instance Prelude.NFData FailoverDBClusterResponse where+  rnf FailoverDBClusterResponse' {..} =+    Prelude.rnf dbCluster+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/Lens.hs view
@@ -0,0 +1,839 @@+{-# 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.DocumentDB.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.DocumentDB.Lens+  ( -- * Operations++    -- ** AddSourceIdentifierToSubscription+    addSourceIdentifierToSubscription_subscriptionName,+    addSourceIdentifierToSubscription_sourceIdentifier,+    addSourceIdentifierToSubscriptionResponse_eventSubscription,+    addSourceIdentifierToSubscriptionResponse_httpStatus,++    -- ** AddTagsToResource+    addTagsToResource_resourceName,+    addTagsToResource_tags,++    -- ** ApplyPendingMaintenanceAction+    applyPendingMaintenanceAction_resourceIdentifier,+    applyPendingMaintenanceAction_applyAction,+    applyPendingMaintenanceAction_optInType,+    applyPendingMaintenanceActionResponse_resourcePendingMaintenanceActions,+    applyPendingMaintenanceActionResponse_httpStatus,++    -- ** CopyDBClusterParameterGroup+    copyDBClusterParameterGroup_tags,+    copyDBClusterParameterGroup_sourceDBClusterParameterGroupIdentifier,+    copyDBClusterParameterGroup_targetDBClusterParameterGroupIdentifier,+    copyDBClusterParameterGroup_targetDBClusterParameterGroupDescription,+    copyDBClusterParameterGroupResponse_dbClusterParameterGroup,+    copyDBClusterParameterGroupResponse_httpStatus,++    -- ** CopyDBClusterSnapshot+    copyDBClusterSnapshot_copyTags,+    copyDBClusterSnapshot_kmsKeyId,+    copyDBClusterSnapshot_preSignedUrl,+    copyDBClusterSnapshot_tags,+    copyDBClusterSnapshot_sourceDBClusterSnapshotIdentifier,+    copyDBClusterSnapshot_targetDBClusterSnapshotIdentifier,+    copyDBClusterSnapshotResponse_dbClusterSnapshot,+    copyDBClusterSnapshotResponse_httpStatus,++    -- ** CreateDBCluster+    createDBCluster_availabilityZones,+    createDBCluster_backupRetentionPeriod,+    createDBCluster_dbClusterParameterGroupName,+    createDBCluster_dbSubnetGroupName,+    createDBCluster_deletionProtection,+    createDBCluster_enableCloudwatchLogsExports,+    createDBCluster_engineVersion,+    createDBCluster_globalClusterIdentifier,+    createDBCluster_kmsKeyId,+    createDBCluster_masterUserPassword,+    createDBCluster_masterUsername,+    createDBCluster_port,+    createDBCluster_preSignedUrl,+    createDBCluster_preferredBackupWindow,+    createDBCluster_preferredMaintenanceWindow,+    createDBCluster_storageEncrypted,+    createDBCluster_tags,+    createDBCluster_vpcSecurityGroupIds,+    createDBCluster_dbClusterIdentifier,+    createDBCluster_engine,+    createDBClusterResponse_dbCluster,+    createDBClusterResponse_httpStatus,++    -- ** CreateDBClusterParameterGroup+    createDBClusterParameterGroup_tags,+    createDBClusterParameterGroup_dbClusterParameterGroupName,+    createDBClusterParameterGroup_dbParameterGroupFamily,+    createDBClusterParameterGroup_description,+    createDBClusterParameterGroupResponse_dbClusterParameterGroup,+    createDBClusterParameterGroupResponse_httpStatus,++    -- ** CreateDBClusterSnapshot+    createDBClusterSnapshot_tags,+    createDBClusterSnapshot_dbClusterSnapshotIdentifier,+    createDBClusterSnapshot_dbClusterIdentifier,+    createDBClusterSnapshotResponse_dbClusterSnapshot,+    createDBClusterSnapshotResponse_httpStatus,++    -- ** CreateDBInstance+    createDBInstance_autoMinorVersionUpgrade,+    createDBInstance_availabilityZone,+    createDBInstance_copyTagsToSnapshot,+    createDBInstance_enablePerformanceInsights,+    createDBInstance_performanceInsightsKMSKeyId,+    createDBInstance_preferredMaintenanceWindow,+    createDBInstance_promotionTier,+    createDBInstance_tags,+    createDBInstance_dbInstanceIdentifier,+    createDBInstance_dbInstanceClass,+    createDBInstance_engine,+    createDBInstance_dbClusterIdentifier,+    createDBInstanceResponse_dbInstance,+    createDBInstanceResponse_httpStatus,++    -- ** CreateDBSubnetGroup+    createDBSubnetGroup_tags,+    createDBSubnetGroup_dbSubnetGroupName,+    createDBSubnetGroup_dbSubnetGroupDescription,+    createDBSubnetGroup_subnetIds,+    createDBSubnetGroupResponse_dbSubnetGroup,+    createDBSubnetGroupResponse_httpStatus,++    -- ** CreateEventSubscription+    createEventSubscription_enabled,+    createEventSubscription_eventCategories,+    createEventSubscription_sourceIds,+    createEventSubscription_sourceType,+    createEventSubscription_tags,+    createEventSubscription_subscriptionName,+    createEventSubscription_snsTopicArn,+    createEventSubscriptionResponse_eventSubscription,+    createEventSubscriptionResponse_httpStatus,++    -- ** CreateGlobalCluster+    createGlobalCluster_databaseName,+    createGlobalCluster_deletionProtection,+    createGlobalCluster_engine,+    createGlobalCluster_engineVersion,+    createGlobalCluster_sourceDBClusterIdentifier,+    createGlobalCluster_storageEncrypted,+    createGlobalCluster_globalClusterIdentifier,+    createGlobalClusterResponse_globalCluster,+    createGlobalClusterResponse_httpStatus,++    -- ** DeleteDBCluster+    deleteDBCluster_finalDBSnapshotIdentifier,+    deleteDBCluster_skipFinalSnapshot,+    deleteDBCluster_dbClusterIdentifier,+    deleteDBClusterResponse_dbCluster,+    deleteDBClusterResponse_httpStatus,++    -- ** DeleteDBClusterParameterGroup+    deleteDBClusterParameterGroup_dbClusterParameterGroupName,++    -- ** DeleteDBClusterSnapshot+    deleteDBClusterSnapshot_dbClusterSnapshotIdentifier,+    deleteDBClusterSnapshotResponse_dbClusterSnapshot,+    deleteDBClusterSnapshotResponse_httpStatus,++    -- ** DeleteDBInstance+    deleteDBInstance_dbInstanceIdentifier,+    deleteDBInstanceResponse_dbInstance,+    deleteDBInstanceResponse_httpStatus,++    -- ** DeleteDBSubnetGroup+    deleteDBSubnetGroup_dbSubnetGroupName,++    -- ** DeleteEventSubscription+    deleteEventSubscription_subscriptionName,+    deleteEventSubscriptionResponse_eventSubscription,+    deleteEventSubscriptionResponse_httpStatus,++    -- ** DeleteGlobalCluster+    deleteGlobalCluster_globalClusterIdentifier,+    deleteGlobalClusterResponse_globalCluster,+    deleteGlobalClusterResponse_httpStatus,++    -- ** DescribeCertificates+    describeCertificates_certificateIdentifier,+    describeCertificates_filters,+    describeCertificates_marker,+    describeCertificates_maxRecords,+    describeCertificatesResponse_certificates,+    describeCertificatesResponse_marker,+    describeCertificatesResponse_httpStatus,++    -- ** DescribeDBClusterParameterGroups+    describeDBClusterParameterGroups_dbClusterParameterGroupName,+    describeDBClusterParameterGroups_filters,+    describeDBClusterParameterGroups_marker,+    describeDBClusterParameterGroups_maxRecords,+    describeDBClusterParameterGroupsResponse_dbClusterParameterGroups,+    describeDBClusterParameterGroupsResponse_marker,+    describeDBClusterParameterGroupsResponse_httpStatus,++    -- ** DescribeDBClusterParameters+    describeDBClusterParameters_filters,+    describeDBClusterParameters_marker,+    describeDBClusterParameters_maxRecords,+    describeDBClusterParameters_source,+    describeDBClusterParameters_dbClusterParameterGroupName,+    describeDBClusterParametersResponse_marker,+    describeDBClusterParametersResponse_parameters,+    describeDBClusterParametersResponse_httpStatus,++    -- ** DescribeDBClusterSnapshotAttributes+    describeDBClusterSnapshotAttributes_dbClusterSnapshotIdentifier,+    describeDBClusterSnapshotAttributesResponse_dbClusterSnapshotAttributesResult,+    describeDBClusterSnapshotAttributesResponse_httpStatus,++    -- ** DescribeDBClusterSnapshots+    describeDBClusterSnapshots_dbClusterIdentifier,+    describeDBClusterSnapshots_dbClusterSnapshotIdentifier,+    describeDBClusterSnapshots_filters,+    describeDBClusterSnapshots_includePublic,+    describeDBClusterSnapshots_includeShared,+    describeDBClusterSnapshots_marker,+    describeDBClusterSnapshots_maxRecords,+    describeDBClusterSnapshots_snapshotType,+    describeDBClusterSnapshotsResponse_dbClusterSnapshots,+    describeDBClusterSnapshotsResponse_marker,+    describeDBClusterSnapshotsResponse_httpStatus,++    -- ** DescribeDBClusters+    describeDBClusters_dbClusterIdentifier,+    describeDBClusters_filters,+    describeDBClusters_marker,+    describeDBClusters_maxRecords,+    describeDBClustersResponse_dbClusters,+    describeDBClustersResponse_marker,+    describeDBClustersResponse_httpStatus,++    -- ** DescribeDBEngineVersions+    describeDBEngineVersions_dbParameterGroupFamily,+    describeDBEngineVersions_defaultOnly,+    describeDBEngineVersions_engine,+    describeDBEngineVersions_engineVersion,+    describeDBEngineVersions_filters,+    describeDBEngineVersions_listSupportedCharacterSets,+    describeDBEngineVersions_listSupportedTimezones,+    describeDBEngineVersions_marker,+    describeDBEngineVersions_maxRecords,+    describeDBEngineVersionsResponse_dbEngineVersions,+    describeDBEngineVersionsResponse_marker,+    describeDBEngineVersionsResponse_httpStatus,++    -- ** DescribeDBInstances+    describeDBInstances_dbInstanceIdentifier,+    describeDBInstances_filters,+    describeDBInstances_marker,+    describeDBInstances_maxRecords,+    describeDBInstancesResponse_dbInstances,+    describeDBInstancesResponse_marker,+    describeDBInstancesResponse_httpStatus,++    -- ** DescribeDBSubnetGroups+    describeDBSubnetGroups_dbSubnetGroupName,+    describeDBSubnetGroups_filters,+    describeDBSubnetGroups_marker,+    describeDBSubnetGroups_maxRecords,+    describeDBSubnetGroupsResponse_dbSubnetGroups,+    describeDBSubnetGroupsResponse_marker,+    describeDBSubnetGroupsResponse_httpStatus,++    -- ** DescribeEngineDefaultClusterParameters+    describeEngineDefaultClusterParameters_filters,+    describeEngineDefaultClusterParameters_marker,+    describeEngineDefaultClusterParameters_maxRecords,+    describeEngineDefaultClusterParameters_dbParameterGroupFamily,+    describeEngineDefaultClusterParametersResponse_engineDefaults,+    describeEngineDefaultClusterParametersResponse_httpStatus,++    -- ** DescribeEventCategories+    describeEventCategories_filters,+    describeEventCategories_sourceType,+    describeEventCategoriesResponse_eventCategoriesMapList,+    describeEventCategoriesResponse_httpStatus,++    -- ** DescribeEventSubscriptions+    describeEventSubscriptions_filters,+    describeEventSubscriptions_marker,+    describeEventSubscriptions_maxRecords,+    describeEventSubscriptions_subscriptionName,+    describeEventSubscriptionsResponse_eventSubscriptionsList,+    describeEventSubscriptionsResponse_marker,+    describeEventSubscriptionsResponse_httpStatus,++    -- ** DescribeEvents+    describeEvents_duration,+    describeEvents_endTime,+    describeEvents_eventCategories,+    describeEvents_filters,+    describeEvents_marker,+    describeEvents_maxRecords,+    describeEvents_sourceIdentifier,+    describeEvents_sourceType,+    describeEvents_startTime,+    describeEventsResponse_events,+    describeEventsResponse_marker,+    describeEventsResponse_httpStatus,++    -- ** DescribeGlobalClusters+    describeGlobalClusters_filters,+    describeGlobalClusters_globalClusterIdentifier,+    describeGlobalClusters_marker,+    describeGlobalClusters_maxRecords,+    describeGlobalClustersResponse_globalClusters,+    describeGlobalClustersResponse_marker,+    describeGlobalClustersResponse_httpStatus,++    -- ** DescribeOrderableDBInstanceOptions+    describeOrderableDBInstanceOptions_dbInstanceClass,+    describeOrderableDBInstanceOptions_engineVersion,+    describeOrderableDBInstanceOptions_filters,+    describeOrderableDBInstanceOptions_licenseModel,+    describeOrderableDBInstanceOptions_marker,+    describeOrderableDBInstanceOptions_maxRecords,+    describeOrderableDBInstanceOptions_vpc,+    describeOrderableDBInstanceOptions_engine,+    describeOrderableDBInstanceOptionsResponse_marker,+    describeOrderableDBInstanceOptionsResponse_orderableDBInstanceOptions,+    describeOrderableDBInstanceOptionsResponse_httpStatus,++    -- ** DescribePendingMaintenanceActions+    describePendingMaintenanceActions_filters,+    describePendingMaintenanceActions_marker,+    describePendingMaintenanceActions_maxRecords,+    describePendingMaintenanceActions_resourceIdentifier,+    describePendingMaintenanceActionsResponse_marker,+    describePendingMaintenanceActionsResponse_pendingMaintenanceActions,+    describePendingMaintenanceActionsResponse_httpStatus,++    -- ** FailoverDBCluster+    failoverDBCluster_dbClusterIdentifier,+    failoverDBCluster_targetDBInstanceIdentifier,+    failoverDBClusterResponse_dbCluster,+    failoverDBClusterResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_filters,+    listTagsForResource_resourceName,+    listTagsForResourceResponse_tagList,+    listTagsForResourceResponse_httpStatus,++    -- ** ModifyDBCluster+    modifyDBCluster_applyImmediately,+    modifyDBCluster_backupRetentionPeriod,+    modifyDBCluster_cloudwatchLogsExportConfiguration,+    modifyDBCluster_dbClusterParameterGroupName,+    modifyDBCluster_deletionProtection,+    modifyDBCluster_engineVersion,+    modifyDBCluster_masterUserPassword,+    modifyDBCluster_newDBClusterIdentifier,+    modifyDBCluster_port,+    modifyDBCluster_preferredBackupWindow,+    modifyDBCluster_preferredMaintenanceWindow,+    modifyDBCluster_vpcSecurityGroupIds,+    modifyDBCluster_dbClusterIdentifier,+    modifyDBClusterResponse_dbCluster,+    modifyDBClusterResponse_httpStatus,++    -- ** ModifyDBClusterParameterGroup+    modifyDBClusterParameterGroup_dbClusterParameterGroupName,+    modifyDBClusterParameterGroup_parameters,+    dbClusterParameterGroupNameMessage_dbClusterParameterGroupName,++    -- ** ModifyDBClusterSnapshotAttribute+    modifyDBClusterSnapshotAttribute_valuesToAdd,+    modifyDBClusterSnapshotAttribute_valuesToRemove,+    modifyDBClusterSnapshotAttribute_dbClusterSnapshotIdentifier,+    modifyDBClusterSnapshotAttribute_attributeName,+    modifyDBClusterSnapshotAttributeResponse_dbClusterSnapshotAttributesResult,+    modifyDBClusterSnapshotAttributeResponse_httpStatus,++    -- ** ModifyDBInstance+    modifyDBInstance_applyImmediately,+    modifyDBInstance_autoMinorVersionUpgrade,+    modifyDBInstance_cACertificateIdentifier,+    modifyDBInstance_copyTagsToSnapshot,+    modifyDBInstance_dbInstanceClass,+    modifyDBInstance_enablePerformanceInsights,+    modifyDBInstance_newDBInstanceIdentifier,+    modifyDBInstance_performanceInsightsKMSKeyId,+    modifyDBInstance_preferredMaintenanceWindow,+    modifyDBInstance_promotionTier,+    modifyDBInstance_dbInstanceIdentifier,+    modifyDBInstanceResponse_dbInstance,+    modifyDBInstanceResponse_httpStatus,++    -- ** ModifyDBSubnetGroup+    modifyDBSubnetGroup_dbSubnetGroupDescription,+    modifyDBSubnetGroup_dbSubnetGroupName,+    modifyDBSubnetGroup_subnetIds,+    modifyDBSubnetGroupResponse_dbSubnetGroup,+    modifyDBSubnetGroupResponse_httpStatus,++    -- ** ModifyEventSubscription+    modifyEventSubscription_enabled,+    modifyEventSubscription_eventCategories,+    modifyEventSubscription_snsTopicArn,+    modifyEventSubscription_sourceType,+    modifyEventSubscription_subscriptionName,+    modifyEventSubscriptionResponse_eventSubscription,+    modifyEventSubscriptionResponse_httpStatus,++    -- ** ModifyGlobalCluster+    modifyGlobalCluster_deletionProtection,+    modifyGlobalCluster_newGlobalClusterIdentifier,+    modifyGlobalCluster_globalClusterIdentifier,+    modifyGlobalClusterResponse_globalCluster,+    modifyGlobalClusterResponse_httpStatus,++    -- ** RebootDBInstance+    rebootDBInstance_forceFailover,+    rebootDBInstance_dbInstanceIdentifier,+    rebootDBInstanceResponse_dbInstance,+    rebootDBInstanceResponse_httpStatus,++    -- ** RemoveFromGlobalCluster+    removeFromGlobalCluster_globalClusterIdentifier,+    removeFromGlobalCluster_dbClusterIdentifier,+    removeFromGlobalClusterResponse_globalCluster,+    removeFromGlobalClusterResponse_httpStatus,++    -- ** RemoveSourceIdentifierFromSubscription+    removeSourceIdentifierFromSubscription_subscriptionName,+    removeSourceIdentifierFromSubscription_sourceIdentifier,+    removeSourceIdentifierFromSubscriptionResponse_eventSubscription,+    removeSourceIdentifierFromSubscriptionResponse_httpStatus,++    -- ** RemoveTagsFromResource+    removeTagsFromResource_resourceName,+    removeTagsFromResource_tagKeys,++    -- ** ResetDBClusterParameterGroup+    resetDBClusterParameterGroup_parameters,+    resetDBClusterParameterGroup_resetAllParameters,+    resetDBClusterParameterGroup_dbClusterParameterGroupName,+    dbClusterParameterGroupNameMessage_dbClusterParameterGroupName,++    -- ** RestoreDBClusterFromSnapshot+    restoreDBClusterFromSnapshot_availabilityZones,+    restoreDBClusterFromSnapshot_dbSubnetGroupName,+    restoreDBClusterFromSnapshot_deletionProtection,+    restoreDBClusterFromSnapshot_enableCloudwatchLogsExports,+    restoreDBClusterFromSnapshot_engineVersion,+    restoreDBClusterFromSnapshot_kmsKeyId,+    restoreDBClusterFromSnapshot_port,+    restoreDBClusterFromSnapshot_tags,+    restoreDBClusterFromSnapshot_vpcSecurityGroupIds,+    restoreDBClusterFromSnapshot_dbClusterIdentifier,+    restoreDBClusterFromSnapshot_snapshotIdentifier,+    restoreDBClusterFromSnapshot_engine,+    restoreDBClusterFromSnapshotResponse_dbCluster,+    restoreDBClusterFromSnapshotResponse_httpStatus,++    -- ** RestoreDBClusterToPointInTime+    restoreDBClusterToPointInTime_dbSubnetGroupName,+    restoreDBClusterToPointInTime_deletionProtection,+    restoreDBClusterToPointInTime_enableCloudwatchLogsExports,+    restoreDBClusterToPointInTime_kmsKeyId,+    restoreDBClusterToPointInTime_port,+    restoreDBClusterToPointInTime_restoreToTime,+    restoreDBClusterToPointInTime_restoreType,+    restoreDBClusterToPointInTime_tags,+    restoreDBClusterToPointInTime_useLatestRestorableTime,+    restoreDBClusterToPointInTime_vpcSecurityGroupIds,+    restoreDBClusterToPointInTime_dbClusterIdentifier,+    restoreDBClusterToPointInTime_sourceDBClusterIdentifier,+    restoreDBClusterToPointInTimeResponse_dbCluster,+    restoreDBClusterToPointInTimeResponse_httpStatus,++    -- ** StartDBCluster+    startDBCluster_dbClusterIdentifier,+    startDBClusterResponse_dbCluster,+    startDBClusterResponse_httpStatus,++    -- ** StopDBCluster+    stopDBCluster_dbClusterIdentifier,+    stopDBClusterResponse_dbCluster,+    stopDBClusterResponse_httpStatus,++    -- * Types++    -- ** AvailabilityZone+    availabilityZone_name,++    -- ** Certificate+    certificate_certificateArn,+    certificate_certificateIdentifier,+    certificate_certificateType,+    certificate_thumbprint,+    certificate_validFrom,+    certificate_validTill,++    -- ** CloudwatchLogsExportConfiguration+    cloudwatchLogsExportConfiguration_disableLogTypes,+    cloudwatchLogsExportConfiguration_enableLogTypes,++    -- ** DBCluster+    dbCluster_associatedRoles,+    dbCluster_availabilityZones,+    dbCluster_backupRetentionPeriod,+    dbCluster_cloneGroupId,+    dbCluster_clusterCreateTime,+    dbCluster_dbClusterArn,+    dbCluster_dbClusterIdentifier,+    dbCluster_dbClusterMembers,+    dbCluster_dbClusterParameterGroup,+    dbCluster_dbSubnetGroup,+    dbCluster_dbClusterResourceId,+    dbCluster_deletionProtection,+    dbCluster_earliestRestorableTime,+    dbCluster_enabledCloudwatchLogsExports,+    dbCluster_endpoint,+    dbCluster_engine,+    dbCluster_engineVersion,+    dbCluster_hostedZoneId,+    dbCluster_kmsKeyId,+    dbCluster_latestRestorableTime,+    dbCluster_masterUsername,+    dbCluster_multiAZ,+    dbCluster_percentProgress,+    dbCluster_port,+    dbCluster_preferredBackupWindow,+    dbCluster_preferredMaintenanceWindow,+    dbCluster_readReplicaIdentifiers,+    dbCluster_readerEndpoint,+    dbCluster_replicationSourceIdentifier,+    dbCluster_status,+    dbCluster_storageEncrypted,+    dbCluster_vpcSecurityGroups,++    -- ** DBClusterMember+    dbClusterMember_dbClusterParameterGroupStatus,+    dbClusterMember_dbInstanceIdentifier,+    dbClusterMember_isClusterWriter,+    dbClusterMember_promotionTier,++    -- ** DBClusterParameterGroup+    dbClusterParameterGroup_dbClusterParameterGroupArn,+    dbClusterParameterGroup_dbClusterParameterGroupName,+    dbClusterParameterGroup_dbParameterGroupFamily,+    dbClusterParameterGroup_description,++    -- ** DBClusterParameterGroupNameMessage+    dbClusterParameterGroupNameMessage_dbClusterParameterGroupName,++    -- ** DBClusterRole+    dbClusterRole_roleArn,+    dbClusterRole_status,++    -- ** DBClusterSnapshot+    dbClusterSnapshot_availabilityZones,+    dbClusterSnapshot_clusterCreateTime,+    dbClusterSnapshot_dbClusterIdentifier,+    dbClusterSnapshot_dbClusterSnapshotArn,+    dbClusterSnapshot_dbClusterSnapshotIdentifier,+    dbClusterSnapshot_engine,+    dbClusterSnapshot_engineVersion,+    dbClusterSnapshot_kmsKeyId,+    dbClusterSnapshot_masterUsername,+    dbClusterSnapshot_percentProgress,+    dbClusterSnapshot_port,+    dbClusterSnapshot_snapshotCreateTime,+    dbClusterSnapshot_snapshotType,+    dbClusterSnapshot_sourceDBClusterSnapshotArn,+    dbClusterSnapshot_status,+    dbClusterSnapshot_storageEncrypted,+    dbClusterSnapshot_vpcId,++    -- ** DBClusterSnapshotAttribute+    dbClusterSnapshotAttribute_attributeName,+    dbClusterSnapshotAttribute_attributeValues,++    -- ** DBClusterSnapshotAttributesResult+    dbClusterSnapshotAttributesResult_dbClusterSnapshotAttributes,+    dbClusterSnapshotAttributesResult_dbClusterSnapshotIdentifier,++    -- ** DBEngineVersion+    dbEngineVersion_dbEngineDescription,+    dbEngineVersion_dbEngineVersionDescription,+    dbEngineVersion_dbParameterGroupFamily,+    dbEngineVersion_engine,+    dbEngineVersion_engineVersion,+    dbEngineVersion_exportableLogTypes,+    dbEngineVersion_supportsLogExportsToCloudwatchLogs,+    dbEngineVersion_validUpgradeTarget,++    -- ** DBInstance+    dbInstance_autoMinorVersionUpgrade,+    dbInstance_availabilityZone,+    dbInstance_backupRetentionPeriod,+    dbInstance_cACertificateIdentifier,+    dbInstance_copyTagsToSnapshot,+    dbInstance_dbClusterIdentifier,+    dbInstance_dbInstanceArn,+    dbInstance_dbInstanceClass,+    dbInstance_dbInstanceIdentifier,+    dbInstance_dbInstanceStatus,+    dbInstance_dbSubnetGroup,+    dbInstance_dbiResourceId,+    dbInstance_enabledCloudwatchLogsExports,+    dbInstance_endpoint,+    dbInstance_engine,+    dbInstance_engineVersion,+    dbInstance_instanceCreateTime,+    dbInstance_kmsKeyId,+    dbInstance_latestRestorableTime,+    dbInstance_pendingModifiedValues,+    dbInstance_preferredBackupWindow,+    dbInstance_preferredMaintenanceWindow,+    dbInstance_promotionTier,+    dbInstance_publiclyAccessible,+    dbInstance_statusInfos,+    dbInstance_storageEncrypted,+    dbInstance_vpcSecurityGroups,++    -- ** DBInstanceStatusInfo+    dbInstanceStatusInfo_message,+    dbInstanceStatusInfo_normal,+    dbInstanceStatusInfo_status,+    dbInstanceStatusInfo_statusType,++    -- ** DBSubnetGroup+    dbSubnetGroup_dbSubnetGroupArn,+    dbSubnetGroup_dbSubnetGroupDescription,+    dbSubnetGroup_dbSubnetGroupName,+    dbSubnetGroup_subnetGroupStatus,+    dbSubnetGroup_subnets,+    dbSubnetGroup_vpcId,++    -- ** Endpoint+    endpoint_address,+    endpoint_hostedZoneId,+    endpoint_port,++    -- ** EngineDefaults+    engineDefaults_dbParameterGroupFamily,+    engineDefaults_marker,+    engineDefaults_parameters,++    -- ** Event+    event_date,+    event_eventCategories,+    event_message,+    event_sourceArn,+    event_sourceIdentifier,+    event_sourceType,++    -- ** EventCategoriesMap+    eventCategoriesMap_eventCategories,+    eventCategoriesMap_sourceType,++    -- ** EventSubscription+    eventSubscription_custSubscriptionId,+    eventSubscription_customerAwsId,+    eventSubscription_enabled,+    eventSubscription_eventCategoriesList,+    eventSubscription_eventSubscriptionArn,+    eventSubscription_snsTopicArn,+    eventSubscription_sourceIdsList,+    eventSubscription_sourceType,+    eventSubscription_status,+    eventSubscription_subscriptionCreationTime,++    -- ** Filter+    filter_name,+    filter_values,++    -- ** GlobalCluster+    globalCluster_databaseName,+    globalCluster_deletionProtection,+    globalCluster_engine,+    globalCluster_engineVersion,+    globalCluster_globalClusterArn,+    globalCluster_globalClusterIdentifier,+    globalCluster_globalClusterMembers,+    globalCluster_globalClusterResourceId,+    globalCluster_status,+    globalCluster_storageEncrypted,++    -- ** GlobalClusterMember+    globalClusterMember_dbClusterArn,+    globalClusterMember_isWriter,+    globalClusterMember_readers,++    -- ** OrderableDBInstanceOption+    orderableDBInstanceOption_availabilityZones,+    orderableDBInstanceOption_dbInstanceClass,+    orderableDBInstanceOption_engine,+    orderableDBInstanceOption_engineVersion,+    orderableDBInstanceOption_licenseModel,+    orderableDBInstanceOption_vpc,++    -- ** Parameter+    parameter_allowedValues,+    parameter_applyMethod,+    parameter_applyType,+    parameter_dataType,+    parameter_description,+    parameter_isModifiable,+    parameter_minimumEngineVersion,+    parameter_parameterName,+    parameter_parameterValue,+    parameter_source,++    -- ** PendingCloudwatchLogsExports+    pendingCloudwatchLogsExports_logTypesToDisable,+    pendingCloudwatchLogsExports_logTypesToEnable,++    -- ** PendingMaintenanceAction+    pendingMaintenanceAction_action,+    pendingMaintenanceAction_autoAppliedAfterDate,+    pendingMaintenanceAction_currentApplyDate,+    pendingMaintenanceAction_description,+    pendingMaintenanceAction_forcedApplyDate,+    pendingMaintenanceAction_optInStatus,++    -- ** PendingModifiedValues+    pendingModifiedValues_allocatedStorage,+    pendingModifiedValues_backupRetentionPeriod,+    pendingModifiedValues_cACertificateIdentifier,+    pendingModifiedValues_dbInstanceClass,+    pendingModifiedValues_dbInstanceIdentifier,+    pendingModifiedValues_dbSubnetGroupName,+    pendingModifiedValues_engineVersion,+    pendingModifiedValues_iops,+    pendingModifiedValues_licenseModel,+    pendingModifiedValues_masterUserPassword,+    pendingModifiedValues_multiAZ,+    pendingModifiedValues_pendingCloudwatchLogsExports,+    pendingModifiedValues_port,+    pendingModifiedValues_storageType,++    -- ** ResourcePendingMaintenanceActions+    resourcePendingMaintenanceActions_pendingMaintenanceActionDetails,+    resourcePendingMaintenanceActions_resourceIdentifier,++    -- ** Subnet+    subnet_subnetAvailabilityZone,+    subnet_subnetIdentifier,+    subnet_subnetStatus,++    -- ** Tag+    tag_key,+    tag_value,++    -- ** UpgradeTarget+    upgradeTarget_autoUpgrade,+    upgradeTarget_description,+    upgradeTarget_engine,+    upgradeTarget_engineVersion,+    upgradeTarget_isMajorVersionUpgrade,++    -- ** VpcSecurityGroupMembership+    vpcSecurityGroupMembership_status,+    vpcSecurityGroupMembership_vpcSecurityGroupId,+  )+where++import Amazonka.DocumentDB.AddSourceIdentifierToSubscription+import Amazonka.DocumentDB.AddTagsToResource+import Amazonka.DocumentDB.ApplyPendingMaintenanceAction+import Amazonka.DocumentDB.CopyDBClusterParameterGroup+import Amazonka.DocumentDB.CopyDBClusterSnapshot+import Amazonka.DocumentDB.CreateDBCluster+import Amazonka.DocumentDB.CreateDBClusterParameterGroup+import Amazonka.DocumentDB.CreateDBClusterSnapshot+import Amazonka.DocumentDB.CreateDBInstance+import Amazonka.DocumentDB.CreateDBSubnetGroup+import Amazonka.DocumentDB.CreateEventSubscription+import Amazonka.DocumentDB.CreateGlobalCluster+import Amazonka.DocumentDB.DeleteDBCluster+import Amazonka.DocumentDB.DeleteDBClusterParameterGroup+import Amazonka.DocumentDB.DeleteDBClusterSnapshot+import Amazonka.DocumentDB.DeleteDBInstance+import Amazonka.DocumentDB.DeleteDBSubnetGroup+import Amazonka.DocumentDB.DeleteEventSubscription+import Amazonka.DocumentDB.DeleteGlobalCluster+import Amazonka.DocumentDB.DescribeCertificates+import Amazonka.DocumentDB.DescribeDBClusterParameterGroups+import Amazonka.DocumentDB.DescribeDBClusterParameters+import Amazonka.DocumentDB.DescribeDBClusterSnapshotAttributes+import Amazonka.DocumentDB.DescribeDBClusterSnapshots+import Amazonka.DocumentDB.DescribeDBClusters+import Amazonka.DocumentDB.DescribeDBEngineVersions+import Amazonka.DocumentDB.DescribeDBInstances+import Amazonka.DocumentDB.DescribeDBSubnetGroups+import Amazonka.DocumentDB.DescribeEngineDefaultClusterParameters+import Amazonka.DocumentDB.DescribeEventCategories+import Amazonka.DocumentDB.DescribeEventSubscriptions+import Amazonka.DocumentDB.DescribeEvents+import Amazonka.DocumentDB.DescribeGlobalClusters+import Amazonka.DocumentDB.DescribeOrderableDBInstanceOptions+import Amazonka.DocumentDB.DescribePendingMaintenanceActions+import Amazonka.DocumentDB.FailoverDBCluster+import Amazonka.DocumentDB.ListTagsForResource+import Amazonka.DocumentDB.ModifyDBCluster+import Amazonka.DocumentDB.ModifyDBClusterParameterGroup+import Amazonka.DocumentDB.ModifyDBClusterSnapshotAttribute+import Amazonka.DocumentDB.ModifyDBInstance+import Amazonka.DocumentDB.ModifyDBSubnetGroup+import Amazonka.DocumentDB.ModifyEventSubscription+import Amazonka.DocumentDB.ModifyGlobalCluster+import Amazonka.DocumentDB.RebootDBInstance+import Amazonka.DocumentDB.RemoveFromGlobalCluster+import Amazonka.DocumentDB.RemoveSourceIdentifierFromSubscription+import Amazonka.DocumentDB.RemoveTagsFromResource+import Amazonka.DocumentDB.ResetDBClusterParameterGroup+import Amazonka.DocumentDB.RestoreDBClusterFromSnapshot+import Amazonka.DocumentDB.RestoreDBClusterToPointInTime+import Amazonka.DocumentDB.StartDBCluster+import Amazonka.DocumentDB.StopDBCluster+import Amazonka.DocumentDB.Types.AvailabilityZone+import Amazonka.DocumentDB.Types.Certificate+import Amazonka.DocumentDB.Types.CloudwatchLogsExportConfiguration+import Amazonka.DocumentDB.Types.DBCluster+import Amazonka.DocumentDB.Types.DBClusterMember+import Amazonka.DocumentDB.Types.DBClusterParameterGroup+import Amazonka.DocumentDB.Types.DBClusterParameterGroupNameMessage+import Amazonka.DocumentDB.Types.DBClusterRole+import Amazonka.DocumentDB.Types.DBClusterSnapshot+import Amazonka.DocumentDB.Types.DBClusterSnapshotAttribute+import Amazonka.DocumentDB.Types.DBClusterSnapshotAttributesResult+import Amazonka.DocumentDB.Types.DBEngineVersion+import Amazonka.DocumentDB.Types.DBInstance+import Amazonka.DocumentDB.Types.DBInstanceStatusInfo+import Amazonka.DocumentDB.Types.DBSubnetGroup+import Amazonka.DocumentDB.Types.Endpoint+import Amazonka.DocumentDB.Types.EngineDefaults+import Amazonka.DocumentDB.Types.Event+import Amazonka.DocumentDB.Types.EventCategoriesMap+import Amazonka.DocumentDB.Types.EventSubscription+import Amazonka.DocumentDB.Types.Filter+import Amazonka.DocumentDB.Types.GlobalCluster+import Amazonka.DocumentDB.Types.GlobalClusterMember+import Amazonka.DocumentDB.Types.OrderableDBInstanceOption+import Amazonka.DocumentDB.Types.Parameter+import Amazonka.DocumentDB.Types.PendingCloudwatchLogsExports+import Amazonka.DocumentDB.Types.PendingMaintenanceAction+import Amazonka.DocumentDB.Types.PendingModifiedValues+import Amazonka.DocumentDB.Types.ResourcePendingMaintenanceActions+import Amazonka.DocumentDB.Types.Subnet+import Amazonka.DocumentDB.Types.Tag+import Amazonka.DocumentDB.Types.UpgradeTarget+import Amazonka.DocumentDB.Types.VpcSecurityGroupMembership
+ gen/Amazonka/DocumentDB/ListTagsForResource.hs view
@@ -0,0 +1,187 @@+{-# 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.DocumentDB.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all tags on an Amazon DocumentDB resource.+module Amazonka.DocumentDB.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_filters,+    listTagsForResource_resourceName,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tagList,+    listTagsForResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to ListTagsForResource.+--+-- /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | This parameter is not currently supported.+    filters :: Prelude.Maybe [Filter],+    -- | The Amazon DocumentDB resource with tags to be listed. This value is an+    -- Amazon Resource Name (ARN).+    resourceName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listTagsForResource_filters' - This parameter is not currently supported.+--+-- 'resourceName', 'listTagsForResource_resourceName' - The Amazon DocumentDB resource with tags to be listed. This value is an+-- Amazon Resource Name (ARN).+newListTagsForResource ::+  -- | 'resourceName'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceName_ =+  ListTagsForResource'+    { filters = Prelude.Nothing,+      resourceName = pResourceName_+    }++-- | This parameter is not currently supported.+listTagsForResource_filters :: Lens.Lens' ListTagsForResource (Prelude.Maybe [Filter])+listTagsForResource_filters = Lens.lens (\ListTagsForResource' {filters} -> filters) (\s@ListTagsForResource' {} a -> s {filters = a} :: ListTagsForResource) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon DocumentDB resource with tags to be listed. This value is an+-- Amazon Resource Name (ARN).+listTagsForResource_resourceName :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceName = Lens.lens (\ListTagsForResource' {resourceName} -> resourceName) (\s@ListTagsForResource' {} a -> s {resourceName = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "ListTagsForResourceResult"+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> ( x+                            Data..@? "TagList"+                            Core..!@ Prelude.mempty+                            Prelude.>>= Core.may (Data.parseXMLList "Tag")+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` resourceName++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf resourceName++instance Data.ToHeaders ListTagsForResource where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ListTagsForResource where+  toPath = Prelude.const "/"++instance Data.ToQuery ListTagsForResource where+  toQuery ListTagsForResource' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("ListTagsForResource" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Filters"+          Data.=: Data.toQuery+            (Data.toQueryList "Filter" Prelude.<$> filters),+        "ResourceName" Data.=: resourceName+      ]++-- | Represents the output of ListTagsForResource.+--+-- /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | A list of one or more tags.+    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 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tagList', 'listTagsForResourceResponse_tagList' - A list of one or more tags.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tagList =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of one or more tags.+listTagsForResourceResponse_tagList :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe [Tag])+listTagsForResourceResponse_tagList = Lens.lens (\ListTagsForResourceResponse' {tagList} -> tagList) (\s@ListTagsForResourceResponse' {} a -> s {tagList = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tagList+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/ModifyDBCluster.hs view
@@ -0,0 +1,568 @@+{-# 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.DocumentDB.ModifyDBCluster+-- 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 a setting for an Amazon DocumentDB cluster. You can change one+-- or more database configuration parameters by specifying these parameters+-- and the new values in the request.+module Amazonka.DocumentDB.ModifyDBCluster+  ( -- * Creating a Request+    ModifyDBCluster (..),+    newModifyDBCluster,++    -- * Request Lenses+    modifyDBCluster_applyImmediately,+    modifyDBCluster_backupRetentionPeriod,+    modifyDBCluster_cloudwatchLogsExportConfiguration,+    modifyDBCluster_dbClusterParameterGroupName,+    modifyDBCluster_deletionProtection,+    modifyDBCluster_engineVersion,+    modifyDBCluster_masterUserPassword,+    modifyDBCluster_newDBClusterIdentifier,+    modifyDBCluster_port,+    modifyDBCluster_preferredBackupWindow,+    modifyDBCluster_preferredMaintenanceWindow,+    modifyDBCluster_vpcSecurityGroupIds,+    modifyDBCluster_dbClusterIdentifier,++    -- * Destructuring the Response+    ModifyDBClusterResponse (..),+    newModifyDBClusterResponse,++    -- * Response Lenses+    modifyDBClusterResponse_dbCluster,+    modifyDBClusterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to ModifyDBCluster.+--+-- /See:/ 'newModifyDBCluster' smart constructor.+data ModifyDBCluster = ModifyDBCluster'+  { -- | A value that specifies whether the changes in this request and any+    -- pending changes are asynchronously applied as soon as possible,+    -- regardless of the @PreferredMaintenanceWindow@ setting for the cluster.+    -- If this parameter is set to @false@, changes to the cluster are applied+    -- during the next maintenance window.+    --+    -- The @ApplyImmediately@ parameter affects only the+    -- @NewDBClusterIdentifier@ and @MasterUserPassword@ values. If you set+    -- this parameter value to @false@, the changes to the+    -- @NewDBClusterIdentifier@ and @MasterUserPassword@ values are applied+    -- during the next maintenance window. All other changes are applied+    -- immediately, regardless of the value of the @ApplyImmediately@+    -- parameter.+    --+    -- Default: @false@+    applyImmediately :: Prelude.Maybe Prelude.Bool,+    -- | The number of days for which automated backups are retained. You must+    -- specify a minimum value of 1.+    --+    -- Default: 1+    --+    -- Constraints:+    --+    -- -   Must be a value from 1 to 35.+    backupRetentionPeriod :: Prelude.Maybe Prelude.Int,+    -- | The configuration setting for the log types to be enabled for export to+    -- Amazon CloudWatch Logs for a specific instance or cluster. The+    -- @EnableLogTypes@ and @DisableLogTypes@ arrays determine which logs are+    -- exported (or not exported) to CloudWatch Logs.+    cloudwatchLogsExportConfiguration :: Prelude.Maybe CloudwatchLogsExportConfiguration,+    -- | The name of the cluster parameter group to use for the cluster.+    dbClusterParameterGroupName :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether this cluster can be deleted. If @DeletionProtection@+    -- is enabled, the cluster cannot be deleted unless it is modified and+    -- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+    -- from being accidentally deleted.+    deletionProtection :: Prelude.Maybe Prelude.Bool,+    -- | The version number of the database engine to which you want to upgrade.+    -- Modifying engine version is not supported on Amazon DocumentDB.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | The password for the master database user. This password can contain any+    -- printable ASCII character except forward slash (\/), double quote (\"),+    -- or the \"at\" symbol (\@).+    --+    -- Constraints: Must contain from 8 to 100 characters.+    masterUserPassword :: Prelude.Maybe Prelude.Text,+    -- | The new cluster identifier for the cluster when renaming a cluster. This+    -- value is stored as a lowercase string.+    --+    -- Constraints:+    --+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens.+    --+    -- -   The first character must be a letter.+    --+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.+    --+    -- Example: @my-cluster2@+    newDBClusterIdentifier' :: Prelude.Maybe Prelude.Text,+    -- | The port number on which the cluster accepts connections.+    --+    -- Constraints: Must be a value from @1150@ to @65535@.+    --+    -- Default: The same port as the original cluster.+    port :: Prelude.Maybe Prelude.Int,+    -- | The daily time range during which automated backups are created if+    -- automated backups are enabled, using the @BackupRetentionPeriod@+    -- parameter.+    --+    -- The default is a 30-minute window selected at random from an 8-hour+    -- block of time for each Amazon Web Services Region.+    --+    -- Constraints:+    --+    -- -   Must be in the format @hh24:mi-hh24:mi@.+    --+    -- -   Must be in Universal Coordinated Time (UTC).+    --+    -- -   Must not conflict with the preferred maintenance window.+    --+    -- -   Must be at least 30 minutes.+    preferredBackupWindow :: Prelude.Maybe Prelude.Text,+    -- | The weekly time range during which system maintenance can occur, in+    -- Universal Coordinated Time (UTC).+    --+    -- Format: @ddd:hh24:mi-ddd:hh24:mi@+    --+    -- The default is a 30-minute window selected at random from an 8-hour+    -- block of time for each Amazon Web Services Region, occurring on a random+    -- day of the week.+    --+    -- Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun+    --+    -- Constraints: Minimum 30-minute window.+    preferredMaintenanceWindow :: Prelude.Maybe Prelude.Text,+    -- | A list of virtual private cloud (VPC) security groups that the cluster+    -- will belong to.+    vpcSecurityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | The cluster identifier for the cluster that is being modified. This+    -- parameter is not case sensitive.+    --+    -- Constraints:+    --+    -- -   Must match the identifier of an existing @DBCluster@.+    dbClusterIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModifyDBCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applyImmediately', 'modifyDBCluster_applyImmediately' - A value that specifies whether the changes in this request and any+-- pending changes are asynchronously applied as soon as possible,+-- regardless of the @PreferredMaintenanceWindow@ setting for the cluster.+-- If this parameter is set to @false@, changes to the cluster are applied+-- during the next maintenance window.+--+-- The @ApplyImmediately@ parameter affects only the+-- @NewDBClusterIdentifier@ and @MasterUserPassword@ values. If you set+-- this parameter value to @false@, the changes to the+-- @NewDBClusterIdentifier@ and @MasterUserPassword@ values are applied+-- during the next maintenance window. All other changes are applied+-- immediately, regardless of the value of the @ApplyImmediately@+-- parameter.+--+-- Default: @false@+--+-- 'backupRetentionPeriod', 'modifyDBCluster_backupRetentionPeriod' - The number of days for which automated backups are retained. You must+-- specify a minimum value of 1.+--+-- Default: 1+--+-- Constraints:+--+-- -   Must be a value from 1 to 35.+--+-- 'cloudwatchLogsExportConfiguration', 'modifyDBCluster_cloudwatchLogsExportConfiguration' - The configuration setting for the log types to be enabled for export to+-- Amazon CloudWatch Logs for a specific instance or cluster. The+-- @EnableLogTypes@ and @DisableLogTypes@ arrays determine which logs are+-- exported (or not exported) to CloudWatch Logs.+--+-- 'dbClusterParameterGroupName', 'modifyDBCluster_dbClusterParameterGroupName' - The name of the cluster parameter group to use for the cluster.+--+-- 'deletionProtection', 'modifyDBCluster_deletionProtection' - Specifies whether this cluster can be deleted. If @DeletionProtection@+-- is enabled, the cluster cannot be deleted unless it is modified and+-- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+-- from being accidentally deleted.+--+-- 'engineVersion', 'modifyDBCluster_engineVersion' - The version number of the database engine to which you want to upgrade.+-- Modifying engine version is not supported on Amazon DocumentDB.+--+-- 'masterUserPassword', 'modifyDBCluster_masterUserPassword' - The password for the master database user. This password can contain any+-- printable ASCII character except forward slash (\/), double quote (\"),+-- or the \"at\" symbol (\@).+--+-- Constraints: Must contain from 8 to 100 characters.+--+-- 'newDBClusterIdentifier'', 'modifyDBCluster_newDBClusterIdentifier' - The new cluster identifier for the cluster when renaming a cluster. This+-- value is stored as a lowercase string.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @my-cluster2@+--+-- 'port', 'modifyDBCluster_port' - The port number on which the cluster accepts connections.+--+-- Constraints: Must be a value from @1150@ to @65535@.+--+-- Default: The same port as the original cluster.+--+-- 'preferredBackupWindow', 'modifyDBCluster_preferredBackupWindow' - The daily time range during which automated backups are created if+-- automated backups are enabled, using the @BackupRetentionPeriod@+-- parameter.+--+-- The default is a 30-minute window selected at random from an 8-hour+-- block of time for each Amazon Web Services Region.+--+-- Constraints:+--+-- -   Must be in the format @hh24:mi-hh24:mi@.+--+-- -   Must be in Universal Coordinated Time (UTC).+--+-- -   Must not conflict with the preferred maintenance window.+--+-- -   Must be at least 30 minutes.+--+-- 'preferredMaintenanceWindow', 'modifyDBCluster_preferredMaintenanceWindow' - The weekly time range during which system maintenance can occur, in+-- Universal Coordinated Time (UTC).+--+-- Format: @ddd:hh24:mi-ddd:hh24:mi@+--+-- The default is a 30-minute window selected at random from an 8-hour+-- block of time for each Amazon Web Services Region, occurring on a random+-- day of the week.+--+-- Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun+--+-- Constraints: Minimum 30-minute window.+--+-- 'vpcSecurityGroupIds', 'modifyDBCluster_vpcSecurityGroupIds' - A list of virtual private cloud (VPC) security groups that the cluster+-- will belong to.+--+-- 'dbClusterIdentifier', 'modifyDBCluster_dbClusterIdentifier' - The cluster identifier for the cluster that is being modified. This+-- parameter is not case sensitive.+--+-- Constraints:+--+-- -   Must match the identifier of an existing @DBCluster@.+newModifyDBCluster ::+  -- | 'dbClusterIdentifier'+  Prelude.Text ->+  ModifyDBCluster+newModifyDBCluster pDBClusterIdentifier_ =+  ModifyDBCluster'+    { applyImmediately =+        Prelude.Nothing,+      backupRetentionPeriod = Prelude.Nothing,+      cloudwatchLogsExportConfiguration = Prelude.Nothing,+      dbClusterParameterGroupName = Prelude.Nothing,+      deletionProtection = Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      masterUserPassword = Prelude.Nothing,+      newDBClusterIdentifier' = Prelude.Nothing,+      port = Prelude.Nothing,+      preferredBackupWindow = Prelude.Nothing,+      preferredMaintenanceWindow = Prelude.Nothing,+      vpcSecurityGroupIds = Prelude.Nothing,+      dbClusterIdentifier = pDBClusterIdentifier_+    }++-- | A value that specifies whether the changes in this request and any+-- pending changes are asynchronously applied as soon as possible,+-- regardless of the @PreferredMaintenanceWindow@ setting for the cluster.+-- If this parameter is set to @false@, changes to the cluster are applied+-- during the next maintenance window.+--+-- The @ApplyImmediately@ parameter affects only the+-- @NewDBClusterIdentifier@ and @MasterUserPassword@ values. If you set+-- this parameter value to @false@, the changes to the+-- @NewDBClusterIdentifier@ and @MasterUserPassword@ values are applied+-- during the next maintenance window. All other changes are applied+-- immediately, regardless of the value of the @ApplyImmediately@+-- parameter.+--+-- Default: @false@+modifyDBCluster_applyImmediately :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Bool)+modifyDBCluster_applyImmediately = Lens.lens (\ModifyDBCluster' {applyImmediately} -> applyImmediately) (\s@ModifyDBCluster' {} a -> s {applyImmediately = a} :: ModifyDBCluster)++-- | The number of days for which automated backups are retained. You must+-- specify a minimum value of 1.+--+-- Default: 1+--+-- Constraints:+--+-- -   Must be a value from 1 to 35.+modifyDBCluster_backupRetentionPeriod :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Int)+modifyDBCluster_backupRetentionPeriod = Lens.lens (\ModifyDBCluster' {backupRetentionPeriod} -> backupRetentionPeriod) (\s@ModifyDBCluster' {} a -> s {backupRetentionPeriod = a} :: ModifyDBCluster)++-- | The configuration setting for the log types to be enabled for export to+-- Amazon CloudWatch Logs for a specific instance or cluster. The+-- @EnableLogTypes@ and @DisableLogTypes@ arrays determine which logs are+-- exported (or not exported) to CloudWatch Logs.+modifyDBCluster_cloudwatchLogsExportConfiguration :: Lens.Lens' ModifyDBCluster (Prelude.Maybe CloudwatchLogsExportConfiguration)+modifyDBCluster_cloudwatchLogsExportConfiguration = Lens.lens (\ModifyDBCluster' {cloudwatchLogsExportConfiguration} -> cloudwatchLogsExportConfiguration) (\s@ModifyDBCluster' {} a -> s {cloudwatchLogsExportConfiguration = a} :: ModifyDBCluster)++-- | The name of the cluster parameter group to use for the cluster.+modifyDBCluster_dbClusterParameterGroupName :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Text)+modifyDBCluster_dbClusterParameterGroupName = Lens.lens (\ModifyDBCluster' {dbClusterParameterGroupName} -> dbClusterParameterGroupName) (\s@ModifyDBCluster' {} a -> s {dbClusterParameterGroupName = a} :: ModifyDBCluster)++-- | Specifies whether this cluster can be deleted. If @DeletionProtection@+-- is enabled, the cluster cannot be deleted unless it is modified and+-- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+-- from being accidentally deleted.+modifyDBCluster_deletionProtection :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Bool)+modifyDBCluster_deletionProtection = Lens.lens (\ModifyDBCluster' {deletionProtection} -> deletionProtection) (\s@ModifyDBCluster' {} a -> s {deletionProtection = a} :: ModifyDBCluster)++-- | The version number of the database engine to which you want to upgrade.+-- Modifying engine version is not supported on Amazon DocumentDB.+modifyDBCluster_engineVersion :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Text)+modifyDBCluster_engineVersion = Lens.lens (\ModifyDBCluster' {engineVersion} -> engineVersion) (\s@ModifyDBCluster' {} a -> s {engineVersion = a} :: ModifyDBCluster)++-- | The password for the master database user. This password can contain any+-- printable ASCII character except forward slash (\/), double quote (\"),+-- or the \"at\" symbol (\@).+--+-- Constraints: Must contain from 8 to 100 characters.+modifyDBCluster_masterUserPassword :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Text)+modifyDBCluster_masterUserPassword = Lens.lens (\ModifyDBCluster' {masterUserPassword} -> masterUserPassword) (\s@ModifyDBCluster' {} a -> s {masterUserPassword = a} :: ModifyDBCluster)++-- | The new cluster identifier for the cluster when renaming a cluster. This+-- value is stored as a lowercase string.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @my-cluster2@+modifyDBCluster_newDBClusterIdentifier :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Text)+modifyDBCluster_newDBClusterIdentifier = Lens.lens (\ModifyDBCluster' {newDBClusterIdentifier'} -> newDBClusterIdentifier') (\s@ModifyDBCluster' {} a -> s {newDBClusterIdentifier' = a} :: ModifyDBCluster)++-- | The port number on which the cluster accepts connections.+--+-- Constraints: Must be a value from @1150@ to @65535@.+--+-- Default: The same port as the original cluster.+modifyDBCluster_port :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Int)+modifyDBCluster_port = Lens.lens (\ModifyDBCluster' {port} -> port) (\s@ModifyDBCluster' {} a -> s {port = a} :: ModifyDBCluster)++-- | The daily time range during which automated backups are created if+-- automated backups are enabled, using the @BackupRetentionPeriod@+-- parameter.+--+-- The default is a 30-minute window selected at random from an 8-hour+-- block of time for each Amazon Web Services Region.+--+-- Constraints:+--+-- -   Must be in the format @hh24:mi-hh24:mi@.+--+-- -   Must be in Universal Coordinated Time (UTC).+--+-- -   Must not conflict with the preferred maintenance window.+--+-- -   Must be at least 30 minutes.+modifyDBCluster_preferredBackupWindow :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Text)+modifyDBCluster_preferredBackupWindow = Lens.lens (\ModifyDBCluster' {preferredBackupWindow} -> preferredBackupWindow) (\s@ModifyDBCluster' {} a -> s {preferredBackupWindow = a} :: ModifyDBCluster)++-- | The weekly time range during which system maintenance can occur, in+-- Universal Coordinated Time (UTC).+--+-- Format: @ddd:hh24:mi-ddd:hh24:mi@+--+-- The default is a 30-minute window selected at random from an 8-hour+-- block of time for each Amazon Web Services Region, occurring on a random+-- day of the week.+--+-- Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun+--+-- Constraints: Minimum 30-minute window.+modifyDBCluster_preferredMaintenanceWindow :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Text)+modifyDBCluster_preferredMaintenanceWindow = Lens.lens (\ModifyDBCluster' {preferredMaintenanceWindow} -> preferredMaintenanceWindow) (\s@ModifyDBCluster' {} a -> s {preferredMaintenanceWindow = a} :: ModifyDBCluster)++-- | A list of virtual private cloud (VPC) security groups that the cluster+-- will belong to.+modifyDBCluster_vpcSecurityGroupIds :: Lens.Lens' ModifyDBCluster (Prelude.Maybe [Prelude.Text])+modifyDBCluster_vpcSecurityGroupIds = Lens.lens (\ModifyDBCluster' {vpcSecurityGroupIds} -> vpcSecurityGroupIds) (\s@ModifyDBCluster' {} a -> s {vpcSecurityGroupIds = a} :: ModifyDBCluster) Prelude.. Lens.mapping Lens.coerced++-- | The cluster identifier for the cluster that is being modified. This+-- parameter is not case sensitive.+--+-- Constraints:+--+-- -   Must match the identifier of an existing @DBCluster@.+modifyDBCluster_dbClusterIdentifier :: Lens.Lens' ModifyDBCluster Prelude.Text+modifyDBCluster_dbClusterIdentifier = Lens.lens (\ModifyDBCluster' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@ModifyDBCluster' {} a -> s {dbClusterIdentifier = a} :: ModifyDBCluster)++instance Core.AWSRequest ModifyDBCluster where+  type+    AWSResponse ModifyDBCluster =+      ModifyDBClusterResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "ModifyDBClusterResult"+      ( \s h x ->+          ModifyDBClusterResponse'+            Prelude.<$> (x Data..@? "DBCluster")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ModifyDBCluster where+  hashWithSalt _salt ModifyDBCluster' {..} =+    _salt+      `Prelude.hashWithSalt` applyImmediately+      `Prelude.hashWithSalt` backupRetentionPeriod+      `Prelude.hashWithSalt` cloudwatchLogsExportConfiguration+      `Prelude.hashWithSalt` dbClusterParameterGroupName+      `Prelude.hashWithSalt` deletionProtection+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` masterUserPassword+      `Prelude.hashWithSalt` newDBClusterIdentifier'+      `Prelude.hashWithSalt` port+      `Prelude.hashWithSalt` preferredBackupWindow+      `Prelude.hashWithSalt` preferredMaintenanceWindow+      `Prelude.hashWithSalt` vpcSecurityGroupIds+      `Prelude.hashWithSalt` dbClusterIdentifier++instance Prelude.NFData ModifyDBCluster where+  rnf ModifyDBCluster' {..} =+    Prelude.rnf applyImmediately+      `Prelude.seq` Prelude.rnf backupRetentionPeriod+      `Prelude.seq` Prelude.rnf cloudwatchLogsExportConfiguration+      `Prelude.seq` Prelude.rnf dbClusterParameterGroupName+      `Prelude.seq` Prelude.rnf deletionProtection+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf masterUserPassword+      `Prelude.seq` Prelude.rnf newDBClusterIdentifier'+      `Prelude.seq` Prelude.rnf port+      `Prelude.seq` Prelude.rnf preferredBackupWindow+      `Prelude.seq` Prelude.rnf preferredMaintenanceWindow+      `Prelude.seq` Prelude.rnf vpcSecurityGroupIds+      `Prelude.seq` Prelude.rnf dbClusterIdentifier++instance Data.ToHeaders ModifyDBCluster where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ModifyDBCluster where+  toPath = Prelude.const "/"++instance Data.ToQuery ModifyDBCluster where+  toQuery ModifyDBCluster' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("ModifyDBCluster" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "ApplyImmediately" Data.=: applyImmediately,+        "BackupRetentionPeriod"+          Data.=: backupRetentionPeriod,+        "CloudwatchLogsExportConfiguration"+          Data.=: cloudwatchLogsExportConfiguration,+        "DBClusterParameterGroupName"+          Data.=: dbClusterParameterGroupName,+        "DeletionProtection" Data.=: deletionProtection,+        "EngineVersion" Data.=: engineVersion,+        "MasterUserPassword" Data.=: masterUserPassword,+        "NewDBClusterIdentifier"+          Data.=: newDBClusterIdentifier',+        "Port" Data.=: port,+        "PreferredBackupWindow"+          Data.=: preferredBackupWindow,+        "PreferredMaintenanceWindow"+          Data.=: preferredMaintenanceWindow,+        "VpcSecurityGroupIds"+          Data.=: Data.toQuery+            ( Data.toQueryList "VpcSecurityGroupId"+                Prelude.<$> vpcSecurityGroupIds+            ),+        "DBClusterIdentifier" Data.=: dbClusterIdentifier+      ]++-- | /See:/ 'newModifyDBClusterResponse' smart constructor.+data ModifyDBClusterResponse = ModifyDBClusterResponse'+  { dbCluster :: Prelude.Maybe DBCluster,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModifyDBClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbCluster', 'modifyDBClusterResponse_dbCluster' - Undocumented member.+--+-- 'httpStatus', 'modifyDBClusterResponse_httpStatus' - The response's http status code.+newModifyDBClusterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ModifyDBClusterResponse+newModifyDBClusterResponse pHttpStatus_ =+  ModifyDBClusterResponse'+    { dbCluster =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+modifyDBClusterResponse_dbCluster :: Lens.Lens' ModifyDBClusterResponse (Prelude.Maybe DBCluster)+modifyDBClusterResponse_dbCluster = Lens.lens (\ModifyDBClusterResponse' {dbCluster} -> dbCluster) (\s@ModifyDBClusterResponse' {} a -> s {dbCluster = a} :: ModifyDBClusterResponse)++-- | The response's http status code.+modifyDBClusterResponse_httpStatus :: Lens.Lens' ModifyDBClusterResponse Prelude.Int+modifyDBClusterResponse_httpStatus = Lens.lens (\ModifyDBClusterResponse' {httpStatus} -> httpStatus) (\s@ModifyDBClusterResponse' {} a -> s {httpStatus = a} :: ModifyDBClusterResponse)++instance Prelude.NFData ModifyDBClusterResponse where+  rnf ModifyDBClusterResponse' {..} =+    Prelude.rnf dbCluster+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/ModifyDBClusterParameterGroup.hs view
@@ -0,0 +1,155 @@+{-# 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.DocumentDB.ModifyDBClusterParameterGroup+-- 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 cluster parameter group. To modify more+-- than one parameter, submit a list of the following: @ParameterName@,+-- @ParameterValue@, and @ApplyMethod@. A maximum of 20 parameters can be+-- modified in a single request.+--+-- Changes to dynamic parameters are applied immediately. Changes to static+-- parameters require a reboot or maintenance window before the change can+-- take effect.+--+-- After you create a cluster parameter group, you should wait at least 5+-- minutes before creating your first cluster that uses that cluster+-- parameter group as the default parameter group. This allows Amazon+-- DocumentDB to fully complete the create action before the parameter+-- group is used as the default for a new cluster. This step is especially+-- important for parameters that are critical when creating the default+-- database for a cluster, such as the character set for the default+-- database defined by the @character_set_database@ parameter.+module Amazonka.DocumentDB.ModifyDBClusterParameterGroup+  ( -- * Creating a Request+    ModifyDBClusterParameterGroup (..),+    newModifyDBClusterParameterGroup,++    -- * Request Lenses+    modifyDBClusterParameterGroup_dbClusterParameterGroupName,+    modifyDBClusterParameterGroup_parameters,++    -- * Destructuring the Response+    DBClusterParameterGroupNameMessage (..),+    newDBClusterParameterGroupNameMessage,++    -- * Response Lenses+    dbClusterParameterGroupNameMessage_dbClusterParameterGroupName,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to ModifyDBClusterParameterGroup.+--+-- /See:/ 'newModifyDBClusterParameterGroup' smart constructor.+data ModifyDBClusterParameterGroup = ModifyDBClusterParameterGroup'+  { -- | The name of the cluster parameter group to modify.+    dbClusterParameterGroupName :: Prelude.Text,+    -- | A list of parameters in the cluster parameter group to modify.+    parameters :: [Parameter]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModifyDBClusterParameterGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterParameterGroupName', 'modifyDBClusterParameterGroup_dbClusterParameterGroupName' - The name of the cluster parameter group to modify.+--+-- 'parameters', 'modifyDBClusterParameterGroup_parameters' - A list of parameters in the cluster parameter group to modify.+newModifyDBClusterParameterGroup ::+  -- | 'dbClusterParameterGroupName'+  Prelude.Text ->+  ModifyDBClusterParameterGroup+newModifyDBClusterParameterGroup+  pDBClusterParameterGroupName_ =+    ModifyDBClusterParameterGroup'+      { dbClusterParameterGroupName =+          pDBClusterParameterGroupName_,+        parameters = Prelude.mempty+      }++-- | The name of the cluster parameter group to modify.+modifyDBClusterParameterGroup_dbClusterParameterGroupName :: Lens.Lens' ModifyDBClusterParameterGroup Prelude.Text+modifyDBClusterParameterGroup_dbClusterParameterGroupName = Lens.lens (\ModifyDBClusterParameterGroup' {dbClusterParameterGroupName} -> dbClusterParameterGroupName) (\s@ModifyDBClusterParameterGroup' {} a -> s {dbClusterParameterGroupName = a} :: ModifyDBClusterParameterGroup)++-- | A list of parameters in the cluster parameter group to modify.+modifyDBClusterParameterGroup_parameters :: Lens.Lens' ModifyDBClusterParameterGroup [Parameter]+modifyDBClusterParameterGroup_parameters = Lens.lens (\ModifyDBClusterParameterGroup' {parameters} -> parameters) (\s@ModifyDBClusterParameterGroup' {} a -> s {parameters = a} :: ModifyDBClusterParameterGroup) Prelude.. Lens.coerced++instance+  Core.AWSRequest+    ModifyDBClusterParameterGroup+  where+  type+    AWSResponse ModifyDBClusterParameterGroup =+      DBClusterParameterGroupNameMessage+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "ModifyDBClusterParameterGroupResult"+      (\s h x -> Data.parseXML x)++instance+  Prelude.Hashable+    ModifyDBClusterParameterGroup+  where+  hashWithSalt _salt ModifyDBClusterParameterGroup' {..} =+    _salt+      `Prelude.hashWithSalt` dbClusterParameterGroupName+      `Prelude.hashWithSalt` parameters++instance Prelude.NFData ModifyDBClusterParameterGroup where+  rnf ModifyDBClusterParameterGroup' {..} =+    Prelude.rnf dbClusterParameterGroupName+      `Prelude.seq` Prelude.rnf parameters++instance Data.ToHeaders ModifyDBClusterParameterGroup where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ModifyDBClusterParameterGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery ModifyDBClusterParameterGroup where+  toQuery ModifyDBClusterParameterGroup' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "ModifyDBClusterParameterGroup" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBClusterParameterGroupName"+          Data.=: dbClusterParameterGroupName,+        "Parameters"+          Data.=: Data.toQueryList "Parameter" parameters+      ]
+ gen/Amazonka/DocumentDB/ModifyDBClusterSnapshotAttribute.hs view
@@ -0,0 +1,316 @@+{-# 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.DocumentDB.ModifyDBClusterSnapshotAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds an attribute and values to, or removes an attribute and values+-- from, a manual cluster snapshot.+--+-- To share a manual cluster snapshot with other Amazon Web Services+-- accounts, specify @restore@ as the @AttributeName@, and use the+-- @ValuesToAdd@ parameter to add a list of IDs of the Amazon Web Services+-- accounts that are authorized to restore the manual cluster snapshot. Use+-- the value @all@ to make the manual cluster snapshot public, which means+-- that it can be copied or restored by all Amazon Web Services accounts.+-- Do not add the @all@ value for any manual cluster snapshots that contain+-- private information that you don\'t want available to all Amazon Web+-- Services accounts. If a manual cluster snapshot is encrypted, it can be+-- shared, but only by specifying a list of authorized Amazon Web Services+-- account IDs for the @ValuesToAdd@ parameter. You can\'t use @all@ as a+-- value for that parameter in this case.+module Amazonka.DocumentDB.ModifyDBClusterSnapshotAttribute+  ( -- * Creating a Request+    ModifyDBClusterSnapshotAttribute (..),+    newModifyDBClusterSnapshotAttribute,++    -- * Request Lenses+    modifyDBClusterSnapshotAttribute_valuesToAdd,+    modifyDBClusterSnapshotAttribute_valuesToRemove,+    modifyDBClusterSnapshotAttribute_dbClusterSnapshotIdentifier,+    modifyDBClusterSnapshotAttribute_attributeName,++    -- * Destructuring the Response+    ModifyDBClusterSnapshotAttributeResponse (..),+    newModifyDBClusterSnapshotAttributeResponse,++    -- * Response Lenses+    modifyDBClusterSnapshotAttributeResponse_dbClusterSnapshotAttributesResult,+    modifyDBClusterSnapshotAttributeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to ModifyDBClusterSnapshotAttribute.+--+-- /See:/ 'newModifyDBClusterSnapshotAttribute' smart constructor.+data ModifyDBClusterSnapshotAttribute = ModifyDBClusterSnapshotAttribute'+  { -- | A list of cluster snapshot attributes to add to the attribute specified+    -- by @AttributeName@.+    --+    -- To authorize other Amazon Web Services accounts to copy or restore a+    -- manual cluster snapshot, set this list to include one or more Amazon Web+    -- Services account IDs. To make the manual cluster snapshot restorable by+    -- any Amazon Web Services account, set it to @all@. Do not add the @all@+    -- value for any manual cluster snapshots that contain private information+    -- that you don\'t want to be available to all Amazon Web Services+    -- accounts.+    valuesToAdd :: Prelude.Maybe [Prelude.Text],+    -- | A list of cluster snapshot attributes to remove from the attribute+    -- specified by @AttributeName@.+    --+    -- To remove authorization for other Amazon Web Services accounts to copy+    -- or restore a manual cluster snapshot, set this list to include one or+    -- more Amazon Web Services account identifiers. To remove authorization+    -- for any Amazon Web Services account to copy or restore the cluster+    -- snapshot, set it to @all@ . If you specify @all@, an Amazon Web Services+    -- account whose account ID is explicitly added to the @restore@ attribute+    -- can still copy or restore a manual cluster snapshot.+    valuesToRemove :: Prelude.Maybe [Prelude.Text],+    -- | The identifier for the cluster snapshot to modify the attributes for.+    dbClusterSnapshotIdentifier :: Prelude.Text,+    -- | The name of the cluster snapshot attribute to modify.+    --+    -- To manage authorization for other Amazon Web Services accounts to copy+    -- or restore a manual cluster snapshot, set this value to @restore@.+    attributeName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModifyDBClusterSnapshotAttribute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'valuesToAdd', 'modifyDBClusterSnapshotAttribute_valuesToAdd' - A list of cluster snapshot attributes to add to the attribute specified+-- by @AttributeName@.+--+-- To authorize other Amazon Web Services accounts to copy or restore a+-- manual cluster snapshot, set this list to include one or more Amazon Web+-- Services account IDs. To make the manual cluster snapshot restorable by+-- any Amazon Web Services account, set it to @all@. Do not add the @all@+-- value for any manual cluster snapshots that contain private information+-- that you don\'t want to be available to all Amazon Web Services+-- accounts.+--+-- 'valuesToRemove', 'modifyDBClusterSnapshotAttribute_valuesToRemove' - A list of cluster snapshot attributes to remove from the attribute+-- specified by @AttributeName@.+--+-- To remove authorization for other Amazon Web Services accounts to copy+-- or restore a manual cluster snapshot, set this list to include one or+-- more Amazon Web Services account identifiers. To remove authorization+-- for any Amazon Web Services account to copy or restore the cluster+-- snapshot, set it to @all@ . If you specify @all@, an Amazon Web Services+-- account whose account ID is explicitly added to the @restore@ attribute+-- can still copy or restore a manual cluster snapshot.+--+-- 'dbClusterSnapshotIdentifier', 'modifyDBClusterSnapshotAttribute_dbClusterSnapshotIdentifier' - The identifier for the cluster snapshot to modify the attributes for.+--+-- 'attributeName', 'modifyDBClusterSnapshotAttribute_attributeName' - The name of the cluster snapshot attribute to modify.+--+-- To manage authorization for other Amazon Web Services accounts to copy+-- or restore a manual cluster snapshot, set this value to @restore@.+newModifyDBClusterSnapshotAttribute ::+  -- | 'dbClusterSnapshotIdentifier'+  Prelude.Text ->+  -- | 'attributeName'+  Prelude.Text ->+  ModifyDBClusterSnapshotAttribute+newModifyDBClusterSnapshotAttribute+  pDBClusterSnapshotIdentifier_+  pAttributeName_ =+    ModifyDBClusterSnapshotAttribute'+      { valuesToAdd =+          Prelude.Nothing,+        valuesToRemove = Prelude.Nothing,+        dbClusterSnapshotIdentifier =+          pDBClusterSnapshotIdentifier_,+        attributeName = pAttributeName_+      }++-- | A list of cluster snapshot attributes to add to the attribute specified+-- by @AttributeName@.+--+-- To authorize other Amazon Web Services accounts to copy or restore a+-- manual cluster snapshot, set this list to include one or more Amazon Web+-- Services account IDs. To make the manual cluster snapshot restorable by+-- any Amazon Web Services account, set it to @all@. Do not add the @all@+-- value for any manual cluster snapshots that contain private information+-- that you don\'t want to be available to all Amazon Web Services+-- accounts.+modifyDBClusterSnapshotAttribute_valuesToAdd :: Lens.Lens' ModifyDBClusterSnapshotAttribute (Prelude.Maybe [Prelude.Text])+modifyDBClusterSnapshotAttribute_valuesToAdd = Lens.lens (\ModifyDBClusterSnapshotAttribute' {valuesToAdd} -> valuesToAdd) (\s@ModifyDBClusterSnapshotAttribute' {} a -> s {valuesToAdd = a} :: ModifyDBClusterSnapshotAttribute) Prelude.. Lens.mapping Lens.coerced++-- | A list of cluster snapshot attributes to remove from the attribute+-- specified by @AttributeName@.+--+-- To remove authorization for other Amazon Web Services accounts to copy+-- or restore a manual cluster snapshot, set this list to include one or+-- more Amazon Web Services account identifiers. To remove authorization+-- for any Amazon Web Services account to copy or restore the cluster+-- snapshot, set it to @all@ . If you specify @all@, an Amazon Web Services+-- account whose account ID is explicitly added to the @restore@ attribute+-- can still copy or restore a manual cluster snapshot.+modifyDBClusterSnapshotAttribute_valuesToRemove :: Lens.Lens' ModifyDBClusterSnapshotAttribute (Prelude.Maybe [Prelude.Text])+modifyDBClusterSnapshotAttribute_valuesToRemove = Lens.lens (\ModifyDBClusterSnapshotAttribute' {valuesToRemove} -> valuesToRemove) (\s@ModifyDBClusterSnapshotAttribute' {} a -> s {valuesToRemove = a} :: ModifyDBClusterSnapshotAttribute) Prelude.. Lens.mapping Lens.coerced++-- | The identifier for the cluster snapshot to modify the attributes for.+modifyDBClusterSnapshotAttribute_dbClusterSnapshotIdentifier :: Lens.Lens' ModifyDBClusterSnapshotAttribute Prelude.Text+modifyDBClusterSnapshotAttribute_dbClusterSnapshotIdentifier = Lens.lens (\ModifyDBClusterSnapshotAttribute' {dbClusterSnapshotIdentifier} -> dbClusterSnapshotIdentifier) (\s@ModifyDBClusterSnapshotAttribute' {} a -> s {dbClusterSnapshotIdentifier = a} :: ModifyDBClusterSnapshotAttribute)++-- | The name of the cluster snapshot attribute to modify.+--+-- To manage authorization for other Amazon Web Services accounts to copy+-- or restore a manual cluster snapshot, set this value to @restore@.+modifyDBClusterSnapshotAttribute_attributeName :: Lens.Lens' ModifyDBClusterSnapshotAttribute Prelude.Text+modifyDBClusterSnapshotAttribute_attributeName = Lens.lens (\ModifyDBClusterSnapshotAttribute' {attributeName} -> attributeName) (\s@ModifyDBClusterSnapshotAttribute' {} a -> s {attributeName = a} :: ModifyDBClusterSnapshotAttribute)++instance+  Core.AWSRequest+    ModifyDBClusterSnapshotAttribute+  where+  type+    AWSResponse ModifyDBClusterSnapshotAttribute =+      ModifyDBClusterSnapshotAttributeResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "ModifyDBClusterSnapshotAttributeResult"+      ( \s h x ->+          ModifyDBClusterSnapshotAttributeResponse'+            Prelude.<$> (x Data..@? "DBClusterSnapshotAttributesResult")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ModifyDBClusterSnapshotAttribute+  where+  hashWithSalt+    _salt+    ModifyDBClusterSnapshotAttribute' {..} =+      _salt+        `Prelude.hashWithSalt` valuesToAdd+        `Prelude.hashWithSalt` valuesToRemove+        `Prelude.hashWithSalt` dbClusterSnapshotIdentifier+        `Prelude.hashWithSalt` attributeName++instance+  Prelude.NFData+    ModifyDBClusterSnapshotAttribute+  where+  rnf ModifyDBClusterSnapshotAttribute' {..} =+    Prelude.rnf valuesToAdd+      `Prelude.seq` Prelude.rnf valuesToRemove+      `Prelude.seq` Prelude.rnf dbClusterSnapshotIdentifier+      `Prelude.seq` Prelude.rnf attributeName++instance+  Data.ToHeaders+    ModifyDBClusterSnapshotAttribute+  where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ModifyDBClusterSnapshotAttribute where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    ModifyDBClusterSnapshotAttribute+  where+  toQuery ModifyDBClusterSnapshotAttribute' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "ModifyDBClusterSnapshotAttribute" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "ValuesToAdd"+          Data.=: Data.toQuery+            ( Data.toQueryList "AttributeValue"+                Prelude.<$> valuesToAdd+            ),+        "ValuesToRemove"+          Data.=: Data.toQuery+            ( Data.toQueryList "AttributeValue"+                Prelude.<$> valuesToRemove+            ),+        "DBClusterSnapshotIdentifier"+          Data.=: dbClusterSnapshotIdentifier,+        "AttributeName" Data.=: attributeName+      ]++-- | /See:/ 'newModifyDBClusterSnapshotAttributeResponse' smart constructor.+data ModifyDBClusterSnapshotAttributeResponse = ModifyDBClusterSnapshotAttributeResponse'+  { dbClusterSnapshotAttributesResult :: Prelude.Maybe DBClusterSnapshotAttributesResult,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModifyDBClusterSnapshotAttributeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterSnapshotAttributesResult', 'modifyDBClusterSnapshotAttributeResponse_dbClusterSnapshotAttributesResult' - Undocumented member.+--+-- 'httpStatus', 'modifyDBClusterSnapshotAttributeResponse_httpStatus' - The response's http status code.+newModifyDBClusterSnapshotAttributeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ModifyDBClusterSnapshotAttributeResponse+newModifyDBClusterSnapshotAttributeResponse+  pHttpStatus_ =+    ModifyDBClusterSnapshotAttributeResponse'+      { dbClusterSnapshotAttributesResult =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Undocumented member.+modifyDBClusterSnapshotAttributeResponse_dbClusterSnapshotAttributesResult :: Lens.Lens' ModifyDBClusterSnapshotAttributeResponse (Prelude.Maybe DBClusterSnapshotAttributesResult)+modifyDBClusterSnapshotAttributeResponse_dbClusterSnapshotAttributesResult = Lens.lens (\ModifyDBClusterSnapshotAttributeResponse' {dbClusterSnapshotAttributesResult} -> dbClusterSnapshotAttributesResult) (\s@ModifyDBClusterSnapshotAttributeResponse' {} a -> s {dbClusterSnapshotAttributesResult = a} :: ModifyDBClusterSnapshotAttributeResponse)++-- | The response's http status code.+modifyDBClusterSnapshotAttributeResponse_httpStatus :: Lens.Lens' ModifyDBClusterSnapshotAttributeResponse Prelude.Int+modifyDBClusterSnapshotAttributeResponse_httpStatus = Lens.lens (\ModifyDBClusterSnapshotAttributeResponse' {httpStatus} -> httpStatus) (\s@ModifyDBClusterSnapshotAttributeResponse' {} a -> s {httpStatus = a} :: ModifyDBClusterSnapshotAttributeResponse)++instance+  Prelude.NFData+    ModifyDBClusterSnapshotAttributeResponse+  where+  rnf ModifyDBClusterSnapshotAttributeResponse' {..} =+    Prelude.rnf dbClusterSnapshotAttributesResult+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/ModifyDBInstance.hs view
@@ -0,0 +1,505 @@+{-# 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.DocumentDB.ModifyDBInstance+-- 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 settings for an instance. You can change one or more database+-- configuration parameters by specifying these parameters and the new+-- values in the request.+module Amazonka.DocumentDB.ModifyDBInstance+  ( -- * Creating a Request+    ModifyDBInstance (..),+    newModifyDBInstance,++    -- * Request Lenses+    modifyDBInstance_applyImmediately,+    modifyDBInstance_autoMinorVersionUpgrade,+    modifyDBInstance_cACertificateIdentifier,+    modifyDBInstance_copyTagsToSnapshot,+    modifyDBInstance_dbInstanceClass,+    modifyDBInstance_enablePerformanceInsights,+    modifyDBInstance_newDBInstanceIdentifier,+    modifyDBInstance_performanceInsightsKMSKeyId,+    modifyDBInstance_preferredMaintenanceWindow,+    modifyDBInstance_promotionTier,+    modifyDBInstance_dbInstanceIdentifier,++    -- * Destructuring the Response+    ModifyDBInstanceResponse (..),+    newModifyDBInstanceResponse,++    -- * Response Lenses+    modifyDBInstanceResponse_dbInstance,+    modifyDBInstanceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to ModifyDBInstance.+--+-- /See:/ 'newModifyDBInstance' smart constructor.+data ModifyDBInstance = ModifyDBInstance'+  { -- | Specifies whether the modifications in this request and any pending+    -- modifications are asynchronously applied as soon as possible, regardless+    -- of the @PreferredMaintenanceWindow@ setting for the instance.+    --+    -- If this parameter is set to @false@, changes to the instance are applied+    -- during the next maintenance window. Some parameter changes can cause an+    -- outage and are applied on the next reboot.+    --+    -- Default: @false@+    applyImmediately :: Prelude.Maybe Prelude.Bool,+    -- | This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB+    -- does not perform minor version upgrades regardless of the value set.+    autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,+    -- | Indicates the certificate that needs to be associated with the instance.+    cACertificateIdentifier :: Prelude.Maybe Prelude.Text,+    -- | A value that indicates whether to copy all tags from the DB instance to+    -- snapshots of the DB instance. By default, tags are not copied.+    copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,+    -- | The new compute and memory capacity of the instance; for example,+    -- @db.r5.large@. Not all instance classes are available in all Amazon Web+    -- Services Regions.+    --+    -- If you modify the instance class, an outage occurs during the change.+    -- The change is applied during the next maintenance window, unless+    -- @ApplyImmediately@ is specified as @true@ for this request.+    --+    -- Default: Uses existing setting.+    dbInstanceClass :: Prelude.Maybe Prelude.Text,+    -- | A value that indicates whether to enable Performance Insights for the DB+    -- Instance. For more information, see+    -- <https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html Using Amazon Performance Insights>.+    enablePerformanceInsights :: Prelude.Maybe Prelude.Bool,+    -- | The new instance identifier for the instance when renaming an instance.+    -- When you change the instance identifier, an instance reboot occurs+    -- immediately if you set @Apply Immediately@ to @true@. It occurs during+    -- the next maintenance window if you set @Apply Immediately@ to @false@.+    -- This value is stored as a lowercase string.+    --+    -- Constraints:+    --+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens.+    --+    -- -   The first character must be a letter.+    --+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.+    --+    -- Example: @mydbinstance@+    newDBInstanceIdentifier' :: Prelude.Maybe Prelude.Text,+    -- | The KMS key identifier for encryption of Performance Insights data.+    --+    -- The KMS key identifier is the key ARN, key ID, alias ARN, or alias name+    -- for the KMS key.+    --+    -- If you do not specify a value for PerformanceInsightsKMSKeyId, then+    -- Amazon DocumentDB uses your default KMS key. There is a default KMS key+    -- for your Amazon Web Services account. Your Amazon Web Services account+    -- has a different default KMS key for each Amazon Web Services region.+    performanceInsightsKMSKeyId :: Prelude.Maybe Prelude.Text,+    -- | The weekly time range (in UTC) during which system maintenance can+    -- occur, which might result in an outage. Changing this parameter doesn\'t+    -- result in an outage except in the following situation, and the change is+    -- asynchronously applied as soon as possible. If there are pending actions+    -- that cause a reboot, and the maintenance window is changed to include+    -- the current time, changing this parameter causes a reboot of the+    -- instance. If you are moving this window to the current time, there must+    -- be at least 30 minutes between the current time and end of the window to+    -- ensure that pending changes are applied.+    --+    -- Default: Uses existing setting.+    --+    -- Format: @ddd:hh24:mi-ddd:hh24:mi@+    --+    -- Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun+    --+    -- Constraints: Must be at least 30 minutes.+    preferredMaintenanceWindow :: Prelude.Maybe Prelude.Text,+    -- | A value that specifies the order in which an Amazon DocumentDB replica+    -- is promoted to the primary instance after a failure of the existing+    -- primary instance.+    --+    -- Default: 1+    --+    -- Valid values: 0-15+    promotionTier :: Prelude.Maybe Prelude.Int,+    -- | The instance identifier. This value is stored as a lowercase string.+    --+    -- Constraints:+    --+    -- -   Must match the identifier of an existing @DBInstance@.+    dbInstanceIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModifyDBInstance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applyImmediately', 'modifyDBInstance_applyImmediately' - Specifies whether the modifications in this request and any pending+-- modifications are asynchronously applied as soon as possible, regardless+-- of the @PreferredMaintenanceWindow@ setting for the instance.+--+-- If this parameter is set to @false@, changes to the instance are applied+-- during the next maintenance window. Some parameter changes can cause an+-- outage and are applied on the next reboot.+--+-- Default: @false@+--+-- 'autoMinorVersionUpgrade', 'modifyDBInstance_autoMinorVersionUpgrade' - This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB+-- does not perform minor version upgrades regardless of the value set.+--+-- 'cACertificateIdentifier', 'modifyDBInstance_cACertificateIdentifier' - Indicates the certificate that needs to be associated with the instance.+--+-- 'copyTagsToSnapshot', 'modifyDBInstance_copyTagsToSnapshot' - A value that indicates whether to copy all tags from the DB instance to+-- snapshots of the DB instance. By default, tags are not copied.+--+-- 'dbInstanceClass', 'modifyDBInstance_dbInstanceClass' - The new compute and memory capacity of the instance; for example,+-- @db.r5.large@. Not all instance classes are available in all Amazon Web+-- Services Regions.+--+-- If you modify the instance class, an outage occurs during the change.+-- The change is applied during the next maintenance window, unless+-- @ApplyImmediately@ is specified as @true@ for this request.+--+-- Default: Uses existing setting.+--+-- 'enablePerformanceInsights', 'modifyDBInstance_enablePerformanceInsights' - A value that indicates whether to enable Performance Insights for the DB+-- Instance. For more information, see+-- <https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html Using Amazon Performance Insights>.+--+-- 'newDBInstanceIdentifier'', 'modifyDBInstance_newDBInstanceIdentifier' - The new instance identifier for the instance when renaming an instance.+-- When you change the instance identifier, an instance reboot occurs+-- immediately if you set @Apply Immediately@ to @true@. It occurs during+-- the next maintenance window if you set @Apply Immediately@ to @false@.+-- This value is stored as a lowercase string.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @mydbinstance@+--+-- 'performanceInsightsKMSKeyId', 'modifyDBInstance_performanceInsightsKMSKeyId' - The KMS key identifier for encryption of Performance Insights data.+--+-- The KMS key identifier is the key ARN, key ID, alias ARN, or alias name+-- for the KMS key.+--+-- If you do not specify a value for PerformanceInsightsKMSKeyId, then+-- Amazon DocumentDB uses your default KMS key. There is a default KMS key+-- for your Amazon Web Services account. Your Amazon Web Services account+-- has a different default KMS key for each Amazon Web Services region.+--+-- 'preferredMaintenanceWindow', 'modifyDBInstance_preferredMaintenanceWindow' - The weekly time range (in UTC) during which system maintenance can+-- occur, which might result in an outage. Changing this parameter doesn\'t+-- result in an outage except in the following situation, and the change is+-- asynchronously applied as soon as possible. If there are pending actions+-- that cause a reboot, and the maintenance window is changed to include+-- the current time, changing this parameter causes a reboot of the+-- instance. If you are moving this window to the current time, there must+-- be at least 30 minutes between the current time and end of the window to+-- ensure that pending changes are applied.+--+-- Default: Uses existing setting.+--+-- Format: @ddd:hh24:mi-ddd:hh24:mi@+--+-- Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun+--+-- Constraints: Must be at least 30 minutes.+--+-- 'promotionTier', 'modifyDBInstance_promotionTier' - A value that specifies the order in which an Amazon DocumentDB replica+-- is promoted to the primary instance after a failure of the existing+-- primary instance.+--+-- Default: 1+--+-- Valid values: 0-15+--+-- 'dbInstanceIdentifier', 'modifyDBInstance_dbInstanceIdentifier' - The instance identifier. This value is stored as a lowercase string.+--+-- Constraints:+--+-- -   Must match the identifier of an existing @DBInstance@.+newModifyDBInstance ::+  -- | 'dbInstanceIdentifier'+  Prelude.Text ->+  ModifyDBInstance+newModifyDBInstance pDBInstanceIdentifier_ =+  ModifyDBInstance'+    { applyImmediately =+        Prelude.Nothing,+      autoMinorVersionUpgrade = Prelude.Nothing,+      cACertificateIdentifier = Prelude.Nothing,+      copyTagsToSnapshot = Prelude.Nothing,+      dbInstanceClass = Prelude.Nothing,+      enablePerformanceInsights = Prelude.Nothing,+      newDBInstanceIdentifier' = Prelude.Nothing,+      performanceInsightsKMSKeyId = Prelude.Nothing,+      preferredMaintenanceWindow = Prelude.Nothing,+      promotionTier = Prelude.Nothing,+      dbInstanceIdentifier = pDBInstanceIdentifier_+    }++-- | Specifies whether the modifications in this request and any pending+-- modifications are asynchronously applied as soon as possible, regardless+-- of the @PreferredMaintenanceWindow@ setting for the instance.+--+-- If this parameter is set to @false@, changes to the instance are applied+-- during the next maintenance window. Some parameter changes can cause an+-- outage and are applied on the next reboot.+--+-- Default: @false@+modifyDBInstance_applyImmediately :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)+modifyDBInstance_applyImmediately = Lens.lens (\ModifyDBInstance' {applyImmediately} -> applyImmediately) (\s@ModifyDBInstance' {} a -> s {applyImmediately = a} :: ModifyDBInstance)++-- | This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB+-- does not perform minor version upgrades regardless of the value set.+modifyDBInstance_autoMinorVersionUpgrade :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)+modifyDBInstance_autoMinorVersionUpgrade = Lens.lens (\ModifyDBInstance' {autoMinorVersionUpgrade} -> autoMinorVersionUpgrade) (\s@ModifyDBInstance' {} a -> s {autoMinorVersionUpgrade = a} :: ModifyDBInstance)++-- | Indicates the certificate that needs to be associated with the instance.+modifyDBInstance_cACertificateIdentifier :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)+modifyDBInstance_cACertificateIdentifier = Lens.lens (\ModifyDBInstance' {cACertificateIdentifier} -> cACertificateIdentifier) (\s@ModifyDBInstance' {} a -> s {cACertificateIdentifier = a} :: ModifyDBInstance)++-- | A value that indicates whether to copy all tags from the DB instance to+-- snapshots of the DB instance. By default, tags are not copied.+modifyDBInstance_copyTagsToSnapshot :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)+modifyDBInstance_copyTagsToSnapshot = Lens.lens (\ModifyDBInstance' {copyTagsToSnapshot} -> copyTagsToSnapshot) (\s@ModifyDBInstance' {} a -> s {copyTagsToSnapshot = a} :: ModifyDBInstance)++-- | The new compute and memory capacity of the instance; for example,+-- @db.r5.large@. Not all instance classes are available in all Amazon Web+-- Services Regions.+--+-- If you modify the instance class, an outage occurs during the change.+-- The change is applied during the next maintenance window, unless+-- @ApplyImmediately@ is specified as @true@ for this request.+--+-- Default: Uses existing setting.+modifyDBInstance_dbInstanceClass :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)+modifyDBInstance_dbInstanceClass = Lens.lens (\ModifyDBInstance' {dbInstanceClass} -> dbInstanceClass) (\s@ModifyDBInstance' {} a -> s {dbInstanceClass = a} :: ModifyDBInstance)++-- | A value that indicates whether to enable Performance Insights for the DB+-- Instance. For more information, see+-- <https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html Using Amazon Performance Insights>.+modifyDBInstance_enablePerformanceInsights :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)+modifyDBInstance_enablePerformanceInsights = Lens.lens (\ModifyDBInstance' {enablePerformanceInsights} -> enablePerformanceInsights) (\s@ModifyDBInstance' {} a -> s {enablePerformanceInsights = a} :: ModifyDBInstance)++-- | The new instance identifier for the instance when renaming an instance.+-- When you change the instance identifier, an instance reboot occurs+-- immediately if you set @Apply Immediately@ to @true@. It occurs during+-- the next maintenance window if you set @Apply Immediately@ to @false@.+-- This value is stored as a lowercase string.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @mydbinstance@+modifyDBInstance_newDBInstanceIdentifier :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)+modifyDBInstance_newDBInstanceIdentifier = Lens.lens (\ModifyDBInstance' {newDBInstanceIdentifier'} -> newDBInstanceIdentifier') (\s@ModifyDBInstance' {} a -> s {newDBInstanceIdentifier' = a} :: ModifyDBInstance)++-- | The KMS key identifier for encryption of Performance Insights data.+--+-- The KMS key identifier is the key ARN, key ID, alias ARN, or alias name+-- for the KMS key.+--+-- If you do not specify a value for PerformanceInsightsKMSKeyId, then+-- Amazon DocumentDB uses your default KMS key. There is a default KMS key+-- for your Amazon Web Services account. Your Amazon Web Services account+-- has a different default KMS key for each Amazon Web Services region.+modifyDBInstance_performanceInsightsKMSKeyId :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)+modifyDBInstance_performanceInsightsKMSKeyId = Lens.lens (\ModifyDBInstance' {performanceInsightsKMSKeyId} -> performanceInsightsKMSKeyId) (\s@ModifyDBInstance' {} a -> s {performanceInsightsKMSKeyId = a} :: ModifyDBInstance)++-- | The weekly time range (in UTC) during which system maintenance can+-- occur, which might result in an outage. Changing this parameter doesn\'t+-- result in an outage except in the following situation, and the change is+-- asynchronously applied as soon as possible. If there are pending actions+-- that cause a reboot, and the maintenance window is changed to include+-- the current time, changing this parameter causes a reboot of the+-- instance. If you are moving this window to the current time, there must+-- be at least 30 minutes between the current time and end of the window to+-- ensure that pending changes are applied.+--+-- Default: Uses existing setting.+--+-- Format: @ddd:hh24:mi-ddd:hh24:mi@+--+-- Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun+--+-- Constraints: Must be at least 30 minutes.+modifyDBInstance_preferredMaintenanceWindow :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)+modifyDBInstance_preferredMaintenanceWindow = Lens.lens (\ModifyDBInstance' {preferredMaintenanceWindow} -> preferredMaintenanceWindow) (\s@ModifyDBInstance' {} a -> s {preferredMaintenanceWindow = a} :: ModifyDBInstance)++-- | A value that specifies the order in which an Amazon DocumentDB replica+-- is promoted to the primary instance after a failure of the existing+-- primary instance.+--+-- Default: 1+--+-- Valid values: 0-15+modifyDBInstance_promotionTier :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)+modifyDBInstance_promotionTier = Lens.lens (\ModifyDBInstance' {promotionTier} -> promotionTier) (\s@ModifyDBInstance' {} a -> s {promotionTier = a} :: ModifyDBInstance)++-- | The instance identifier. This value is stored as a lowercase string.+--+-- Constraints:+--+-- -   Must match the identifier of an existing @DBInstance@.+modifyDBInstance_dbInstanceIdentifier :: Lens.Lens' ModifyDBInstance Prelude.Text+modifyDBInstance_dbInstanceIdentifier = Lens.lens (\ModifyDBInstance' {dbInstanceIdentifier} -> dbInstanceIdentifier) (\s@ModifyDBInstance' {} a -> s {dbInstanceIdentifier = a} :: ModifyDBInstance)++instance Core.AWSRequest ModifyDBInstance where+  type+    AWSResponse ModifyDBInstance =+      ModifyDBInstanceResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "ModifyDBInstanceResult"+      ( \s h x ->+          ModifyDBInstanceResponse'+            Prelude.<$> (x Data..@? "DBInstance")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ModifyDBInstance where+  hashWithSalt _salt ModifyDBInstance' {..} =+    _salt+      `Prelude.hashWithSalt` applyImmediately+      `Prelude.hashWithSalt` autoMinorVersionUpgrade+      `Prelude.hashWithSalt` cACertificateIdentifier+      `Prelude.hashWithSalt` copyTagsToSnapshot+      `Prelude.hashWithSalt` dbInstanceClass+      `Prelude.hashWithSalt` enablePerformanceInsights+      `Prelude.hashWithSalt` newDBInstanceIdentifier'+      `Prelude.hashWithSalt` performanceInsightsKMSKeyId+      `Prelude.hashWithSalt` preferredMaintenanceWindow+      `Prelude.hashWithSalt` promotionTier+      `Prelude.hashWithSalt` dbInstanceIdentifier++instance Prelude.NFData ModifyDBInstance where+  rnf ModifyDBInstance' {..} =+    Prelude.rnf applyImmediately+      `Prelude.seq` Prelude.rnf autoMinorVersionUpgrade+      `Prelude.seq` Prelude.rnf cACertificateIdentifier+      `Prelude.seq` Prelude.rnf copyTagsToSnapshot+      `Prelude.seq` Prelude.rnf dbInstanceClass+      `Prelude.seq` Prelude.rnf enablePerformanceInsights+      `Prelude.seq` Prelude.rnf newDBInstanceIdentifier'+      `Prelude.seq` Prelude.rnf performanceInsightsKMSKeyId+      `Prelude.seq` Prelude.rnf preferredMaintenanceWindow+      `Prelude.seq` Prelude.rnf promotionTier+      `Prelude.seq` Prelude.rnf dbInstanceIdentifier++instance Data.ToHeaders ModifyDBInstance where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ModifyDBInstance where+  toPath = Prelude.const "/"++instance Data.ToQuery ModifyDBInstance where+  toQuery ModifyDBInstance' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("ModifyDBInstance" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "ApplyImmediately" Data.=: applyImmediately,+        "AutoMinorVersionUpgrade"+          Data.=: autoMinorVersionUpgrade,+        "CACertificateIdentifier"+          Data.=: cACertificateIdentifier,+        "CopyTagsToSnapshot" Data.=: copyTagsToSnapshot,+        "DBInstanceClass" Data.=: dbInstanceClass,+        "EnablePerformanceInsights"+          Data.=: enablePerformanceInsights,+        "NewDBInstanceIdentifier"+          Data.=: newDBInstanceIdentifier',+        "PerformanceInsightsKMSKeyId"+          Data.=: performanceInsightsKMSKeyId,+        "PreferredMaintenanceWindow"+          Data.=: preferredMaintenanceWindow,+        "PromotionTier" Data.=: promotionTier,+        "DBInstanceIdentifier" Data.=: dbInstanceIdentifier+      ]++-- | /See:/ 'newModifyDBInstanceResponse' smart constructor.+data ModifyDBInstanceResponse = ModifyDBInstanceResponse'+  { dbInstance :: Prelude.Maybe DBInstance,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModifyDBInstanceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbInstance', 'modifyDBInstanceResponse_dbInstance' - Undocumented member.+--+-- 'httpStatus', 'modifyDBInstanceResponse_httpStatus' - The response's http status code.+newModifyDBInstanceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ModifyDBInstanceResponse+newModifyDBInstanceResponse pHttpStatus_ =+  ModifyDBInstanceResponse'+    { dbInstance =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+modifyDBInstanceResponse_dbInstance :: Lens.Lens' ModifyDBInstanceResponse (Prelude.Maybe DBInstance)+modifyDBInstanceResponse_dbInstance = Lens.lens (\ModifyDBInstanceResponse' {dbInstance} -> dbInstance) (\s@ModifyDBInstanceResponse' {} a -> s {dbInstance = a} :: ModifyDBInstanceResponse)++-- | The response's http status code.+modifyDBInstanceResponse_httpStatus :: Lens.Lens' ModifyDBInstanceResponse Prelude.Int+modifyDBInstanceResponse_httpStatus = Lens.lens (\ModifyDBInstanceResponse' {httpStatus} -> httpStatus) (\s@ModifyDBInstanceResponse' {} a -> s {httpStatus = a} :: ModifyDBInstanceResponse)++instance Prelude.NFData ModifyDBInstanceResponse where+  rnf ModifyDBInstanceResponse' {..} =+    Prelude.rnf dbInstance+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/ModifyDBSubnetGroup.hs view
@@ -0,0 +1,211 @@+{-# 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.DocumentDB.ModifyDBSubnetGroup+-- 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 an existing subnet group. subnet groups must contain at least+-- one subnet in at least two Availability Zones in the Amazon Web Services+-- Region.+module Amazonka.DocumentDB.ModifyDBSubnetGroup+  ( -- * Creating a Request+    ModifyDBSubnetGroup (..),+    newModifyDBSubnetGroup,++    -- * Request Lenses+    modifyDBSubnetGroup_dbSubnetGroupDescription,+    modifyDBSubnetGroup_dbSubnetGroupName,+    modifyDBSubnetGroup_subnetIds,++    -- * Destructuring the Response+    ModifyDBSubnetGroupResponse (..),+    newModifyDBSubnetGroupResponse,++    -- * Response Lenses+    modifyDBSubnetGroupResponse_dbSubnetGroup,+    modifyDBSubnetGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to ModifyDBSubnetGroup.+--+-- /See:/ 'newModifyDBSubnetGroup' smart constructor.+data ModifyDBSubnetGroup = ModifyDBSubnetGroup'+  { -- | The description for the subnet group.+    dbSubnetGroupDescription :: Prelude.Maybe Prelude.Text,+    -- | The name for the subnet group. This value is stored as a lowercase+    -- string. You can\'t modify the default subnet group.+    --+    -- Constraints: Must match the name of an existing @DBSubnetGroup@. Must+    -- not be default.+    --+    -- Example: @mySubnetgroup@+    dbSubnetGroupName :: Prelude.Text,+    -- | The Amazon EC2 subnet IDs for the subnet group.+    subnetIds :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModifyDBSubnetGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbSubnetGroupDescription', 'modifyDBSubnetGroup_dbSubnetGroupDescription' - The description for the subnet group.+--+-- 'dbSubnetGroupName', 'modifyDBSubnetGroup_dbSubnetGroupName' - The name for the subnet group. This value is stored as a lowercase+-- string. You can\'t modify the default subnet group.+--+-- Constraints: Must match the name of an existing @DBSubnetGroup@. Must+-- not be default.+--+-- Example: @mySubnetgroup@+--+-- 'subnetIds', 'modifyDBSubnetGroup_subnetIds' - The Amazon EC2 subnet IDs for the subnet group.+newModifyDBSubnetGroup ::+  -- | 'dbSubnetGroupName'+  Prelude.Text ->+  ModifyDBSubnetGroup+newModifyDBSubnetGroup pDBSubnetGroupName_ =+  ModifyDBSubnetGroup'+    { dbSubnetGroupDescription =+        Prelude.Nothing,+      dbSubnetGroupName = pDBSubnetGroupName_,+      subnetIds = Prelude.mempty+    }++-- | The description for the subnet group.+modifyDBSubnetGroup_dbSubnetGroupDescription :: Lens.Lens' ModifyDBSubnetGroup (Prelude.Maybe Prelude.Text)+modifyDBSubnetGroup_dbSubnetGroupDescription = Lens.lens (\ModifyDBSubnetGroup' {dbSubnetGroupDescription} -> dbSubnetGroupDescription) (\s@ModifyDBSubnetGroup' {} a -> s {dbSubnetGroupDescription = a} :: ModifyDBSubnetGroup)++-- | The name for the subnet group. This value is stored as a lowercase+-- string. You can\'t modify the default subnet group.+--+-- Constraints: Must match the name of an existing @DBSubnetGroup@. Must+-- not be default.+--+-- Example: @mySubnetgroup@+modifyDBSubnetGroup_dbSubnetGroupName :: Lens.Lens' ModifyDBSubnetGroup Prelude.Text+modifyDBSubnetGroup_dbSubnetGroupName = Lens.lens (\ModifyDBSubnetGroup' {dbSubnetGroupName} -> dbSubnetGroupName) (\s@ModifyDBSubnetGroup' {} a -> s {dbSubnetGroupName = a} :: ModifyDBSubnetGroup)++-- | The Amazon EC2 subnet IDs for the subnet group.+modifyDBSubnetGroup_subnetIds :: Lens.Lens' ModifyDBSubnetGroup [Prelude.Text]+modifyDBSubnetGroup_subnetIds = Lens.lens (\ModifyDBSubnetGroup' {subnetIds} -> subnetIds) (\s@ModifyDBSubnetGroup' {} a -> s {subnetIds = a} :: ModifyDBSubnetGroup) Prelude.. Lens.coerced++instance Core.AWSRequest ModifyDBSubnetGroup where+  type+    AWSResponse ModifyDBSubnetGroup =+      ModifyDBSubnetGroupResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "ModifyDBSubnetGroupResult"+      ( \s h x ->+          ModifyDBSubnetGroupResponse'+            Prelude.<$> (x Data..@? "DBSubnetGroup")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ModifyDBSubnetGroup where+  hashWithSalt _salt ModifyDBSubnetGroup' {..} =+    _salt+      `Prelude.hashWithSalt` dbSubnetGroupDescription+      `Prelude.hashWithSalt` dbSubnetGroupName+      `Prelude.hashWithSalt` subnetIds++instance Prelude.NFData ModifyDBSubnetGroup where+  rnf ModifyDBSubnetGroup' {..} =+    Prelude.rnf dbSubnetGroupDescription+      `Prelude.seq` Prelude.rnf dbSubnetGroupName+      `Prelude.seq` Prelude.rnf subnetIds++instance Data.ToHeaders ModifyDBSubnetGroup where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ModifyDBSubnetGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery ModifyDBSubnetGroup where+  toQuery ModifyDBSubnetGroup' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("ModifyDBSubnetGroup" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBSubnetGroupDescription"+          Data.=: dbSubnetGroupDescription,+        "DBSubnetGroupName" Data.=: dbSubnetGroupName,+        "SubnetIds"+          Data.=: Data.toQueryList "SubnetIdentifier" subnetIds+      ]++-- | /See:/ 'newModifyDBSubnetGroupResponse' smart constructor.+data ModifyDBSubnetGroupResponse = ModifyDBSubnetGroupResponse'+  { dbSubnetGroup :: Prelude.Maybe DBSubnetGroup,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModifyDBSubnetGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbSubnetGroup', 'modifyDBSubnetGroupResponse_dbSubnetGroup' - Undocumented member.+--+-- 'httpStatus', 'modifyDBSubnetGroupResponse_httpStatus' - The response's http status code.+newModifyDBSubnetGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ModifyDBSubnetGroupResponse+newModifyDBSubnetGroupResponse pHttpStatus_ =+  ModifyDBSubnetGroupResponse'+    { dbSubnetGroup =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+modifyDBSubnetGroupResponse_dbSubnetGroup :: Lens.Lens' ModifyDBSubnetGroupResponse (Prelude.Maybe DBSubnetGroup)+modifyDBSubnetGroupResponse_dbSubnetGroup = Lens.lens (\ModifyDBSubnetGroupResponse' {dbSubnetGroup} -> dbSubnetGroup) (\s@ModifyDBSubnetGroupResponse' {} a -> s {dbSubnetGroup = a} :: ModifyDBSubnetGroupResponse)++-- | The response's http status code.+modifyDBSubnetGroupResponse_httpStatus :: Lens.Lens' ModifyDBSubnetGroupResponse Prelude.Int+modifyDBSubnetGroupResponse_httpStatus = Lens.lens (\ModifyDBSubnetGroupResponse' {httpStatus} -> httpStatus) (\s@ModifyDBSubnetGroupResponse' {} a -> s {httpStatus = a} :: ModifyDBSubnetGroupResponse)++instance Prelude.NFData ModifyDBSubnetGroupResponse where+  rnf ModifyDBSubnetGroupResponse' {..} =+    Prelude.rnf dbSubnetGroup+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/ModifyEventSubscription.hs view
@@ -0,0 +1,245 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.ModifyEventSubscription+-- 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 an existing Amazon DocumentDB event notification subscription.+module Amazonka.DocumentDB.ModifyEventSubscription+  ( -- * Creating a Request+    ModifyEventSubscription (..),+    newModifyEventSubscription,++    -- * Request Lenses+    modifyEventSubscription_enabled,+    modifyEventSubscription_eventCategories,+    modifyEventSubscription_snsTopicArn,+    modifyEventSubscription_sourceType,+    modifyEventSubscription_subscriptionName,++    -- * Destructuring the Response+    ModifyEventSubscriptionResponse (..),+    newModifyEventSubscriptionResponse,++    -- * Response Lenses+    modifyEventSubscriptionResponse_eventSubscription,+    modifyEventSubscriptionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to ModifyEventSubscription.+--+-- /See:/ 'newModifyEventSubscription' smart constructor.+data ModifyEventSubscription = ModifyEventSubscription'+  { -- | A Boolean value; set to @true@ to activate the subscription.+    enabled :: Prelude.Maybe Prelude.Bool,+    -- | A list of event categories for a @SourceType@ that you want to subscribe+    -- to.+    eventCategories :: Prelude.Maybe [Prelude.Text],+    -- | The Amazon Resource Name (ARN) of the SNS topic created for event+    -- notification. The ARN is created by Amazon SNS when you create a topic+    -- and subscribe to it.+    snsTopicArn :: Prelude.Maybe Prelude.Text,+    -- | The type of source that is generating the events. For example, if you+    -- want to be notified of events generated by an instance, set this+    -- parameter to @db-instance@. If this value is not specified, all events+    -- are returned.+    --+    -- Valid values: @db-instance@, @db-parameter-group@, @db-security-group@+    sourceType :: Prelude.Maybe Prelude.Text,+    -- | The name of the Amazon DocumentDB event notification subscription.+    subscriptionName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModifyEventSubscription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'enabled', 'modifyEventSubscription_enabled' - A Boolean value; set to @true@ to activate the subscription.+--+-- 'eventCategories', 'modifyEventSubscription_eventCategories' - A list of event categories for a @SourceType@ that you want to subscribe+-- to.+--+-- 'snsTopicArn', 'modifyEventSubscription_snsTopicArn' - The Amazon Resource Name (ARN) of the SNS topic created for event+-- notification. The ARN is created by Amazon SNS when you create a topic+-- and subscribe to it.+--+-- 'sourceType', 'modifyEventSubscription_sourceType' - The type of source that is generating the events. For example, if you+-- want to be notified of events generated by an instance, set this+-- parameter to @db-instance@. If this value is not specified, all events+-- are returned.+--+-- Valid values: @db-instance@, @db-parameter-group@, @db-security-group@+--+-- 'subscriptionName', 'modifyEventSubscription_subscriptionName' - The name of the Amazon DocumentDB event notification subscription.+newModifyEventSubscription ::+  -- | 'subscriptionName'+  Prelude.Text ->+  ModifyEventSubscription+newModifyEventSubscription pSubscriptionName_ =+  ModifyEventSubscription'+    { enabled = Prelude.Nothing,+      eventCategories = Prelude.Nothing,+      snsTopicArn = Prelude.Nothing,+      sourceType = Prelude.Nothing,+      subscriptionName = pSubscriptionName_+    }++-- | A Boolean value; set to @true@ to activate the subscription.+modifyEventSubscription_enabled :: Lens.Lens' ModifyEventSubscription (Prelude.Maybe Prelude.Bool)+modifyEventSubscription_enabled = Lens.lens (\ModifyEventSubscription' {enabled} -> enabled) (\s@ModifyEventSubscription' {} a -> s {enabled = a} :: ModifyEventSubscription)++-- | A list of event categories for a @SourceType@ that you want to subscribe+-- to.+modifyEventSubscription_eventCategories :: Lens.Lens' ModifyEventSubscription (Prelude.Maybe [Prelude.Text])+modifyEventSubscription_eventCategories = Lens.lens (\ModifyEventSubscription' {eventCategories} -> eventCategories) (\s@ModifyEventSubscription' {} a -> s {eventCategories = a} :: ModifyEventSubscription) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the SNS topic created for event+-- notification. The ARN is created by Amazon SNS when you create a topic+-- and subscribe to it.+modifyEventSubscription_snsTopicArn :: Lens.Lens' ModifyEventSubscription (Prelude.Maybe Prelude.Text)+modifyEventSubscription_snsTopicArn = Lens.lens (\ModifyEventSubscription' {snsTopicArn} -> snsTopicArn) (\s@ModifyEventSubscription' {} a -> s {snsTopicArn = a} :: ModifyEventSubscription)++-- | The type of source that is generating the events. For example, if you+-- want to be notified of events generated by an instance, set this+-- parameter to @db-instance@. If this value is not specified, all events+-- are returned.+--+-- Valid values: @db-instance@, @db-parameter-group@, @db-security-group@+modifyEventSubscription_sourceType :: Lens.Lens' ModifyEventSubscription (Prelude.Maybe Prelude.Text)+modifyEventSubscription_sourceType = Lens.lens (\ModifyEventSubscription' {sourceType} -> sourceType) (\s@ModifyEventSubscription' {} a -> s {sourceType = a} :: ModifyEventSubscription)++-- | The name of the Amazon DocumentDB event notification subscription.+modifyEventSubscription_subscriptionName :: Lens.Lens' ModifyEventSubscription Prelude.Text+modifyEventSubscription_subscriptionName = Lens.lens (\ModifyEventSubscription' {subscriptionName} -> subscriptionName) (\s@ModifyEventSubscription' {} a -> s {subscriptionName = a} :: ModifyEventSubscription)++instance Core.AWSRequest ModifyEventSubscription where+  type+    AWSResponse ModifyEventSubscription =+      ModifyEventSubscriptionResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "ModifyEventSubscriptionResult"+      ( \s h x ->+          ModifyEventSubscriptionResponse'+            Prelude.<$> (x Data..@? "EventSubscription")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ModifyEventSubscription where+  hashWithSalt _salt ModifyEventSubscription' {..} =+    _salt+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` eventCategories+      `Prelude.hashWithSalt` snsTopicArn+      `Prelude.hashWithSalt` sourceType+      `Prelude.hashWithSalt` subscriptionName++instance Prelude.NFData ModifyEventSubscription where+  rnf ModifyEventSubscription' {..} =+    Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf eventCategories+      `Prelude.seq` Prelude.rnf snsTopicArn+      `Prelude.seq` Prelude.rnf sourceType+      `Prelude.seq` Prelude.rnf subscriptionName++instance Data.ToHeaders ModifyEventSubscription where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ModifyEventSubscription where+  toPath = Prelude.const "/"++instance Data.ToQuery ModifyEventSubscription where+  toQuery ModifyEventSubscription' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("ModifyEventSubscription" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Enabled" Data.=: enabled,+        "EventCategories"+          Data.=: Data.toQuery+            ( Data.toQueryList "EventCategory"+                Prelude.<$> eventCategories+            ),+        "SnsTopicArn" Data.=: snsTopicArn,+        "SourceType" Data.=: sourceType,+        "SubscriptionName" Data.=: subscriptionName+      ]++-- | /See:/ 'newModifyEventSubscriptionResponse' smart constructor.+data ModifyEventSubscriptionResponse = ModifyEventSubscriptionResponse'+  { eventSubscription :: Prelude.Maybe EventSubscription,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModifyEventSubscriptionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventSubscription', 'modifyEventSubscriptionResponse_eventSubscription' - Undocumented member.+--+-- 'httpStatus', 'modifyEventSubscriptionResponse_httpStatus' - The response's http status code.+newModifyEventSubscriptionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ModifyEventSubscriptionResponse+newModifyEventSubscriptionResponse pHttpStatus_ =+  ModifyEventSubscriptionResponse'+    { eventSubscription =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+modifyEventSubscriptionResponse_eventSubscription :: Lens.Lens' ModifyEventSubscriptionResponse (Prelude.Maybe EventSubscription)+modifyEventSubscriptionResponse_eventSubscription = Lens.lens (\ModifyEventSubscriptionResponse' {eventSubscription} -> eventSubscription) (\s@ModifyEventSubscriptionResponse' {} a -> s {eventSubscription = a} :: ModifyEventSubscriptionResponse)++-- | The response's http status code.+modifyEventSubscriptionResponse_httpStatus :: Lens.Lens' ModifyEventSubscriptionResponse Prelude.Int+modifyEventSubscriptionResponse_httpStatus = Lens.lens (\ModifyEventSubscriptionResponse' {httpStatus} -> httpStatus) (\s@ModifyEventSubscriptionResponse' {} a -> s {httpStatus = a} :: ModifyEventSubscriptionResponse)++instance+  Prelude.NFData+    ModifyEventSubscriptionResponse+  where+  rnf ModifyEventSubscriptionResponse' {..} =+    Prelude.rnf eventSubscription+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/ModifyGlobalCluster.hs view
@@ -0,0 +1,241 @@+{-# 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.DocumentDB.ModifyGlobalCluster+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modify a setting for an Amazon DocumentDB global cluster. You can change+-- one or more configuration parameters (for example: deletion protection),+-- or the global cluster identifier by specifying these parameters and the+-- new values in the request.+--+-- This action only applies to Amazon DocumentDB clusters.+module Amazonka.DocumentDB.ModifyGlobalCluster+  ( -- * Creating a Request+    ModifyGlobalCluster (..),+    newModifyGlobalCluster,++    -- * Request Lenses+    modifyGlobalCluster_deletionProtection,+    modifyGlobalCluster_newGlobalClusterIdentifier,+    modifyGlobalCluster_globalClusterIdentifier,++    -- * Destructuring the Response+    ModifyGlobalClusterResponse (..),+    newModifyGlobalClusterResponse,++    -- * Response Lenses+    modifyGlobalClusterResponse_globalCluster,+    modifyGlobalClusterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to ModifyGlobalCluster.+--+-- /See:/ 'newModifyGlobalCluster' smart constructor.+data ModifyGlobalCluster = ModifyGlobalCluster'+  { -- | Indicates if the global cluster has deletion protection enabled. The+    -- global cluster can\'t be deleted when deletion protection is enabled.+    deletionProtection :: Prelude.Maybe Prelude.Bool,+    -- | The new identifier for a global cluster when you modify a global+    -- cluster. This value is stored as a lowercase string.+    --+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens+    --+    --     The first character must be a letter+    --+    --     Can\'t end with a hyphen or contain two consecutive hyphens+    --+    -- Example: @my-cluster2@+    newGlobalClusterIdentifier' :: Prelude.Maybe Prelude.Text,+    -- | The identifier for the global cluster being modified. This parameter+    -- isn\'t case-sensitive.+    --+    -- Constraints:+    --+    -- -   Must match the identifier of an existing global cluster.+    globalClusterIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModifyGlobalCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deletionProtection', 'modifyGlobalCluster_deletionProtection' - Indicates if the global cluster has deletion protection enabled. The+-- global cluster can\'t be deleted when deletion protection is enabled.+--+-- 'newGlobalClusterIdentifier'', 'modifyGlobalCluster_newGlobalClusterIdentifier' - The new identifier for a global cluster when you modify a global+-- cluster. This value is stored as a lowercase string.+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens+--+--     The first character must be a letter+--+--     Can\'t end with a hyphen or contain two consecutive hyphens+--+-- Example: @my-cluster2@+--+-- 'globalClusterIdentifier', 'modifyGlobalCluster_globalClusterIdentifier' - The identifier for the global cluster being modified. This parameter+-- isn\'t case-sensitive.+--+-- Constraints:+--+-- -   Must match the identifier of an existing global cluster.+newModifyGlobalCluster ::+  -- | 'globalClusterIdentifier'+  Prelude.Text ->+  ModifyGlobalCluster+newModifyGlobalCluster pGlobalClusterIdentifier_ =+  ModifyGlobalCluster'+    { deletionProtection =+        Prelude.Nothing,+      newGlobalClusterIdentifier' = Prelude.Nothing,+      globalClusterIdentifier = pGlobalClusterIdentifier_+    }++-- | Indicates if the global cluster has deletion protection enabled. The+-- global cluster can\'t be deleted when deletion protection is enabled.+modifyGlobalCluster_deletionProtection :: Lens.Lens' ModifyGlobalCluster (Prelude.Maybe Prelude.Bool)+modifyGlobalCluster_deletionProtection = Lens.lens (\ModifyGlobalCluster' {deletionProtection} -> deletionProtection) (\s@ModifyGlobalCluster' {} a -> s {deletionProtection = a} :: ModifyGlobalCluster)++-- | The new identifier for a global cluster when you modify a global+-- cluster. This value is stored as a lowercase string.+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens+--+--     The first character must be a letter+--+--     Can\'t end with a hyphen or contain two consecutive hyphens+--+-- Example: @my-cluster2@+modifyGlobalCluster_newGlobalClusterIdentifier :: Lens.Lens' ModifyGlobalCluster (Prelude.Maybe Prelude.Text)+modifyGlobalCluster_newGlobalClusterIdentifier = Lens.lens (\ModifyGlobalCluster' {newGlobalClusterIdentifier'} -> newGlobalClusterIdentifier') (\s@ModifyGlobalCluster' {} a -> s {newGlobalClusterIdentifier' = a} :: ModifyGlobalCluster)++-- | The identifier for the global cluster being modified. This parameter+-- isn\'t case-sensitive.+--+-- Constraints:+--+-- -   Must match the identifier of an existing global cluster.+modifyGlobalCluster_globalClusterIdentifier :: Lens.Lens' ModifyGlobalCluster Prelude.Text+modifyGlobalCluster_globalClusterIdentifier = Lens.lens (\ModifyGlobalCluster' {globalClusterIdentifier} -> globalClusterIdentifier) (\s@ModifyGlobalCluster' {} a -> s {globalClusterIdentifier = a} :: ModifyGlobalCluster)++instance Core.AWSRequest ModifyGlobalCluster where+  type+    AWSResponse ModifyGlobalCluster =+      ModifyGlobalClusterResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "ModifyGlobalClusterResult"+      ( \s h x ->+          ModifyGlobalClusterResponse'+            Prelude.<$> (x Data..@? "GlobalCluster")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ModifyGlobalCluster where+  hashWithSalt _salt ModifyGlobalCluster' {..} =+    _salt+      `Prelude.hashWithSalt` deletionProtection+      `Prelude.hashWithSalt` newGlobalClusterIdentifier'+      `Prelude.hashWithSalt` globalClusterIdentifier++instance Prelude.NFData ModifyGlobalCluster where+  rnf ModifyGlobalCluster' {..} =+    Prelude.rnf deletionProtection+      `Prelude.seq` Prelude.rnf newGlobalClusterIdentifier'+      `Prelude.seq` Prelude.rnf globalClusterIdentifier++instance Data.ToHeaders ModifyGlobalCluster where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ModifyGlobalCluster where+  toPath = Prelude.const "/"++instance Data.ToQuery ModifyGlobalCluster where+  toQuery ModifyGlobalCluster' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("ModifyGlobalCluster" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DeletionProtection" Data.=: deletionProtection,+        "NewGlobalClusterIdentifier"+          Data.=: newGlobalClusterIdentifier',+        "GlobalClusterIdentifier"+          Data.=: globalClusterIdentifier+      ]++-- | /See:/ 'newModifyGlobalClusterResponse' smart constructor.+data ModifyGlobalClusterResponse = ModifyGlobalClusterResponse'+  { globalCluster :: Prelude.Maybe GlobalCluster,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModifyGlobalClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'globalCluster', 'modifyGlobalClusterResponse_globalCluster' - Undocumented member.+--+-- 'httpStatus', 'modifyGlobalClusterResponse_httpStatus' - The response's http status code.+newModifyGlobalClusterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ModifyGlobalClusterResponse+newModifyGlobalClusterResponse pHttpStatus_ =+  ModifyGlobalClusterResponse'+    { globalCluster =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+modifyGlobalClusterResponse_globalCluster :: Lens.Lens' ModifyGlobalClusterResponse (Prelude.Maybe GlobalCluster)+modifyGlobalClusterResponse_globalCluster = Lens.lens (\ModifyGlobalClusterResponse' {globalCluster} -> globalCluster) (\s@ModifyGlobalClusterResponse' {} a -> s {globalCluster = a} :: ModifyGlobalClusterResponse)++-- | The response's http status code.+modifyGlobalClusterResponse_httpStatus :: Lens.Lens' ModifyGlobalClusterResponse Prelude.Int+modifyGlobalClusterResponse_httpStatus = Lens.lens (\ModifyGlobalClusterResponse' {httpStatus} -> httpStatus) (\s@ModifyGlobalClusterResponse' {} a -> s {httpStatus = a} :: ModifyGlobalClusterResponse)++instance Prelude.NFData ModifyGlobalClusterResponse where+  rnf ModifyGlobalClusterResponse' {..} =+    Prelude.rnf globalCluster+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/RebootDBInstance.hs view
@@ -0,0 +1,203 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.RebootDBInstance+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- You might need to reboot your instance, usually for maintenance reasons.+-- For example, if you make certain changes, or if you change the cluster+-- parameter group that is associated with the instance, you must reboot+-- the instance for the changes to take effect.+--+-- Rebooting an instance restarts the database engine service. Rebooting an+-- instance results in a momentary outage, during which the instance status+-- is set to /rebooting/.+module Amazonka.DocumentDB.RebootDBInstance+  ( -- * Creating a Request+    RebootDBInstance (..),+    newRebootDBInstance,++    -- * Request Lenses+    rebootDBInstance_forceFailover,+    rebootDBInstance_dbInstanceIdentifier,++    -- * Destructuring the Response+    RebootDBInstanceResponse (..),+    newRebootDBInstanceResponse,++    -- * Response Lenses+    rebootDBInstanceResponse_dbInstance,+    rebootDBInstanceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to RebootDBInstance.+--+-- /See:/ 'newRebootDBInstance' smart constructor.+data RebootDBInstance = RebootDBInstance'+  { -- | When @true@, the reboot is conducted through a Multi-AZ failover.+    --+    -- Constraint: You can\'t specify @true@ if the instance is not configured+    -- for Multi-AZ.+    forceFailover :: Prelude.Maybe Prelude.Bool,+    -- | The instance identifier. This parameter is stored as a lowercase string.+    --+    -- Constraints:+    --+    -- -   Must match the identifier of an existing @DBInstance@.+    dbInstanceIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RebootDBInstance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'forceFailover', 'rebootDBInstance_forceFailover' - When @true@, the reboot is conducted through a Multi-AZ failover.+--+-- Constraint: You can\'t specify @true@ if the instance is not configured+-- for Multi-AZ.+--+-- 'dbInstanceIdentifier', 'rebootDBInstance_dbInstanceIdentifier' - The instance identifier. This parameter is stored as a lowercase string.+--+-- Constraints:+--+-- -   Must match the identifier of an existing @DBInstance@.+newRebootDBInstance ::+  -- | 'dbInstanceIdentifier'+  Prelude.Text ->+  RebootDBInstance+newRebootDBInstance pDBInstanceIdentifier_ =+  RebootDBInstance'+    { forceFailover = Prelude.Nothing,+      dbInstanceIdentifier = pDBInstanceIdentifier_+    }++-- | When @true@, the reboot is conducted through a Multi-AZ failover.+--+-- Constraint: You can\'t specify @true@ if the instance is not configured+-- for Multi-AZ.+rebootDBInstance_forceFailover :: Lens.Lens' RebootDBInstance (Prelude.Maybe Prelude.Bool)+rebootDBInstance_forceFailover = Lens.lens (\RebootDBInstance' {forceFailover} -> forceFailover) (\s@RebootDBInstance' {} a -> s {forceFailover = a} :: RebootDBInstance)++-- | The instance identifier. This parameter is stored as a lowercase string.+--+-- Constraints:+--+-- -   Must match the identifier of an existing @DBInstance@.+rebootDBInstance_dbInstanceIdentifier :: Lens.Lens' RebootDBInstance Prelude.Text+rebootDBInstance_dbInstanceIdentifier = Lens.lens (\RebootDBInstance' {dbInstanceIdentifier} -> dbInstanceIdentifier) (\s@RebootDBInstance' {} a -> s {dbInstanceIdentifier = a} :: RebootDBInstance)++instance Core.AWSRequest RebootDBInstance where+  type+    AWSResponse RebootDBInstance =+      RebootDBInstanceResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "RebootDBInstanceResult"+      ( \s h x ->+          RebootDBInstanceResponse'+            Prelude.<$> (x Data..@? "DBInstance")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RebootDBInstance where+  hashWithSalt _salt RebootDBInstance' {..} =+    _salt+      `Prelude.hashWithSalt` forceFailover+      `Prelude.hashWithSalt` dbInstanceIdentifier++instance Prelude.NFData RebootDBInstance where+  rnf RebootDBInstance' {..} =+    Prelude.rnf forceFailover+      `Prelude.seq` Prelude.rnf dbInstanceIdentifier++instance Data.ToHeaders RebootDBInstance where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath RebootDBInstance where+  toPath = Prelude.const "/"++instance Data.ToQuery RebootDBInstance where+  toQuery RebootDBInstance' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("RebootDBInstance" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "ForceFailover" Data.=: forceFailover,+        "DBInstanceIdentifier" Data.=: dbInstanceIdentifier+      ]++-- | /See:/ 'newRebootDBInstanceResponse' smart constructor.+data RebootDBInstanceResponse = RebootDBInstanceResponse'+  { dbInstance :: Prelude.Maybe DBInstance,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RebootDBInstanceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbInstance', 'rebootDBInstanceResponse_dbInstance' - Undocumented member.+--+-- 'httpStatus', 'rebootDBInstanceResponse_httpStatus' - The response's http status code.+newRebootDBInstanceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RebootDBInstanceResponse+newRebootDBInstanceResponse pHttpStatus_ =+  RebootDBInstanceResponse'+    { dbInstance =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+rebootDBInstanceResponse_dbInstance :: Lens.Lens' RebootDBInstanceResponse (Prelude.Maybe DBInstance)+rebootDBInstanceResponse_dbInstance = Lens.lens (\RebootDBInstanceResponse' {dbInstance} -> dbInstance) (\s@RebootDBInstanceResponse' {} a -> s {dbInstance = a} :: RebootDBInstanceResponse)++-- | The response's http status code.+rebootDBInstanceResponse_httpStatus :: Lens.Lens' RebootDBInstanceResponse Prelude.Int+rebootDBInstanceResponse_httpStatus = Lens.lens (\RebootDBInstanceResponse' {httpStatus} -> httpStatus) (\s@RebootDBInstanceResponse' {} a -> s {httpStatus = a} :: RebootDBInstanceResponse)++instance Prelude.NFData RebootDBInstanceResponse where+  rnf RebootDBInstanceResponse' {..} =+    Prelude.rnf dbInstance+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/RemoveFromGlobalCluster.hs view
@@ -0,0 +1,195 @@+{-# 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.DocumentDB.RemoveFromGlobalCluster+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Detaches an Amazon DocumentDB secondary cluster from a global cluster.+-- The cluster becomes a standalone cluster with read-write capability+-- instead of being read-only and receiving data from a primary in a+-- different region.+--+-- This action only applies to Amazon DocumentDB clusters.+module Amazonka.DocumentDB.RemoveFromGlobalCluster+  ( -- * Creating a Request+    RemoveFromGlobalCluster (..),+    newRemoveFromGlobalCluster,++    -- * Request Lenses+    removeFromGlobalCluster_globalClusterIdentifier,+    removeFromGlobalCluster_dbClusterIdentifier,++    -- * Destructuring the Response+    RemoveFromGlobalClusterResponse (..),+    newRemoveFromGlobalClusterResponse,++    -- * Response Lenses+    removeFromGlobalClusterResponse_globalCluster,+    removeFromGlobalClusterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to RemoveFromGlobalCluster.+--+-- /See:/ 'newRemoveFromGlobalCluster' smart constructor.+data RemoveFromGlobalCluster = RemoveFromGlobalCluster'+  { -- | The cluster identifier to detach from the Amazon DocumentDB global+    -- cluster.+    globalClusterIdentifier :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) identifying the cluster that was detached+    -- from the Amazon DocumentDB global cluster.+    dbClusterIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveFromGlobalCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'globalClusterIdentifier', 'removeFromGlobalCluster_globalClusterIdentifier' - The cluster identifier to detach from the Amazon DocumentDB global+-- cluster.+--+-- 'dbClusterIdentifier', 'removeFromGlobalCluster_dbClusterIdentifier' - The Amazon Resource Name (ARN) identifying the cluster that was detached+-- from the Amazon DocumentDB global cluster.+newRemoveFromGlobalCluster ::+  -- | 'globalClusterIdentifier'+  Prelude.Text ->+  -- | 'dbClusterIdentifier'+  Prelude.Text ->+  RemoveFromGlobalCluster+newRemoveFromGlobalCluster+  pGlobalClusterIdentifier_+  pDbClusterIdentifier_ =+    RemoveFromGlobalCluster'+      { globalClusterIdentifier =+          pGlobalClusterIdentifier_,+        dbClusterIdentifier = pDbClusterIdentifier_+      }++-- | The cluster identifier to detach from the Amazon DocumentDB global+-- cluster.+removeFromGlobalCluster_globalClusterIdentifier :: Lens.Lens' RemoveFromGlobalCluster Prelude.Text+removeFromGlobalCluster_globalClusterIdentifier = Lens.lens (\RemoveFromGlobalCluster' {globalClusterIdentifier} -> globalClusterIdentifier) (\s@RemoveFromGlobalCluster' {} a -> s {globalClusterIdentifier = a} :: RemoveFromGlobalCluster)++-- | The Amazon Resource Name (ARN) identifying the cluster that was detached+-- from the Amazon DocumentDB global cluster.+removeFromGlobalCluster_dbClusterIdentifier :: Lens.Lens' RemoveFromGlobalCluster Prelude.Text+removeFromGlobalCluster_dbClusterIdentifier = Lens.lens (\RemoveFromGlobalCluster' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@RemoveFromGlobalCluster' {} a -> s {dbClusterIdentifier = a} :: RemoveFromGlobalCluster)++instance Core.AWSRequest RemoveFromGlobalCluster where+  type+    AWSResponse RemoveFromGlobalCluster =+      RemoveFromGlobalClusterResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "RemoveFromGlobalClusterResult"+      ( \s h x ->+          RemoveFromGlobalClusterResponse'+            Prelude.<$> (x Data..@? "GlobalCluster")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RemoveFromGlobalCluster where+  hashWithSalt _salt RemoveFromGlobalCluster' {..} =+    _salt+      `Prelude.hashWithSalt` globalClusterIdentifier+      `Prelude.hashWithSalt` dbClusterIdentifier++instance Prelude.NFData RemoveFromGlobalCluster where+  rnf RemoveFromGlobalCluster' {..} =+    Prelude.rnf globalClusterIdentifier+      `Prelude.seq` Prelude.rnf dbClusterIdentifier++instance Data.ToHeaders RemoveFromGlobalCluster where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath RemoveFromGlobalCluster where+  toPath = Prelude.const "/"++instance Data.ToQuery RemoveFromGlobalCluster where+  toQuery RemoveFromGlobalCluster' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("RemoveFromGlobalCluster" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "GlobalClusterIdentifier"+          Data.=: globalClusterIdentifier,+        "DbClusterIdentifier" Data.=: dbClusterIdentifier+      ]++-- | /See:/ 'newRemoveFromGlobalClusterResponse' smart constructor.+data RemoveFromGlobalClusterResponse = RemoveFromGlobalClusterResponse'+  { globalCluster :: Prelude.Maybe GlobalCluster,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveFromGlobalClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'globalCluster', 'removeFromGlobalClusterResponse_globalCluster' - Undocumented member.+--+-- 'httpStatus', 'removeFromGlobalClusterResponse_httpStatus' - The response's http status code.+newRemoveFromGlobalClusterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RemoveFromGlobalClusterResponse+newRemoveFromGlobalClusterResponse pHttpStatus_ =+  RemoveFromGlobalClusterResponse'+    { globalCluster =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+removeFromGlobalClusterResponse_globalCluster :: Lens.Lens' RemoveFromGlobalClusterResponse (Prelude.Maybe GlobalCluster)+removeFromGlobalClusterResponse_globalCluster = Lens.lens (\RemoveFromGlobalClusterResponse' {globalCluster} -> globalCluster) (\s@RemoveFromGlobalClusterResponse' {} a -> s {globalCluster = a} :: RemoveFromGlobalClusterResponse)++-- | The response's http status code.+removeFromGlobalClusterResponse_httpStatus :: Lens.Lens' RemoveFromGlobalClusterResponse Prelude.Int+removeFromGlobalClusterResponse_httpStatus = Lens.lens (\RemoveFromGlobalClusterResponse' {httpStatus} -> httpStatus) (\s@RemoveFromGlobalClusterResponse' {} a -> s {httpStatus = a} :: RemoveFromGlobalClusterResponse)++instance+  Prelude.NFData+    RemoveFromGlobalClusterResponse+  where+  rnf RemoveFromGlobalClusterResponse' {..} =+    Prelude.rnf globalCluster+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/RemoveSourceIdentifierFromSubscription.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.DocumentDB.RemoveSourceIdentifierFromSubscription+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a source identifier from an existing Amazon DocumentDB event+-- notification subscription.+module Amazonka.DocumentDB.RemoveSourceIdentifierFromSubscription+  ( -- * Creating a Request+    RemoveSourceIdentifierFromSubscription (..),+    newRemoveSourceIdentifierFromSubscription,++    -- * Request Lenses+    removeSourceIdentifierFromSubscription_subscriptionName,+    removeSourceIdentifierFromSubscription_sourceIdentifier,++    -- * Destructuring the Response+    RemoveSourceIdentifierFromSubscriptionResponse (..),+    newRemoveSourceIdentifierFromSubscriptionResponse,++    -- * Response Lenses+    removeSourceIdentifierFromSubscriptionResponse_eventSubscription,+    removeSourceIdentifierFromSubscriptionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to RemoveSourceIdentifierFromSubscription.+--+-- /See:/ 'newRemoveSourceIdentifierFromSubscription' smart constructor.+data RemoveSourceIdentifierFromSubscription = RemoveSourceIdentifierFromSubscription'+  { -- | The name of the Amazon DocumentDB event notification subscription that+    -- you want to remove a source identifier from.+    subscriptionName :: Prelude.Text,+    -- | The source identifier to be removed from the subscription, such as the+    -- instance identifier for an instance, or the name of a security group.+    sourceIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveSourceIdentifierFromSubscription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subscriptionName', 'removeSourceIdentifierFromSubscription_subscriptionName' - The name of the Amazon DocumentDB event notification subscription that+-- you want to remove a source identifier from.+--+-- 'sourceIdentifier', 'removeSourceIdentifierFromSubscription_sourceIdentifier' - The source identifier to be removed from the subscription, such as the+-- instance identifier for an instance, or the name of a security group.+newRemoveSourceIdentifierFromSubscription ::+  -- | 'subscriptionName'+  Prelude.Text ->+  -- | 'sourceIdentifier'+  Prelude.Text ->+  RemoveSourceIdentifierFromSubscription+newRemoveSourceIdentifierFromSubscription+  pSubscriptionName_+  pSourceIdentifier_ =+    RemoveSourceIdentifierFromSubscription'+      { subscriptionName =+          pSubscriptionName_,+        sourceIdentifier =+          pSourceIdentifier_+      }++-- | The name of the Amazon DocumentDB event notification subscription that+-- you want to remove a source identifier from.+removeSourceIdentifierFromSubscription_subscriptionName :: Lens.Lens' RemoveSourceIdentifierFromSubscription Prelude.Text+removeSourceIdentifierFromSubscription_subscriptionName = Lens.lens (\RemoveSourceIdentifierFromSubscription' {subscriptionName} -> subscriptionName) (\s@RemoveSourceIdentifierFromSubscription' {} a -> s {subscriptionName = a} :: RemoveSourceIdentifierFromSubscription)++-- | The source identifier to be removed from the subscription, such as the+-- instance identifier for an instance, or the name of a security group.+removeSourceIdentifierFromSubscription_sourceIdentifier :: Lens.Lens' RemoveSourceIdentifierFromSubscription Prelude.Text+removeSourceIdentifierFromSubscription_sourceIdentifier = Lens.lens (\RemoveSourceIdentifierFromSubscription' {sourceIdentifier} -> sourceIdentifier) (\s@RemoveSourceIdentifierFromSubscription' {} a -> s {sourceIdentifier = a} :: RemoveSourceIdentifierFromSubscription)++instance+  Core.AWSRequest+    RemoveSourceIdentifierFromSubscription+  where+  type+    AWSResponse+      RemoveSourceIdentifierFromSubscription =+      RemoveSourceIdentifierFromSubscriptionResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "RemoveSourceIdentifierFromSubscriptionResult"+      ( \s h x ->+          RemoveSourceIdentifierFromSubscriptionResponse'+            Prelude.<$> (x Data..@? "EventSubscription")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    RemoveSourceIdentifierFromSubscription+  where+  hashWithSalt+    _salt+    RemoveSourceIdentifierFromSubscription' {..} =+      _salt+        `Prelude.hashWithSalt` subscriptionName+        `Prelude.hashWithSalt` sourceIdentifier++instance+  Prelude.NFData+    RemoveSourceIdentifierFromSubscription+  where+  rnf RemoveSourceIdentifierFromSubscription' {..} =+    Prelude.rnf subscriptionName+      `Prelude.seq` Prelude.rnf sourceIdentifier++instance+  Data.ToHeaders+    RemoveSourceIdentifierFromSubscription+  where+  toHeaders = Prelude.const Prelude.mempty++instance+  Data.ToPath+    RemoveSourceIdentifierFromSubscription+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    RemoveSourceIdentifierFromSubscription+  where+  toQuery RemoveSourceIdentifierFromSubscription' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "RemoveSourceIdentifierFromSubscription" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "SubscriptionName" Data.=: subscriptionName,+        "SourceIdentifier" Data.=: sourceIdentifier+      ]++-- | /See:/ 'newRemoveSourceIdentifierFromSubscriptionResponse' smart constructor.+data RemoveSourceIdentifierFromSubscriptionResponse = RemoveSourceIdentifierFromSubscriptionResponse'+  { eventSubscription :: Prelude.Maybe EventSubscription,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveSourceIdentifierFromSubscriptionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventSubscription', 'removeSourceIdentifierFromSubscriptionResponse_eventSubscription' - Undocumented member.+--+-- 'httpStatus', 'removeSourceIdentifierFromSubscriptionResponse_httpStatus' - The response's http status code.+newRemoveSourceIdentifierFromSubscriptionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RemoveSourceIdentifierFromSubscriptionResponse+newRemoveSourceIdentifierFromSubscriptionResponse+  pHttpStatus_ =+    RemoveSourceIdentifierFromSubscriptionResponse'+      { eventSubscription =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Undocumented member.+removeSourceIdentifierFromSubscriptionResponse_eventSubscription :: Lens.Lens' RemoveSourceIdentifierFromSubscriptionResponse (Prelude.Maybe EventSubscription)+removeSourceIdentifierFromSubscriptionResponse_eventSubscription = Lens.lens (\RemoveSourceIdentifierFromSubscriptionResponse' {eventSubscription} -> eventSubscription) (\s@RemoveSourceIdentifierFromSubscriptionResponse' {} a -> s {eventSubscription = a} :: RemoveSourceIdentifierFromSubscriptionResponse)++-- | The response's http status code.+removeSourceIdentifierFromSubscriptionResponse_httpStatus :: Lens.Lens' RemoveSourceIdentifierFromSubscriptionResponse Prelude.Int+removeSourceIdentifierFromSubscriptionResponse_httpStatus = Lens.lens (\RemoveSourceIdentifierFromSubscriptionResponse' {httpStatus} -> httpStatus) (\s@RemoveSourceIdentifierFromSubscriptionResponse' {} a -> s {httpStatus = a} :: RemoveSourceIdentifierFromSubscriptionResponse)++instance+  Prelude.NFData+    RemoveSourceIdentifierFromSubscriptionResponse+  where+  rnf+    RemoveSourceIdentifierFromSubscriptionResponse' {..} =+      Prelude.rnf eventSubscription+        `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/RemoveTagsFromResource.hs view
@@ -0,0 +1,148 @@+{-# 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.DocumentDB.RemoveTagsFromResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes metadata tags from an Amazon DocumentDB resource.+module Amazonka.DocumentDB.RemoveTagsFromResource+  ( -- * Creating a Request+    RemoveTagsFromResource (..),+    newRemoveTagsFromResource,++    -- * Request Lenses+    removeTagsFromResource_resourceName,+    removeTagsFromResource_tagKeys,++    -- * Destructuring the Response+    RemoveTagsFromResourceResponse (..),+    newRemoveTagsFromResourceResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to RemoveTagsFromResource.+--+-- /See:/ 'newRemoveTagsFromResource' smart constructor.+data RemoveTagsFromResource = RemoveTagsFromResource'+  { -- | The Amazon DocumentDB resource that the tags are removed from. This+    -- value is an Amazon Resource Name (ARN).+    resourceName :: Prelude.Text,+    -- | The tag key (name) of the tag to be removed.+    tagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveTagsFromResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceName', 'removeTagsFromResource_resourceName' - The Amazon DocumentDB resource that the tags are removed from. This+-- value is an Amazon Resource Name (ARN).+--+-- 'tagKeys', 'removeTagsFromResource_tagKeys' - The tag key (name) of the tag to be removed.+newRemoveTagsFromResource ::+  -- | 'resourceName'+  Prelude.Text ->+  RemoveTagsFromResource+newRemoveTagsFromResource pResourceName_ =+  RemoveTagsFromResource'+    { resourceName =+        pResourceName_,+      tagKeys = Prelude.mempty+    }++-- | The Amazon DocumentDB resource that the tags are removed from. This+-- value is an Amazon Resource Name (ARN).+removeTagsFromResource_resourceName :: Lens.Lens' RemoveTagsFromResource Prelude.Text+removeTagsFromResource_resourceName = Lens.lens (\RemoveTagsFromResource' {resourceName} -> resourceName) (\s@RemoveTagsFromResource' {} a -> s {resourceName = a} :: RemoveTagsFromResource)++-- | The tag key (name) of the tag to be removed.+removeTagsFromResource_tagKeys :: Lens.Lens' RemoveTagsFromResource [Prelude.Text]+removeTagsFromResource_tagKeys = Lens.lens (\RemoveTagsFromResource' {tagKeys} -> tagKeys) (\s@RemoveTagsFromResource' {} a -> s {tagKeys = a} :: RemoveTagsFromResource) Prelude.. Lens.coerced++instance Core.AWSRequest RemoveTagsFromResource where+  type+    AWSResponse RemoveTagsFromResource =+      RemoveTagsFromResourceResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveNull+      RemoveTagsFromResourceResponse'++instance Prelude.Hashable RemoveTagsFromResource where+  hashWithSalt _salt RemoveTagsFromResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceName+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData RemoveTagsFromResource where+  rnf RemoveTagsFromResource' {..} =+    Prelude.rnf resourceName+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders RemoveTagsFromResource where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath RemoveTagsFromResource where+  toPath = Prelude.const "/"++instance Data.ToQuery RemoveTagsFromResource where+  toQuery RemoveTagsFromResource' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("RemoveTagsFromResource" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "ResourceName" Data.=: resourceName,+        "TagKeys" Data.=: Data.toQueryList "member" tagKeys+      ]++-- | /See:/ 'newRemoveTagsFromResourceResponse' smart constructor.+data RemoveTagsFromResourceResponse = RemoveTagsFromResourceResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveTagsFromResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newRemoveTagsFromResourceResponse ::+  RemoveTagsFromResourceResponse+newRemoveTagsFromResourceResponse =+  RemoveTagsFromResourceResponse'++instance+  Prelude.NFData+    RemoveTagsFromResourceResponse+  where+  rnf _ = ()
+ gen/Amazonka/DocumentDB/ResetDBClusterParameterGroup.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.DocumentDB.ResetDBClusterParameterGroup+-- 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 cluster parameter group to the default+-- value. To reset specific parameters, submit a list of the following:+-- @ParameterName@ and @ApplyMethod@. To reset the entire cluster parameter+-- group, specify the @DBClusterParameterGroupName@ and+-- @ResetAllParameters@ parameters.+--+-- When you reset the entire group, dynamic parameters are updated+-- immediately and static parameters are set to @pending-reboot@ to take+-- effect on the next DB instance reboot.+module Amazonka.DocumentDB.ResetDBClusterParameterGroup+  ( -- * Creating a Request+    ResetDBClusterParameterGroup (..),+    newResetDBClusterParameterGroup,++    -- * Request Lenses+    resetDBClusterParameterGroup_parameters,+    resetDBClusterParameterGroup_resetAllParameters,+    resetDBClusterParameterGroup_dbClusterParameterGroupName,++    -- * Destructuring the Response+    DBClusterParameterGroupNameMessage (..),+    newDBClusterParameterGroupNameMessage,++    -- * Response Lenses+    dbClusterParameterGroupNameMessage_dbClusterParameterGroupName,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to ResetDBClusterParameterGroup.+--+-- /See:/ 'newResetDBClusterParameterGroup' smart constructor.+data ResetDBClusterParameterGroup = ResetDBClusterParameterGroup'+  { -- | A list of parameter names in the cluster parameter group to reset to the+    -- default values. You can\'t use this parameter if the+    -- @ResetAllParameters@ parameter is set to @true@.+    parameters :: Prelude.Maybe [Parameter],+    -- | A value that is set to @true@ to reset all parameters in the cluster+    -- parameter group to their default values, and @false@ otherwise. You+    -- can\'t use this parameter if there is a list of parameter names+    -- specified for the @Parameters@ parameter.+    resetAllParameters :: Prelude.Maybe Prelude.Bool,+    -- | The name of the cluster parameter group to reset.+    dbClusterParameterGroupName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResetDBClusterParameterGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'parameters', 'resetDBClusterParameterGroup_parameters' - A list of parameter names in the cluster parameter group to reset to the+-- default values. You can\'t use this parameter if the+-- @ResetAllParameters@ parameter is set to @true@.+--+-- 'resetAllParameters', 'resetDBClusterParameterGroup_resetAllParameters' - A value that is set to @true@ to reset all parameters in the cluster+-- parameter group to their default values, and @false@ otherwise. You+-- can\'t use this parameter if there is a list of parameter names+-- specified for the @Parameters@ parameter.+--+-- 'dbClusterParameterGroupName', 'resetDBClusterParameterGroup_dbClusterParameterGroupName' - The name of the cluster parameter group to reset.+newResetDBClusterParameterGroup ::+  -- | 'dbClusterParameterGroupName'+  Prelude.Text ->+  ResetDBClusterParameterGroup+newResetDBClusterParameterGroup+  pDBClusterParameterGroupName_ =+    ResetDBClusterParameterGroup'+      { parameters =+          Prelude.Nothing,+        resetAllParameters = Prelude.Nothing,+        dbClusterParameterGroupName =+          pDBClusterParameterGroupName_+      }++-- | A list of parameter names in the cluster parameter group to reset to the+-- default values. You can\'t use this parameter if the+-- @ResetAllParameters@ parameter is set to @true@.+resetDBClusterParameterGroup_parameters :: Lens.Lens' ResetDBClusterParameterGroup (Prelude.Maybe [Parameter])+resetDBClusterParameterGroup_parameters = Lens.lens (\ResetDBClusterParameterGroup' {parameters} -> parameters) (\s@ResetDBClusterParameterGroup' {} a -> s {parameters = a} :: ResetDBClusterParameterGroup) Prelude.. Lens.mapping Lens.coerced++-- | A value that is set to @true@ to reset all parameters in the cluster+-- parameter group to their default values, and @false@ otherwise. You+-- can\'t use this parameter if there is a list of parameter names+-- specified for the @Parameters@ parameter.+resetDBClusterParameterGroup_resetAllParameters :: Lens.Lens' ResetDBClusterParameterGroup (Prelude.Maybe Prelude.Bool)+resetDBClusterParameterGroup_resetAllParameters = Lens.lens (\ResetDBClusterParameterGroup' {resetAllParameters} -> resetAllParameters) (\s@ResetDBClusterParameterGroup' {} a -> s {resetAllParameters = a} :: ResetDBClusterParameterGroup)++-- | The name of the cluster parameter group to reset.+resetDBClusterParameterGroup_dbClusterParameterGroupName :: Lens.Lens' ResetDBClusterParameterGroup Prelude.Text+resetDBClusterParameterGroup_dbClusterParameterGroupName = Lens.lens (\ResetDBClusterParameterGroup' {dbClusterParameterGroupName} -> dbClusterParameterGroupName) (\s@ResetDBClusterParameterGroup' {} a -> s {dbClusterParameterGroupName = a} :: ResetDBClusterParameterGroup)++instance Core.AWSRequest ResetDBClusterParameterGroup where+  type+    AWSResponse ResetDBClusterParameterGroup =+      DBClusterParameterGroupNameMessage+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "ResetDBClusterParameterGroupResult"+      (\s h x -> Data.parseXML x)++instance+  Prelude.Hashable+    ResetDBClusterParameterGroup+  where+  hashWithSalt _salt ResetDBClusterParameterGroup' {..} =+    _salt+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` resetAllParameters+      `Prelude.hashWithSalt` dbClusterParameterGroupName++instance Prelude.NFData ResetDBClusterParameterGroup where+  rnf ResetDBClusterParameterGroup' {..} =+    Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf resetAllParameters+      `Prelude.seq` Prelude.rnf dbClusterParameterGroupName++instance Data.ToHeaders ResetDBClusterParameterGroup where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath ResetDBClusterParameterGroup where+  toPath = Prelude.const "/"++instance Data.ToQuery ResetDBClusterParameterGroup where+  toQuery ResetDBClusterParameterGroup' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "ResetDBClusterParameterGroup" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "Parameters"+          Data.=: Data.toQuery+            ( Data.toQueryList "Parameter"+                Prelude.<$> parameters+            ),+        "ResetAllParameters" Data.=: resetAllParameters,+        "DBClusterParameterGroupName"+          Data.=: dbClusterParameterGroupName+      ]
+ gen/Amazonka/DocumentDB/RestoreDBClusterFromSnapshot.hs view
@@ -0,0 +1,509 @@+{-# 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.DocumentDB.RestoreDBClusterFromSnapshot+-- 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 cluster from a snapshot or cluster snapshot.+--+-- If a snapshot is specified, the target cluster is created from the+-- source DB snapshot with a default configuration and default security+-- group.+--+-- If a cluster snapshot is specified, the target cluster is created from+-- the source cluster restore point with the same configuration as the+-- original source DB cluster, except that the new cluster is created with+-- the default security group.+module Amazonka.DocumentDB.RestoreDBClusterFromSnapshot+  ( -- * Creating a Request+    RestoreDBClusterFromSnapshot (..),+    newRestoreDBClusterFromSnapshot,++    -- * Request Lenses+    restoreDBClusterFromSnapshot_availabilityZones,+    restoreDBClusterFromSnapshot_dbSubnetGroupName,+    restoreDBClusterFromSnapshot_deletionProtection,+    restoreDBClusterFromSnapshot_enableCloudwatchLogsExports,+    restoreDBClusterFromSnapshot_engineVersion,+    restoreDBClusterFromSnapshot_kmsKeyId,+    restoreDBClusterFromSnapshot_port,+    restoreDBClusterFromSnapshot_tags,+    restoreDBClusterFromSnapshot_vpcSecurityGroupIds,+    restoreDBClusterFromSnapshot_dbClusterIdentifier,+    restoreDBClusterFromSnapshot_snapshotIdentifier,+    restoreDBClusterFromSnapshot_engine,++    -- * Destructuring the Response+    RestoreDBClusterFromSnapshotResponse (..),+    newRestoreDBClusterFromSnapshotResponse,++    -- * Response Lenses+    restoreDBClusterFromSnapshotResponse_dbCluster,+    restoreDBClusterFromSnapshotResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to RestoreDBClusterFromSnapshot.+--+-- /See:/ 'newRestoreDBClusterFromSnapshot' smart constructor.+data RestoreDBClusterFromSnapshot = RestoreDBClusterFromSnapshot'+  { -- | Provides the list of Amazon EC2 Availability Zones that instances in the+    -- restored DB cluster can be created in.+    availabilityZones :: Prelude.Maybe [Prelude.Text],+    -- | The name of the subnet group to use for the new cluster.+    --+    -- Constraints: If provided, must match the name of an existing+    -- @DBSubnetGroup@.+    --+    -- Example: @mySubnetgroup@+    dbSubnetGroupName :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether this cluster can be deleted. If @DeletionProtection@+    -- is enabled, the cluster cannot be deleted unless it is modified and+    -- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+    -- from being accidentally deleted.+    deletionProtection :: Prelude.Maybe Prelude.Bool,+    -- | A list of log types that must be enabled for exporting to Amazon+    -- CloudWatch Logs.+    enableCloudwatchLogsExports :: Prelude.Maybe [Prelude.Text],+    -- | The version of the database engine to use for the new cluster.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | The KMS key identifier to use when restoring an encrypted cluster from a+    -- DB snapshot or cluster snapshot.+    --+    -- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS+    -- encryption key. If you are restoring a cluster with the same Amazon Web+    -- Services account that owns the KMS encryption key used to encrypt the+    -- new cluster, then you can use the KMS key alias instead of the ARN for+    -- the KMS encryption key.+    --+    -- If you do not specify a value for the @KmsKeyId@ parameter, then the+    -- following occurs:+    --+    -- -   If the snapshot or cluster snapshot in @SnapshotIdentifier@ is+    --     encrypted, then the restored cluster is encrypted using the KMS key+    --     that was used to encrypt the snapshot or the cluster snapshot.+    --+    -- -   If the snapshot or the cluster snapshot in @SnapshotIdentifier@ is+    --     not encrypted, then the restored DB cluster is not encrypted.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | The port number on which the new cluster accepts connections.+    --+    -- Constraints: Must be a value from @1150@ to @65535@.+    --+    -- Default: The same port as the original cluster.+    port :: Prelude.Maybe Prelude.Int,+    -- | The tags to be assigned to the restored cluster.+    tags :: Prelude.Maybe [Tag],+    -- | A list of virtual private cloud (VPC) security groups that the new+    -- cluster will belong to.+    vpcSecurityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | The name of the cluster to create from the snapshot or cluster snapshot.+    -- This parameter isn\'t case sensitive.+    --+    -- Constraints:+    --+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens.+    --+    -- -   The first character must be a letter.+    --+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.+    --+    -- Example: @my-snapshot-id@+    dbClusterIdentifier :: Prelude.Text,+    -- | The identifier for the snapshot or cluster snapshot to restore from.+    --+    -- You can use either the name or the Amazon Resource Name (ARN) to specify+    -- a cluster snapshot. However, you can use only the ARN to specify a+    -- snapshot.+    --+    -- Constraints:+    --+    -- -   Must match the identifier of an existing snapshot.+    snapshotIdentifier :: Prelude.Text,+    -- | The database engine to use for the new cluster.+    --+    -- Default: The same as source.+    --+    -- Constraint: Must be compatible with the engine of the source.+    engine :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RestoreDBClusterFromSnapshot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'availabilityZones', 'restoreDBClusterFromSnapshot_availabilityZones' - Provides the list of Amazon EC2 Availability Zones that instances in the+-- restored DB cluster can be created in.+--+-- 'dbSubnetGroupName', 'restoreDBClusterFromSnapshot_dbSubnetGroupName' - The name of the subnet group to use for the new cluster.+--+-- Constraints: If provided, must match the name of an existing+-- @DBSubnetGroup@.+--+-- Example: @mySubnetgroup@+--+-- 'deletionProtection', 'restoreDBClusterFromSnapshot_deletionProtection' - Specifies whether this cluster can be deleted. If @DeletionProtection@+-- is enabled, the cluster cannot be deleted unless it is modified and+-- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+-- from being accidentally deleted.+--+-- 'enableCloudwatchLogsExports', 'restoreDBClusterFromSnapshot_enableCloudwatchLogsExports' - A list of log types that must be enabled for exporting to Amazon+-- CloudWatch Logs.+--+-- 'engineVersion', 'restoreDBClusterFromSnapshot_engineVersion' - The version of the database engine to use for the new cluster.+--+-- 'kmsKeyId', 'restoreDBClusterFromSnapshot_kmsKeyId' - The KMS key identifier to use when restoring an encrypted cluster from a+-- DB snapshot or cluster snapshot.+--+-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS+-- encryption key. If you are restoring a cluster with the same Amazon Web+-- Services account that owns the KMS encryption key used to encrypt the+-- new cluster, then you can use the KMS key alias instead of the ARN for+-- the KMS encryption key.+--+-- If you do not specify a value for the @KmsKeyId@ parameter, then the+-- following occurs:+--+-- -   If the snapshot or cluster snapshot in @SnapshotIdentifier@ is+--     encrypted, then the restored cluster is encrypted using the KMS key+--     that was used to encrypt the snapshot or the cluster snapshot.+--+-- -   If the snapshot or the cluster snapshot in @SnapshotIdentifier@ is+--     not encrypted, then the restored DB cluster is not encrypted.+--+-- 'port', 'restoreDBClusterFromSnapshot_port' - The port number on which the new cluster accepts connections.+--+-- Constraints: Must be a value from @1150@ to @65535@.+--+-- Default: The same port as the original cluster.+--+-- 'tags', 'restoreDBClusterFromSnapshot_tags' - The tags to be assigned to the restored cluster.+--+-- 'vpcSecurityGroupIds', 'restoreDBClusterFromSnapshot_vpcSecurityGroupIds' - A list of virtual private cloud (VPC) security groups that the new+-- cluster will belong to.+--+-- 'dbClusterIdentifier', 'restoreDBClusterFromSnapshot_dbClusterIdentifier' - The name of the cluster to create from the snapshot or cluster snapshot.+-- This parameter isn\'t case sensitive.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @my-snapshot-id@+--+-- 'snapshotIdentifier', 'restoreDBClusterFromSnapshot_snapshotIdentifier' - The identifier for the snapshot or cluster snapshot to restore from.+--+-- You can use either the name or the Amazon Resource Name (ARN) to specify+-- a cluster snapshot. However, you can use only the ARN to specify a+-- snapshot.+--+-- Constraints:+--+-- -   Must match the identifier of an existing snapshot.+--+-- 'engine', 'restoreDBClusterFromSnapshot_engine' - The database engine to use for the new cluster.+--+-- Default: The same as source.+--+-- Constraint: Must be compatible with the engine of the source.+newRestoreDBClusterFromSnapshot ::+  -- | 'dbClusterIdentifier'+  Prelude.Text ->+  -- | 'snapshotIdentifier'+  Prelude.Text ->+  -- | 'engine'+  Prelude.Text ->+  RestoreDBClusterFromSnapshot+newRestoreDBClusterFromSnapshot+  pDBClusterIdentifier_+  pSnapshotIdentifier_+  pEngine_ =+    RestoreDBClusterFromSnapshot'+      { availabilityZones =+          Prelude.Nothing,+        dbSubnetGroupName = Prelude.Nothing,+        deletionProtection = Prelude.Nothing,+        enableCloudwatchLogsExports = Prelude.Nothing,+        engineVersion = Prelude.Nothing,+        kmsKeyId = Prelude.Nothing,+        port = Prelude.Nothing,+        tags = Prelude.Nothing,+        vpcSecurityGroupIds = Prelude.Nothing,+        dbClusterIdentifier = pDBClusterIdentifier_,+        snapshotIdentifier = pSnapshotIdentifier_,+        engine = pEngine_+      }++-- | Provides the list of Amazon EC2 Availability Zones that instances in the+-- restored DB cluster can be created in.+restoreDBClusterFromSnapshot_availabilityZones :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe [Prelude.Text])+restoreDBClusterFromSnapshot_availabilityZones = Lens.lens (\RestoreDBClusterFromSnapshot' {availabilityZones} -> availabilityZones) (\s@RestoreDBClusterFromSnapshot' {} a -> s {availabilityZones = a} :: RestoreDBClusterFromSnapshot) Prelude.. Lens.mapping Lens.coerced++-- | The name of the subnet group to use for the new cluster.+--+-- Constraints: If provided, must match the name of an existing+-- @DBSubnetGroup@.+--+-- Example: @mySubnetgroup@+restoreDBClusterFromSnapshot_dbSubnetGroupName :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe Prelude.Text)+restoreDBClusterFromSnapshot_dbSubnetGroupName = Lens.lens (\RestoreDBClusterFromSnapshot' {dbSubnetGroupName} -> dbSubnetGroupName) (\s@RestoreDBClusterFromSnapshot' {} a -> s {dbSubnetGroupName = a} :: RestoreDBClusterFromSnapshot)++-- | Specifies whether this cluster can be deleted. If @DeletionProtection@+-- is enabled, the cluster cannot be deleted unless it is modified and+-- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+-- from being accidentally deleted.+restoreDBClusterFromSnapshot_deletionProtection :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe Prelude.Bool)+restoreDBClusterFromSnapshot_deletionProtection = Lens.lens (\RestoreDBClusterFromSnapshot' {deletionProtection} -> deletionProtection) (\s@RestoreDBClusterFromSnapshot' {} a -> s {deletionProtection = a} :: RestoreDBClusterFromSnapshot)++-- | A list of log types that must be enabled for exporting to Amazon+-- CloudWatch Logs.+restoreDBClusterFromSnapshot_enableCloudwatchLogsExports :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe [Prelude.Text])+restoreDBClusterFromSnapshot_enableCloudwatchLogsExports = Lens.lens (\RestoreDBClusterFromSnapshot' {enableCloudwatchLogsExports} -> enableCloudwatchLogsExports) (\s@RestoreDBClusterFromSnapshot' {} a -> s {enableCloudwatchLogsExports = a} :: RestoreDBClusterFromSnapshot) Prelude.. Lens.mapping Lens.coerced++-- | The version of the database engine to use for the new cluster.+restoreDBClusterFromSnapshot_engineVersion :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe Prelude.Text)+restoreDBClusterFromSnapshot_engineVersion = Lens.lens (\RestoreDBClusterFromSnapshot' {engineVersion} -> engineVersion) (\s@RestoreDBClusterFromSnapshot' {} a -> s {engineVersion = a} :: RestoreDBClusterFromSnapshot)++-- | The KMS key identifier to use when restoring an encrypted cluster from a+-- DB snapshot or cluster snapshot.+--+-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS+-- encryption key. If you are restoring a cluster with the same Amazon Web+-- Services account that owns the KMS encryption key used to encrypt the+-- new cluster, then you can use the KMS key alias instead of the ARN for+-- the KMS encryption key.+--+-- If you do not specify a value for the @KmsKeyId@ parameter, then the+-- following occurs:+--+-- -   If the snapshot or cluster snapshot in @SnapshotIdentifier@ is+--     encrypted, then the restored cluster is encrypted using the KMS key+--     that was used to encrypt the snapshot or the cluster snapshot.+--+-- -   If the snapshot or the cluster snapshot in @SnapshotIdentifier@ is+--     not encrypted, then the restored DB cluster is not encrypted.+restoreDBClusterFromSnapshot_kmsKeyId :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe Prelude.Text)+restoreDBClusterFromSnapshot_kmsKeyId = Lens.lens (\RestoreDBClusterFromSnapshot' {kmsKeyId} -> kmsKeyId) (\s@RestoreDBClusterFromSnapshot' {} a -> s {kmsKeyId = a} :: RestoreDBClusterFromSnapshot)++-- | The port number on which the new cluster accepts connections.+--+-- Constraints: Must be a value from @1150@ to @65535@.+--+-- Default: The same port as the original cluster.+restoreDBClusterFromSnapshot_port :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe Prelude.Int)+restoreDBClusterFromSnapshot_port = Lens.lens (\RestoreDBClusterFromSnapshot' {port} -> port) (\s@RestoreDBClusterFromSnapshot' {} a -> s {port = a} :: RestoreDBClusterFromSnapshot)++-- | The tags to be assigned to the restored cluster.+restoreDBClusterFromSnapshot_tags :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe [Tag])+restoreDBClusterFromSnapshot_tags = Lens.lens (\RestoreDBClusterFromSnapshot' {tags} -> tags) (\s@RestoreDBClusterFromSnapshot' {} a -> s {tags = a} :: RestoreDBClusterFromSnapshot) Prelude.. Lens.mapping Lens.coerced++-- | A list of virtual private cloud (VPC) security groups that the new+-- cluster will belong to.+restoreDBClusterFromSnapshot_vpcSecurityGroupIds :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe [Prelude.Text])+restoreDBClusterFromSnapshot_vpcSecurityGroupIds = Lens.lens (\RestoreDBClusterFromSnapshot' {vpcSecurityGroupIds} -> vpcSecurityGroupIds) (\s@RestoreDBClusterFromSnapshot' {} a -> s {vpcSecurityGroupIds = a} :: RestoreDBClusterFromSnapshot) Prelude.. Lens.mapping Lens.coerced++-- | The name of the cluster to create from the snapshot or cluster snapshot.+-- This parameter isn\'t case sensitive.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- Example: @my-snapshot-id@+restoreDBClusterFromSnapshot_dbClusterIdentifier :: Lens.Lens' RestoreDBClusterFromSnapshot Prelude.Text+restoreDBClusterFromSnapshot_dbClusterIdentifier = Lens.lens (\RestoreDBClusterFromSnapshot' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@RestoreDBClusterFromSnapshot' {} a -> s {dbClusterIdentifier = a} :: RestoreDBClusterFromSnapshot)++-- | The identifier for the snapshot or cluster snapshot to restore from.+--+-- You can use either the name or the Amazon Resource Name (ARN) to specify+-- a cluster snapshot. However, you can use only the ARN to specify a+-- snapshot.+--+-- Constraints:+--+-- -   Must match the identifier of an existing snapshot.+restoreDBClusterFromSnapshot_snapshotIdentifier :: Lens.Lens' RestoreDBClusterFromSnapshot Prelude.Text+restoreDBClusterFromSnapshot_snapshotIdentifier = Lens.lens (\RestoreDBClusterFromSnapshot' {snapshotIdentifier} -> snapshotIdentifier) (\s@RestoreDBClusterFromSnapshot' {} a -> s {snapshotIdentifier = a} :: RestoreDBClusterFromSnapshot)++-- | The database engine to use for the new cluster.+--+-- Default: The same as source.+--+-- Constraint: Must be compatible with the engine of the source.+restoreDBClusterFromSnapshot_engine :: Lens.Lens' RestoreDBClusterFromSnapshot Prelude.Text+restoreDBClusterFromSnapshot_engine = Lens.lens (\RestoreDBClusterFromSnapshot' {engine} -> engine) (\s@RestoreDBClusterFromSnapshot' {} a -> s {engine = a} :: RestoreDBClusterFromSnapshot)++instance Core.AWSRequest RestoreDBClusterFromSnapshot where+  type+    AWSResponse RestoreDBClusterFromSnapshot =+      RestoreDBClusterFromSnapshotResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "RestoreDBClusterFromSnapshotResult"+      ( \s h x ->+          RestoreDBClusterFromSnapshotResponse'+            Prelude.<$> (x Data..@? "DBCluster")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    RestoreDBClusterFromSnapshot+  where+  hashWithSalt _salt RestoreDBClusterFromSnapshot' {..} =+    _salt+      `Prelude.hashWithSalt` availabilityZones+      `Prelude.hashWithSalt` dbSubnetGroupName+      `Prelude.hashWithSalt` deletionProtection+      `Prelude.hashWithSalt` enableCloudwatchLogsExports+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` port+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` vpcSecurityGroupIds+      `Prelude.hashWithSalt` dbClusterIdentifier+      `Prelude.hashWithSalt` snapshotIdentifier+      `Prelude.hashWithSalt` engine++instance Prelude.NFData RestoreDBClusterFromSnapshot where+  rnf RestoreDBClusterFromSnapshot' {..} =+    Prelude.rnf availabilityZones+      `Prelude.seq` Prelude.rnf dbSubnetGroupName+      `Prelude.seq` Prelude.rnf deletionProtection+      `Prelude.seq` Prelude.rnf enableCloudwatchLogsExports+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf port+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vpcSecurityGroupIds+      `Prelude.seq` Prelude.rnf dbClusterIdentifier+      `Prelude.seq` Prelude.rnf snapshotIdentifier+      `Prelude.seq` Prelude.rnf engine++instance Data.ToHeaders RestoreDBClusterFromSnapshot where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath RestoreDBClusterFromSnapshot where+  toPath = Prelude.const "/"++instance Data.ToQuery RestoreDBClusterFromSnapshot where+  toQuery RestoreDBClusterFromSnapshot' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "RestoreDBClusterFromSnapshot" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "AvailabilityZones"+          Data.=: Data.toQuery+            ( Data.toQueryList "AvailabilityZone"+                Prelude.<$> availabilityZones+            ),+        "DBSubnetGroupName" Data.=: dbSubnetGroupName,+        "DeletionProtection" Data.=: deletionProtection,+        "EnableCloudwatchLogsExports"+          Data.=: Data.toQuery+            ( Data.toQueryList "member"+                Prelude.<$> enableCloudwatchLogsExports+            ),+        "EngineVersion" Data.=: engineVersion,+        "KmsKeyId" Data.=: kmsKeyId,+        "Port" Data.=: port,+        "Tags"+          Data.=: Data.toQuery+            (Data.toQueryList "Tag" Prelude.<$> tags),+        "VpcSecurityGroupIds"+          Data.=: Data.toQuery+            ( Data.toQueryList "VpcSecurityGroupId"+                Prelude.<$> vpcSecurityGroupIds+            ),+        "DBClusterIdentifier" Data.=: dbClusterIdentifier,+        "SnapshotIdentifier" Data.=: snapshotIdentifier,+        "Engine" Data.=: engine+      ]++-- | /See:/ 'newRestoreDBClusterFromSnapshotResponse' smart constructor.+data RestoreDBClusterFromSnapshotResponse = RestoreDBClusterFromSnapshotResponse'+  { dbCluster :: Prelude.Maybe DBCluster,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RestoreDBClusterFromSnapshotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbCluster', 'restoreDBClusterFromSnapshotResponse_dbCluster' - Undocumented member.+--+-- 'httpStatus', 'restoreDBClusterFromSnapshotResponse_httpStatus' - The response's http status code.+newRestoreDBClusterFromSnapshotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RestoreDBClusterFromSnapshotResponse+newRestoreDBClusterFromSnapshotResponse pHttpStatus_ =+  RestoreDBClusterFromSnapshotResponse'+    { dbCluster =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+restoreDBClusterFromSnapshotResponse_dbCluster :: Lens.Lens' RestoreDBClusterFromSnapshotResponse (Prelude.Maybe DBCluster)+restoreDBClusterFromSnapshotResponse_dbCluster = Lens.lens (\RestoreDBClusterFromSnapshotResponse' {dbCluster} -> dbCluster) (\s@RestoreDBClusterFromSnapshotResponse' {} a -> s {dbCluster = a} :: RestoreDBClusterFromSnapshotResponse)++-- | The response's http status code.+restoreDBClusterFromSnapshotResponse_httpStatus :: Lens.Lens' RestoreDBClusterFromSnapshotResponse Prelude.Int+restoreDBClusterFromSnapshotResponse_httpStatus = Lens.lens (\RestoreDBClusterFromSnapshotResponse' {httpStatus} -> httpStatus) (\s@RestoreDBClusterFromSnapshotResponse' {} a -> s {httpStatus = a} :: RestoreDBClusterFromSnapshotResponse)++instance+  Prelude.NFData+    RestoreDBClusterFromSnapshotResponse+  where+  rnf RestoreDBClusterFromSnapshotResponse' {..} =+    Prelude.rnf dbCluster+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/RestoreDBClusterToPointInTime.hs view
@@ -0,0 +1,585 @@+{-# 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.DocumentDB.RestoreDBClusterToPointInTime+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Restores a cluster to an arbitrary point in time. Users can restore to+-- any point in time before @LatestRestorableTime@ for up to+-- @BackupRetentionPeriod@ days. The target cluster is created from the+-- source cluster with the same configuration as the original cluster,+-- except that the new cluster is created with the default security group.+module Amazonka.DocumentDB.RestoreDBClusterToPointInTime+  ( -- * Creating a Request+    RestoreDBClusterToPointInTime (..),+    newRestoreDBClusterToPointInTime,++    -- * Request Lenses+    restoreDBClusterToPointInTime_dbSubnetGroupName,+    restoreDBClusterToPointInTime_deletionProtection,+    restoreDBClusterToPointInTime_enableCloudwatchLogsExports,+    restoreDBClusterToPointInTime_kmsKeyId,+    restoreDBClusterToPointInTime_port,+    restoreDBClusterToPointInTime_restoreToTime,+    restoreDBClusterToPointInTime_restoreType,+    restoreDBClusterToPointInTime_tags,+    restoreDBClusterToPointInTime_useLatestRestorableTime,+    restoreDBClusterToPointInTime_vpcSecurityGroupIds,+    restoreDBClusterToPointInTime_dbClusterIdentifier,+    restoreDBClusterToPointInTime_sourceDBClusterIdentifier,++    -- * Destructuring the Response+    RestoreDBClusterToPointInTimeResponse (..),+    newRestoreDBClusterToPointInTimeResponse,++    -- * Response Lenses+    restoreDBClusterToPointInTimeResponse_dbCluster,+    restoreDBClusterToPointInTimeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Represents the input to RestoreDBClusterToPointInTime.+--+-- /See:/ 'newRestoreDBClusterToPointInTime' smart constructor.+data RestoreDBClusterToPointInTime = RestoreDBClusterToPointInTime'+  { -- | The subnet group name to use for the new cluster.+    --+    -- Constraints: If provided, must match the name of an existing+    -- @DBSubnetGroup@.+    --+    -- Example: @mySubnetgroup@+    dbSubnetGroupName :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether this cluster can be deleted. If @DeletionProtection@+    -- is enabled, the cluster cannot be deleted unless it is modified and+    -- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+    -- from being accidentally deleted.+    deletionProtection :: Prelude.Maybe Prelude.Bool,+    -- | A list of log types that must be enabled for exporting to Amazon+    -- CloudWatch Logs.+    enableCloudwatchLogsExports :: Prelude.Maybe [Prelude.Text],+    -- | The KMS key identifier to use when restoring an encrypted cluster from+    -- an encrypted cluster.+    --+    -- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS+    -- encryption key. If you are restoring a cluster with the same Amazon Web+    -- Services account that owns the KMS encryption key used to encrypt the+    -- new cluster, then you can use the KMS key alias instead of the ARN for+    -- the KMS encryption key.+    --+    -- You can restore to a new cluster and encrypt the new cluster with an KMS+    -- key that is different from the KMS key used to encrypt the source+    -- cluster. The new DB cluster is encrypted with the KMS key identified by+    -- the @KmsKeyId@ parameter.+    --+    -- If you do not specify a value for the @KmsKeyId@ parameter, then the+    -- following occurs:+    --+    -- -   If the cluster is encrypted, then the restored cluster is encrypted+    --     using the KMS key that was used to encrypt the source cluster.+    --+    -- -   If the cluster is not encrypted, then the restored cluster is not+    --     encrypted.+    --+    -- If @DBClusterIdentifier@ refers to a cluster that is not encrypted, then+    -- the restore request is rejected.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | The port number on which the new cluster accepts connections.+    --+    -- Constraints: Must be a value from @1150@ to @65535@.+    --+    -- Default: The default port for the engine.+    port :: Prelude.Maybe Prelude.Int,+    -- | The date and time to restore the cluster to.+    --+    -- Valid values: A time in Universal Coordinated Time (UTC) format.+    --+    -- Constraints:+    --+    -- -   Must be before the latest restorable time for the instance.+    --+    -- -   Must be specified if the @UseLatestRestorableTime@ parameter is not+    --     provided.+    --+    -- -   Cannot be specified if the @UseLatestRestorableTime@ parameter is+    --     @true@.+    --+    -- -   Cannot be specified if the @RestoreType@ parameter is+    --     @copy-on-write@.+    --+    -- Example: @2015-03-07T23:45:00Z@+    restoreToTime :: Prelude.Maybe Data.ISO8601,+    -- | The type of restore to be performed. You can specify one of the+    -- following values:+    --+    -- -   @full-copy@ - The new DB cluster is restored as a full copy of the+    --     source DB cluster.+    --+    -- -   @copy-on-write@ - The new DB cluster is restored as a clone of the+    --     source DB cluster.+    --+    -- If you don\'t specify a @RestoreType@ value, then the new DB cluster is+    -- restored as a full copy of the source DB cluster.+    restoreType :: Prelude.Maybe Prelude.Text,+    -- | The tags to be assigned to the restored cluster.+    tags :: Prelude.Maybe [Tag],+    -- | A value that is set to @true@ to restore the cluster to the latest+    -- restorable backup time, and @false@ otherwise.+    --+    -- Default: @false@+    --+    -- Constraints: Cannot be specified if the @RestoreToTime@ parameter is+    -- provided.+    useLatestRestorableTime :: Prelude.Maybe Prelude.Bool,+    -- | A list of VPC security groups that the new cluster belongs to.+    vpcSecurityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | The name of the new cluster to be created.+    --+    -- Constraints:+    --+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens.+    --+    -- -   The first character must be a letter.+    --+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.+    dbClusterIdentifier :: Prelude.Text,+    -- | The identifier of the source cluster from which to restore.+    --+    -- Constraints:+    --+    -- -   Must match the identifier of an existing @DBCluster@.+    sourceDBClusterIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RestoreDBClusterToPointInTime' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbSubnetGroupName', 'restoreDBClusterToPointInTime_dbSubnetGroupName' - The subnet group name to use for the new cluster.+--+-- Constraints: If provided, must match the name of an existing+-- @DBSubnetGroup@.+--+-- Example: @mySubnetgroup@+--+-- 'deletionProtection', 'restoreDBClusterToPointInTime_deletionProtection' - Specifies whether this cluster can be deleted. If @DeletionProtection@+-- is enabled, the cluster cannot be deleted unless it is modified and+-- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+-- from being accidentally deleted.+--+-- 'enableCloudwatchLogsExports', 'restoreDBClusterToPointInTime_enableCloudwatchLogsExports' - A list of log types that must be enabled for exporting to Amazon+-- CloudWatch Logs.+--+-- 'kmsKeyId', 'restoreDBClusterToPointInTime_kmsKeyId' - The KMS key identifier to use when restoring an encrypted cluster from+-- an encrypted cluster.+--+-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS+-- encryption key. If you are restoring a cluster with the same Amazon Web+-- Services account that owns the KMS encryption key used to encrypt the+-- new cluster, then you can use the KMS key alias instead of the ARN for+-- the KMS encryption key.+--+-- You can restore to a new cluster and encrypt the new cluster with an KMS+-- key that is different from the KMS key used to encrypt the source+-- cluster. The new DB cluster is encrypted with the KMS key identified by+-- the @KmsKeyId@ parameter.+--+-- If you do not specify a value for the @KmsKeyId@ parameter, then the+-- following occurs:+--+-- -   If the cluster is encrypted, then the restored cluster is encrypted+--     using the KMS key that was used to encrypt the source cluster.+--+-- -   If the cluster is not encrypted, then the restored cluster is not+--     encrypted.+--+-- If @DBClusterIdentifier@ refers to a cluster that is not encrypted, then+-- the restore request is rejected.+--+-- 'port', 'restoreDBClusterToPointInTime_port' - The port number on which the new cluster accepts connections.+--+-- Constraints: Must be a value from @1150@ to @65535@.+--+-- Default: The default port for the engine.+--+-- 'restoreToTime', 'restoreDBClusterToPointInTime_restoreToTime' - The date and time to restore the cluster to.+--+-- Valid values: A time in Universal Coordinated Time (UTC) format.+--+-- Constraints:+--+-- -   Must be before the latest restorable time for the instance.+--+-- -   Must be specified if the @UseLatestRestorableTime@ parameter is not+--     provided.+--+-- -   Cannot be specified if the @UseLatestRestorableTime@ parameter is+--     @true@.+--+-- -   Cannot be specified if the @RestoreType@ parameter is+--     @copy-on-write@.+--+-- Example: @2015-03-07T23:45:00Z@+--+-- 'restoreType', 'restoreDBClusterToPointInTime_restoreType' - The type of restore to be performed. You can specify one of the+-- following values:+--+-- -   @full-copy@ - The new DB cluster is restored as a full copy of the+--     source DB cluster.+--+-- -   @copy-on-write@ - The new DB cluster is restored as a clone of the+--     source DB cluster.+--+-- If you don\'t specify a @RestoreType@ value, then the new DB cluster is+-- restored as a full copy of the source DB cluster.+--+-- 'tags', 'restoreDBClusterToPointInTime_tags' - The tags to be assigned to the restored cluster.+--+-- 'useLatestRestorableTime', 'restoreDBClusterToPointInTime_useLatestRestorableTime' - A value that is set to @true@ to restore the cluster to the latest+-- restorable backup time, and @false@ otherwise.+--+-- Default: @false@+--+-- Constraints: Cannot be specified if the @RestoreToTime@ parameter is+-- provided.+--+-- 'vpcSecurityGroupIds', 'restoreDBClusterToPointInTime_vpcSecurityGroupIds' - A list of VPC security groups that the new cluster belongs to.+--+-- 'dbClusterIdentifier', 'restoreDBClusterToPointInTime_dbClusterIdentifier' - The name of the new cluster to be created.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- 'sourceDBClusterIdentifier', 'restoreDBClusterToPointInTime_sourceDBClusterIdentifier' - The identifier of the source cluster from which to restore.+--+-- Constraints:+--+-- -   Must match the identifier of an existing @DBCluster@.+newRestoreDBClusterToPointInTime ::+  -- | 'dbClusterIdentifier'+  Prelude.Text ->+  -- | 'sourceDBClusterIdentifier'+  Prelude.Text ->+  RestoreDBClusterToPointInTime+newRestoreDBClusterToPointInTime+  pDBClusterIdentifier_+  pSourceDBClusterIdentifier_ =+    RestoreDBClusterToPointInTime'+      { dbSubnetGroupName =+          Prelude.Nothing,+        deletionProtection = Prelude.Nothing,+        enableCloudwatchLogsExports =+          Prelude.Nothing,+        kmsKeyId = Prelude.Nothing,+        port = Prelude.Nothing,+        restoreToTime = Prelude.Nothing,+        restoreType = Prelude.Nothing,+        tags = Prelude.Nothing,+        useLatestRestorableTime = Prelude.Nothing,+        vpcSecurityGroupIds = Prelude.Nothing,+        dbClusterIdentifier = pDBClusterIdentifier_,+        sourceDBClusterIdentifier =+          pSourceDBClusterIdentifier_+      }++-- | The subnet group name to use for the new cluster.+--+-- Constraints: If provided, must match the name of an existing+-- @DBSubnetGroup@.+--+-- Example: @mySubnetgroup@+restoreDBClusterToPointInTime_dbSubnetGroupName :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe Prelude.Text)+restoreDBClusterToPointInTime_dbSubnetGroupName = Lens.lens (\RestoreDBClusterToPointInTime' {dbSubnetGroupName} -> dbSubnetGroupName) (\s@RestoreDBClusterToPointInTime' {} a -> s {dbSubnetGroupName = a} :: RestoreDBClusterToPointInTime)++-- | Specifies whether this cluster can be deleted. If @DeletionProtection@+-- is enabled, the cluster cannot be deleted unless it is modified and+-- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+-- from being accidentally deleted.+restoreDBClusterToPointInTime_deletionProtection :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe Prelude.Bool)+restoreDBClusterToPointInTime_deletionProtection = Lens.lens (\RestoreDBClusterToPointInTime' {deletionProtection} -> deletionProtection) (\s@RestoreDBClusterToPointInTime' {} a -> s {deletionProtection = a} :: RestoreDBClusterToPointInTime)++-- | A list of log types that must be enabled for exporting to Amazon+-- CloudWatch Logs.+restoreDBClusterToPointInTime_enableCloudwatchLogsExports :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe [Prelude.Text])+restoreDBClusterToPointInTime_enableCloudwatchLogsExports = Lens.lens (\RestoreDBClusterToPointInTime' {enableCloudwatchLogsExports} -> enableCloudwatchLogsExports) (\s@RestoreDBClusterToPointInTime' {} a -> s {enableCloudwatchLogsExports = a} :: RestoreDBClusterToPointInTime) Prelude.. Lens.mapping Lens.coerced++-- | The KMS key identifier to use when restoring an encrypted cluster from+-- an encrypted cluster.+--+-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS+-- encryption key. If you are restoring a cluster with the same Amazon Web+-- Services account that owns the KMS encryption key used to encrypt the+-- new cluster, then you can use the KMS key alias instead of the ARN for+-- the KMS encryption key.+--+-- You can restore to a new cluster and encrypt the new cluster with an KMS+-- key that is different from the KMS key used to encrypt the source+-- cluster. The new DB cluster is encrypted with the KMS key identified by+-- the @KmsKeyId@ parameter.+--+-- If you do not specify a value for the @KmsKeyId@ parameter, then the+-- following occurs:+--+-- -   If the cluster is encrypted, then the restored cluster is encrypted+--     using the KMS key that was used to encrypt the source cluster.+--+-- -   If the cluster is not encrypted, then the restored cluster is not+--     encrypted.+--+-- If @DBClusterIdentifier@ refers to a cluster that is not encrypted, then+-- the restore request is rejected.+restoreDBClusterToPointInTime_kmsKeyId :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe Prelude.Text)+restoreDBClusterToPointInTime_kmsKeyId = Lens.lens (\RestoreDBClusterToPointInTime' {kmsKeyId} -> kmsKeyId) (\s@RestoreDBClusterToPointInTime' {} a -> s {kmsKeyId = a} :: RestoreDBClusterToPointInTime)++-- | The port number on which the new cluster accepts connections.+--+-- Constraints: Must be a value from @1150@ to @65535@.+--+-- Default: The default port for the engine.+restoreDBClusterToPointInTime_port :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe Prelude.Int)+restoreDBClusterToPointInTime_port = Lens.lens (\RestoreDBClusterToPointInTime' {port} -> port) (\s@RestoreDBClusterToPointInTime' {} a -> s {port = a} :: RestoreDBClusterToPointInTime)++-- | The date and time to restore the cluster to.+--+-- Valid values: A time in Universal Coordinated Time (UTC) format.+--+-- Constraints:+--+-- -   Must be before the latest restorable time for the instance.+--+-- -   Must be specified if the @UseLatestRestorableTime@ parameter is not+--     provided.+--+-- -   Cannot be specified if the @UseLatestRestorableTime@ parameter is+--     @true@.+--+-- -   Cannot be specified if the @RestoreType@ parameter is+--     @copy-on-write@.+--+-- Example: @2015-03-07T23:45:00Z@+restoreDBClusterToPointInTime_restoreToTime :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe Prelude.UTCTime)+restoreDBClusterToPointInTime_restoreToTime = Lens.lens (\RestoreDBClusterToPointInTime' {restoreToTime} -> restoreToTime) (\s@RestoreDBClusterToPointInTime' {} a -> s {restoreToTime = a} :: RestoreDBClusterToPointInTime) Prelude.. Lens.mapping Data._Time++-- | The type of restore to be performed. You can specify one of the+-- following values:+--+-- -   @full-copy@ - The new DB cluster is restored as a full copy of the+--     source DB cluster.+--+-- -   @copy-on-write@ - The new DB cluster is restored as a clone of the+--     source DB cluster.+--+-- If you don\'t specify a @RestoreType@ value, then the new DB cluster is+-- restored as a full copy of the source DB cluster.+restoreDBClusterToPointInTime_restoreType :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe Prelude.Text)+restoreDBClusterToPointInTime_restoreType = Lens.lens (\RestoreDBClusterToPointInTime' {restoreType} -> restoreType) (\s@RestoreDBClusterToPointInTime' {} a -> s {restoreType = a} :: RestoreDBClusterToPointInTime)++-- | The tags to be assigned to the restored cluster.+restoreDBClusterToPointInTime_tags :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe [Tag])+restoreDBClusterToPointInTime_tags = Lens.lens (\RestoreDBClusterToPointInTime' {tags} -> tags) (\s@RestoreDBClusterToPointInTime' {} a -> s {tags = a} :: RestoreDBClusterToPointInTime) Prelude.. Lens.mapping Lens.coerced++-- | A value that is set to @true@ to restore the cluster to the latest+-- restorable backup time, and @false@ otherwise.+--+-- Default: @false@+--+-- Constraints: Cannot be specified if the @RestoreToTime@ parameter is+-- provided.+restoreDBClusterToPointInTime_useLatestRestorableTime :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe Prelude.Bool)+restoreDBClusterToPointInTime_useLatestRestorableTime = Lens.lens (\RestoreDBClusterToPointInTime' {useLatestRestorableTime} -> useLatestRestorableTime) (\s@RestoreDBClusterToPointInTime' {} a -> s {useLatestRestorableTime = a} :: RestoreDBClusterToPointInTime)++-- | A list of VPC security groups that the new cluster belongs to.+restoreDBClusterToPointInTime_vpcSecurityGroupIds :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe [Prelude.Text])+restoreDBClusterToPointInTime_vpcSecurityGroupIds = Lens.lens (\RestoreDBClusterToPointInTime' {vpcSecurityGroupIds} -> vpcSecurityGroupIds) (\s@RestoreDBClusterToPointInTime' {} a -> s {vpcSecurityGroupIds = a} :: RestoreDBClusterToPointInTime) Prelude.. Lens.mapping Lens.coerced++-- | The name of the new cluster to be created.+--+-- Constraints:+--+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+restoreDBClusterToPointInTime_dbClusterIdentifier :: Lens.Lens' RestoreDBClusterToPointInTime Prelude.Text+restoreDBClusterToPointInTime_dbClusterIdentifier = Lens.lens (\RestoreDBClusterToPointInTime' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@RestoreDBClusterToPointInTime' {} a -> s {dbClusterIdentifier = a} :: RestoreDBClusterToPointInTime)++-- | The identifier of the source cluster from which to restore.+--+-- Constraints:+--+-- -   Must match the identifier of an existing @DBCluster@.+restoreDBClusterToPointInTime_sourceDBClusterIdentifier :: Lens.Lens' RestoreDBClusterToPointInTime Prelude.Text+restoreDBClusterToPointInTime_sourceDBClusterIdentifier = Lens.lens (\RestoreDBClusterToPointInTime' {sourceDBClusterIdentifier} -> sourceDBClusterIdentifier) (\s@RestoreDBClusterToPointInTime' {} a -> s {sourceDBClusterIdentifier = a} :: RestoreDBClusterToPointInTime)++instance+  Core.AWSRequest+    RestoreDBClusterToPointInTime+  where+  type+    AWSResponse RestoreDBClusterToPointInTime =+      RestoreDBClusterToPointInTimeResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "RestoreDBClusterToPointInTimeResult"+      ( \s h x ->+          RestoreDBClusterToPointInTimeResponse'+            Prelude.<$> (x Data..@? "DBCluster")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    RestoreDBClusterToPointInTime+  where+  hashWithSalt _salt RestoreDBClusterToPointInTime' {..} =+    _salt+      `Prelude.hashWithSalt` dbSubnetGroupName+      `Prelude.hashWithSalt` deletionProtection+      `Prelude.hashWithSalt` enableCloudwatchLogsExports+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` port+      `Prelude.hashWithSalt` restoreToTime+      `Prelude.hashWithSalt` restoreType+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` useLatestRestorableTime+      `Prelude.hashWithSalt` vpcSecurityGroupIds+      `Prelude.hashWithSalt` dbClusterIdentifier+      `Prelude.hashWithSalt` sourceDBClusterIdentifier++instance Prelude.NFData RestoreDBClusterToPointInTime where+  rnf RestoreDBClusterToPointInTime' {..} =+    Prelude.rnf dbSubnetGroupName+      `Prelude.seq` Prelude.rnf deletionProtection+      `Prelude.seq` Prelude.rnf enableCloudwatchLogsExports+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf port+      `Prelude.seq` Prelude.rnf restoreToTime+      `Prelude.seq` Prelude.rnf restoreType+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf useLatestRestorableTime+      `Prelude.seq` Prelude.rnf vpcSecurityGroupIds+      `Prelude.seq` Prelude.rnf dbClusterIdentifier+      `Prelude.seq` Prelude.rnf sourceDBClusterIdentifier++instance Data.ToHeaders RestoreDBClusterToPointInTime where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath RestoreDBClusterToPointInTime where+  toPath = Prelude.const "/"++instance Data.ToQuery RestoreDBClusterToPointInTime where+  toQuery RestoreDBClusterToPointInTime' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ( "RestoreDBClusterToPointInTime" ::+                      Prelude.ByteString+                  ),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBSubnetGroupName" Data.=: dbSubnetGroupName,+        "DeletionProtection" Data.=: deletionProtection,+        "EnableCloudwatchLogsExports"+          Data.=: Data.toQuery+            ( Data.toQueryList "member"+                Prelude.<$> enableCloudwatchLogsExports+            ),+        "KmsKeyId" Data.=: kmsKeyId,+        "Port" Data.=: port,+        "RestoreToTime" Data.=: restoreToTime,+        "RestoreType" Data.=: restoreType,+        "Tags"+          Data.=: Data.toQuery+            (Data.toQueryList "Tag" Prelude.<$> tags),+        "UseLatestRestorableTime"+          Data.=: useLatestRestorableTime,+        "VpcSecurityGroupIds"+          Data.=: Data.toQuery+            ( Data.toQueryList "VpcSecurityGroupId"+                Prelude.<$> vpcSecurityGroupIds+            ),+        "DBClusterIdentifier" Data.=: dbClusterIdentifier,+        "SourceDBClusterIdentifier"+          Data.=: sourceDBClusterIdentifier+      ]++-- | /See:/ 'newRestoreDBClusterToPointInTimeResponse' smart constructor.+data RestoreDBClusterToPointInTimeResponse = RestoreDBClusterToPointInTimeResponse'+  { dbCluster :: Prelude.Maybe DBCluster,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RestoreDBClusterToPointInTimeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbCluster', 'restoreDBClusterToPointInTimeResponse_dbCluster' - Undocumented member.+--+-- 'httpStatus', 'restoreDBClusterToPointInTimeResponse_httpStatus' - The response's http status code.+newRestoreDBClusterToPointInTimeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RestoreDBClusterToPointInTimeResponse+newRestoreDBClusterToPointInTimeResponse pHttpStatus_ =+  RestoreDBClusterToPointInTimeResponse'+    { dbCluster =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+restoreDBClusterToPointInTimeResponse_dbCluster :: Lens.Lens' RestoreDBClusterToPointInTimeResponse (Prelude.Maybe DBCluster)+restoreDBClusterToPointInTimeResponse_dbCluster = Lens.lens (\RestoreDBClusterToPointInTimeResponse' {dbCluster} -> dbCluster) (\s@RestoreDBClusterToPointInTimeResponse' {} a -> s {dbCluster = a} :: RestoreDBClusterToPointInTimeResponse)++-- | The response's http status code.+restoreDBClusterToPointInTimeResponse_httpStatus :: Lens.Lens' RestoreDBClusterToPointInTimeResponse Prelude.Int+restoreDBClusterToPointInTimeResponse_httpStatus = Lens.lens (\RestoreDBClusterToPointInTimeResponse' {httpStatus} -> httpStatus) (\s@RestoreDBClusterToPointInTimeResponse' {} a -> s {httpStatus = a} :: RestoreDBClusterToPointInTimeResponse)++instance+  Prelude.NFData+    RestoreDBClusterToPointInTimeResponse+  where+  rnf RestoreDBClusterToPointInTimeResponse' {..} =+    Prelude.rnf dbCluster+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/StartDBCluster.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.DocumentDB.StartDBCluster+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Restarts the stopped cluster that is specified by @DBClusterIdentifier@.+-- For more information, see+-- <https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-stop-start.html Stopping and Starting an Amazon DocumentDB Cluster>.+module Amazonka.DocumentDB.StartDBCluster+  ( -- * Creating a Request+    StartDBCluster (..),+    newStartDBCluster,++    -- * Request Lenses+    startDBCluster_dbClusterIdentifier,++    -- * Destructuring the Response+    StartDBClusterResponse (..),+    newStartDBClusterResponse,++    -- * Response Lenses+    startDBClusterResponse_dbCluster,+    startDBClusterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartDBCluster' smart constructor.+data StartDBCluster = StartDBCluster'+  { -- | The identifier of the cluster to restart. Example:+    -- @docdb-2019-05-28-15-24-52@+    dbClusterIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartDBCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterIdentifier', 'startDBCluster_dbClusterIdentifier' - The identifier of the cluster to restart. Example:+-- @docdb-2019-05-28-15-24-52@+newStartDBCluster ::+  -- | 'dbClusterIdentifier'+  Prelude.Text ->+  StartDBCluster+newStartDBCluster pDBClusterIdentifier_ =+  StartDBCluster'+    { dbClusterIdentifier =+        pDBClusterIdentifier_+    }++-- | The identifier of the cluster to restart. Example:+-- @docdb-2019-05-28-15-24-52@+startDBCluster_dbClusterIdentifier :: Lens.Lens' StartDBCluster Prelude.Text+startDBCluster_dbClusterIdentifier = Lens.lens (\StartDBCluster' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@StartDBCluster' {} a -> s {dbClusterIdentifier = a} :: StartDBCluster)++instance Core.AWSRequest StartDBCluster where+  type+    AWSResponse StartDBCluster =+      StartDBClusterResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "StartDBClusterResult"+      ( \s h x ->+          StartDBClusterResponse'+            Prelude.<$> (x Data..@? "DBCluster")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartDBCluster where+  hashWithSalt _salt StartDBCluster' {..} =+    _salt `Prelude.hashWithSalt` dbClusterIdentifier++instance Prelude.NFData StartDBCluster where+  rnf StartDBCluster' {..} =+    Prelude.rnf dbClusterIdentifier++instance Data.ToHeaders StartDBCluster where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath StartDBCluster where+  toPath = Prelude.const "/"++instance Data.ToQuery StartDBCluster where+  toQuery StartDBCluster' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("StartDBCluster" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBClusterIdentifier" Data.=: dbClusterIdentifier+      ]++-- | /See:/ 'newStartDBClusterResponse' smart constructor.+data StartDBClusterResponse = StartDBClusterResponse'+  { dbCluster :: Prelude.Maybe DBCluster,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartDBClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbCluster', 'startDBClusterResponse_dbCluster' - Undocumented member.+--+-- 'httpStatus', 'startDBClusterResponse_httpStatus' - The response's http status code.+newStartDBClusterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartDBClusterResponse+newStartDBClusterResponse pHttpStatus_ =+  StartDBClusterResponse'+    { dbCluster =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+startDBClusterResponse_dbCluster :: Lens.Lens' StartDBClusterResponse (Prelude.Maybe DBCluster)+startDBClusterResponse_dbCluster = Lens.lens (\StartDBClusterResponse' {dbCluster} -> dbCluster) (\s@StartDBClusterResponse' {} a -> s {dbCluster = a} :: StartDBClusterResponse)++-- | The response's http status code.+startDBClusterResponse_httpStatus :: Lens.Lens' StartDBClusterResponse Prelude.Int+startDBClusterResponse_httpStatus = Lens.lens (\StartDBClusterResponse' {httpStatus} -> httpStatus) (\s@StartDBClusterResponse' {} a -> s {httpStatus = a} :: StartDBClusterResponse)++instance Prelude.NFData StartDBClusterResponse where+  rnf StartDBClusterResponse' {..} =+    Prelude.rnf dbCluster+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/StopDBCluster.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.DocumentDB.StopDBCluster+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stops the running cluster that is specified by @DBClusterIdentifier@.+-- The cluster must be in the /available/ state. For more information, see+-- <https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-stop-start.html Stopping and Starting an Amazon DocumentDB Cluster>.+module Amazonka.DocumentDB.StopDBCluster+  ( -- * Creating a Request+    StopDBCluster (..),+    newStopDBCluster,++    -- * Request Lenses+    stopDBCluster_dbClusterIdentifier,++    -- * Destructuring the Response+    StopDBClusterResponse (..),+    newStopDBClusterResponse,++    -- * Response Lenses+    stopDBClusterResponse_dbCluster,+    stopDBClusterResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStopDBCluster' smart constructor.+data StopDBCluster = StopDBCluster'+  { -- | The identifier of the cluster to stop. Example:+    -- @docdb-2019-05-28-15-24-52@+    dbClusterIdentifier :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopDBCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterIdentifier', 'stopDBCluster_dbClusterIdentifier' - The identifier of the cluster to stop. Example:+-- @docdb-2019-05-28-15-24-52@+newStopDBCluster ::+  -- | 'dbClusterIdentifier'+  Prelude.Text ->+  StopDBCluster+newStopDBCluster pDBClusterIdentifier_ =+  StopDBCluster'+    { dbClusterIdentifier =+        pDBClusterIdentifier_+    }++-- | The identifier of the cluster to stop. Example:+-- @docdb-2019-05-28-15-24-52@+stopDBCluster_dbClusterIdentifier :: Lens.Lens' StopDBCluster Prelude.Text+stopDBCluster_dbClusterIdentifier = Lens.lens (\StopDBCluster' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@StopDBCluster' {} a -> s {dbClusterIdentifier = a} :: StopDBCluster)++instance Core.AWSRequest StopDBCluster where+  type+    AWSResponse StopDBCluster =+      StopDBClusterResponse+  request overrides =+    Request.postQuery (overrides defaultService)+  response =+    Response.receiveXMLWrapper+      "StopDBClusterResult"+      ( \s h x ->+          StopDBClusterResponse'+            Prelude.<$> (x Data..@? "DBCluster")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StopDBCluster where+  hashWithSalt _salt StopDBCluster' {..} =+    _salt `Prelude.hashWithSalt` dbClusterIdentifier++instance Prelude.NFData StopDBCluster where+  rnf StopDBCluster' {..} =+    Prelude.rnf dbClusterIdentifier++instance Data.ToHeaders StopDBCluster where+  toHeaders = Prelude.const Prelude.mempty++instance Data.ToPath StopDBCluster where+  toPath = Prelude.const "/"++instance Data.ToQuery StopDBCluster where+  toQuery StopDBCluster' {..} =+    Prelude.mconcat+      [ "Action"+          Data.=: ("StopDBCluster" :: Prelude.ByteString),+        "Version"+          Data.=: ("2014-10-31" :: Prelude.ByteString),+        "DBClusterIdentifier" Data.=: dbClusterIdentifier+      ]++-- | /See:/ 'newStopDBClusterResponse' smart constructor.+data StopDBClusterResponse = StopDBClusterResponse'+  { dbCluster :: Prelude.Maybe DBCluster,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopDBClusterResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbCluster', 'stopDBClusterResponse_dbCluster' - Undocumented member.+--+-- 'httpStatus', 'stopDBClusterResponse_httpStatus' - The response's http status code.+newStopDBClusterResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StopDBClusterResponse+newStopDBClusterResponse pHttpStatus_ =+  StopDBClusterResponse'+    { dbCluster = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+stopDBClusterResponse_dbCluster :: Lens.Lens' StopDBClusterResponse (Prelude.Maybe DBCluster)+stopDBClusterResponse_dbCluster = Lens.lens (\StopDBClusterResponse' {dbCluster} -> dbCluster) (\s@StopDBClusterResponse' {} a -> s {dbCluster = a} :: StopDBClusterResponse)++-- | The response's http status code.+stopDBClusterResponse_httpStatus :: Lens.Lens' StopDBClusterResponse Prelude.Int+stopDBClusterResponse_httpStatus = Lens.lens (\StopDBClusterResponse' {httpStatus} -> httpStatus) (\s@StopDBClusterResponse' {} a -> s {httpStatus = a} :: StopDBClusterResponse)++instance Prelude.NFData StopDBClusterResponse where+  rnf StopDBClusterResponse' {..} =+    Prelude.rnf dbCluster+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DocumentDB/Types.hs view
@@ -0,0 +1,1022 @@+{-# 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.DocumentDB.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.DocumentDB.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AuthorizationNotFoundFault,+    _CertificateNotFoundFault,+    _DBClusterAlreadyExistsFault,+    _DBClusterNotFoundFault,+    _DBClusterParameterGroupNotFoundFault,+    _DBClusterQuotaExceededFault,+    _DBClusterSnapshotAlreadyExistsFault,+    _DBClusterSnapshotNotFoundFault,+    _DBInstanceAlreadyExistsFault,+    _DBInstanceNotFoundFault,+    _DBParameterGroupAlreadyExistsFault,+    _DBParameterGroupNotFoundFault,+    _DBParameterGroupQuotaExceededFault,+    _DBSecurityGroupNotFoundFault,+    _DBSnapshotAlreadyExistsFault,+    _DBSnapshotNotFoundFault,+    _DBSubnetGroupAlreadyExistsFault,+    _DBSubnetGroupDoesNotCoverEnoughAZs,+    _DBSubnetGroupNotFoundFault,+    _DBSubnetGroupQuotaExceededFault,+    _DBSubnetQuotaExceededFault,+    _DBUpgradeDependencyFailureFault,+    _EventSubscriptionQuotaExceededFault,+    _GlobalClusterAlreadyExistsFault,+    _GlobalClusterNotFoundFault,+    _GlobalClusterQuotaExceededFault,+    _InstanceQuotaExceededFault,+    _InsufficientDBClusterCapacityFault,+    _InsufficientDBInstanceCapacityFault,+    _InsufficientStorageClusterCapacityFault,+    _InvalidDBClusterSnapshotStateFault,+    _InvalidDBClusterStateFault,+    _InvalidDBInstanceStateFault,+    _InvalidDBParameterGroupStateFault,+    _InvalidDBSecurityGroupStateFault,+    _InvalidDBSnapshotStateFault,+    _InvalidDBSubnetGroupStateFault,+    _InvalidDBSubnetStateFault,+    _InvalidEventSubscriptionStateFault,+    _InvalidGlobalClusterStateFault,+    _InvalidRestoreFault,+    _InvalidSubnet,+    _InvalidVPCNetworkStateFault,+    _KMSKeyNotAccessibleFault,+    _ResourceNotFoundFault,+    _SNSInvalidTopicFault,+    _SNSNoAuthorizationFault,+    _SNSTopicArnNotFoundFault,+    _SharedSnapshotQuotaExceededFault,+    _SnapshotQuotaExceededFault,+    _SourceNotFoundFault,+    _StorageQuotaExceededFault,+    _StorageTypeNotSupportedFault,+    _SubnetAlreadyInUse,+    _SubscriptionAlreadyExistFault,+    _SubscriptionCategoryNotFoundFault,+    _SubscriptionNotFoundFault,++    -- * ApplyMethod+    ApplyMethod (..),++    -- * SourceType+    SourceType (..),++    -- * AvailabilityZone+    AvailabilityZone (..),+    newAvailabilityZone,+    availabilityZone_name,++    -- * Certificate+    Certificate (..),+    newCertificate,+    certificate_certificateArn,+    certificate_certificateIdentifier,+    certificate_certificateType,+    certificate_thumbprint,+    certificate_validFrom,+    certificate_validTill,++    -- * CloudwatchLogsExportConfiguration+    CloudwatchLogsExportConfiguration (..),+    newCloudwatchLogsExportConfiguration,+    cloudwatchLogsExportConfiguration_disableLogTypes,+    cloudwatchLogsExportConfiguration_enableLogTypes,++    -- * DBCluster+    DBCluster (..),+    newDBCluster,+    dbCluster_associatedRoles,+    dbCluster_availabilityZones,+    dbCluster_backupRetentionPeriod,+    dbCluster_cloneGroupId,+    dbCluster_clusterCreateTime,+    dbCluster_dbClusterArn,+    dbCluster_dbClusterIdentifier,+    dbCluster_dbClusterMembers,+    dbCluster_dbClusterParameterGroup,+    dbCluster_dbSubnetGroup,+    dbCluster_dbClusterResourceId,+    dbCluster_deletionProtection,+    dbCluster_earliestRestorableTime,+    dbCluster_enabledCloudwatchLogsExports,+    dbCluster_endpoint,+    dbCluster_engine,+    dbCluster_engineVersion,+    dbCluster_hostedZoneId,+    dbCluster_kmsKeyId,+    dbCluster_latestRestorableTime,+    dbCluster_masterUsername,+    dbCluster_multiAZ,+    dbCluster_percentProgress,+    dbCluster_port,+    dbCluster_preferredBackupWindow,+    dbCluster_preferredMaintenanceWindow,+    dbCluster_readReplicaIdentifiers,+    dbCluster_readerEndpoint,+    dbCluster_replicationSourceIdentifier,+    dbCluster_status,+    dbCluster_storageEncrypted,+    dbCluster_vpcSecurityGroups,++    -- * DBClusterMember+    DBClusterMember (..),+    newDBClusterMember,+    dbClusterMember_dbClusterParameterGroupStatus,+    dbClusterMember_dbInstanceIdentifier,+    dbClusterMember_isClusterWriter,+    dbClusterMember_promotionTier,++    -- * DBClusterParameterGroup+    DBClusterParameterGroup (..),+    newDBClusterParameterGroup,+    dbClusterParameterGroup_dbClusterParameterGroupArn,+    dbClusterParameterGroup_dbClusterParameterGroupName,+    dbClusterParameterGroup_dbParameterGroupFamily,+    dbClusterParameterGroup_description,++    -- * DBClusterParameterGroupNameMessage+    DBClusterParameterGroupNameMessage (..),+    newDBClusterParameterGroupNameMessage,+    dbClusterParameterGroupNameMessage_dbClusterParameterGroupName,++    -- * DBClusterRole+    DBClusterRole (..),+    newDBClusterRole,+    dbClusterRole_roleArn,+    dbClusterRole_status,++    -- * DBClusterSnapshot+    DBClusterSnapshot (..),+    newDBClusterSnapshot,+    dbClusterSnapshot_availabilityZones,+    dbClusterSnapshot_clusterCreateTime,+    dbClusterSnapshot_dbClusterIdentifier,+    dbClusterSnapshot_dbClusterSnapshotArn,+    dbClusterSnapshot_dbClusterSnapshotIdentifier,+    dbClusterSnapshot_engine,+    dbClusterSnapshot_engineVersion,+    dbClusterSnapshot_kmsKeyId,+    dbClusterSnapshot_masterUsername,+    dbClusterSnapshot_percentProgress,+    dbClusterSnapshot_port,+    dbClusterSnapshot_snapshotCreateTime,+    dbClusterSnapshot_snapshotType,+    dbClusterSnapshot_sourceDBClusterSnapshotArn,+    dbClusterSnapshot_status,+    dbClusterSnapshot_storageEncrypted,+    dbClusterSnapshot_vpcId,++    -- * DBClusterSnapshotAttribute+    DBClusterSnapshotAttribute (..),+    newDBClusterSnapshotAttribute,+    dbClusterSnapshotAttribute_attributeName,+    dbClusterSnapshotAttribute_attributeValues,++    -- * DBClusterSnapshotAttributesResult+    DBClusterSnapshotAttributesResult (..),+    newDBClusterSnapshotAttributesResult,+    dbClusterSnapshotAttributesResult_dbClusterSnapshotAttributes,+    dbClusterSnapshotAttributesResult_dbClusterSnapshotIdentifier,++    -- * DBEngineVersion+    DBEngineVersion (..),+    newDBEngineVersion,+    dbEngineVersion_dbEngineDescription,+    dbEngineVersion_dbEngineVersionDescription,+    dbEngineVersion_dbParameterGroupFamily,+    dbEngineVersion_engine,+    dbEngineVersion_engineVersion,+    dbEngineVersion_exportableLogTypes,+    dbEngineVersion_supportsLogExportsToCloudwatchLogs,+    dbEngineVersion_validUpgradeTarget,++    -- * DBInstance+    DBInstance (..),+    newDBInstance,+    dbInstance_autoMinorVersionUpgrade,+    dbInstance_availabilityZone,+    dbInstance_backupRetentionPeriod,+    dbInstance_cACertificateIdentifier,+    dbInstance_copyTagsToSnapshot,+    dbInstance_dbClusterIdentifier,+    dbInstance_dbInstanceArn,+    dbInstance_dbInstanceClass,+    dbInstance_dbInstanceIdentifier,+    dbInstance_dbInstanceStatus,+    dbInstance_dbSubnetGroup,+    dbInstance_dbiResourceId,+    dbInstance_enabledCloudwatchLogsExports,+    dbInstance_endpoint,+    dbInstance_engine,+    dbInstance_engineVersion,+    dbInstance_instanceCreateTime,+    dbInstance_kmsKeyId,+    dbInstance_latestRestorableTime,+    dbInstance_pendingModifiedValues,+    dbInstance_preferredBackupWindow,+    dbInstance_preferredMaintenanceWindow,+    dbInstance_promotionTier,+    dbInstance_publiclyAccessible,+    dbInstance_statusInfos,+    dbInstance_storageEncrypted,+    dbInstance_vpcSecurityGroups,++    -- * DBInstanceStatusInfo+    DBInstanceStatusInfo (..),+    newDBInstanceStatusInfo,+    dbInstanceStatusInfo_message,+    dbInstanceStatusInfo_normal,+    dbInstanceStatusInfo_status,+    dbInstanceStatusInfo_statusType,++    -- * DBSubnetGroup+    DBSubnetGroup (..),+    newDBSubnetGroup,+    dbSubnetGroup_dbSubnetGroupArn,+    dbSubnetGroup_dbSubnetGroupDescription,+    dbSubnetGroup_dbSubnetGroupName,+    dbSubnetGroup_subnetGroupStatus,+    dbSubnetGroup_subnets,+    dbSubnetGroup_vpcId,++    -- * Endpoint+    Endpoint (..),+    newEndpoint,+    endpoint_address,+    endpoint_hostedZoneId,+    endpoint_port,++    -- * EngineDefaults+    EngineDefaults (..),+    newEngineDefaults,+    engineDefaults_dbParameterGroupFamily,+    engineDefaults_marker,+    engineDefaults_parameters,++    -- * Event+    Event (..),+    newEvent,+    event_date,+    event_eventCategories,+    event_message,+    event_sourceArn,+    event_sourceIdentifier,+    event_sourceType,++    -- * EventCategoriesMap+    EventCategoriesMap (..),+    newEventCategoriesMap,+    eventCategoriesMap_eventCategories,+    eventCategoriesMap_sourceType,++    -- * EventSubscription+    EventSubscription (..),+    newEventSubscription,+    eventSubscription_custSubscriptionId,+    eventSubscription_customerAwsId,+    eventSubscription_enabled,+    eventSubscription_eventCategoriesList,+    eventSubscription_eventSubscriptionArn,+    eventSubscription_snsTopicArn,+    eventSubscription_sourceIdsList,+    eventSubscription_sourceType,+    eventSubscription_status,+    eventSubscription_subscriptionCreationTime,++    -- * Filter+    Filter (..),+    newFilter,+    filter_name,+    filter_values,++    -- * GlobalCluster+    GlobalCluster (..),+    newGlobalCluster,+    globalCluster_databaseName,+    globalCluster_deletionProtection,+    globalCluster_engine,+    globalCluster_engineVersion,+    globalCluster_globalClusterArn,+    globalCluster_globalClusterIdentifier,+    globalCluster_globalClusterMembers,+    globalCluster_globalClusterResourceId,+    globalCluster_status,+    globalCluster_storageEncrypted,++    -- * GlobalClusterMember+    GlobalClusterMember (..),+    newGlobalClusterMember,+    globalClusterMember_dbClusterArn,+    globalClusterMember_isWriter,+    globalClusterMember_readers,++    -- * OrderableDBInstanceOption+    OrderableDBInstanceOption (..),+    newOrderableDBInstanceOption,+    orderableDBInstanceOption_availabilityZones,+    orderableDBInstanceOption_dbInstanceClass,+    orderableDBInstanceOption_engine,+    orderableDBInstanceOption_engineVersion,+    orderableDBInstanceOption_licenseModel,+    orderableDBInstanceOption_vpc,++    -- * Parameter+    Parameter (..),+    newParameter,+    parameter_allowedValues,+    parameter_applyMethod,+    parameter_applyType,+    parameter_dataType,+    parameter_description,+    parameter_isModifiable,+    parameter_minimumEngineVersion,+    parameter_parameterName,+    parameter_parameterValue,+    parameter_source,++    -- * PendingCloudwatchLogsExports+    PendingCloudwatchLogsExports (..),+    newPendingCloudwatchLogsExports,+    pendingCloudwatchLogsExports_logTypesToDisable,+    pendingCloudwatchLogsExports_logTypesToEnable,++    -- * PendingMaintenanceAction+    PendingMaintenanceAction (..),+    newPendingMaintenanceAction,+    pendingMaintenanceAction_action,+    pendingMaintenanceAction_autoAppliedAfterDate,+    pendingMaintenanceAction_currentApplyDate,+    pendingMaintenanceAction_description,+    pendingMaintenanceAction_forcedApplyDate,+    pendingMaintenanceAction_optInStatus,++    -- * PendingModifiedValues+    PendingModifiedValues (..),+    newPendingModifiedValues,+    pendingModifiedValues_allocatedStorage,+    pendingModifiedValues_backupRetentionPeriod,+    pendingModifiedValues_cACertificateIdentifier,+    pendingModifiedValues_dbInstanceClass,+    pendingModifiedValues_dbInstanceIdentifier,+    pendingModifiedValues_dbSubnetGroupName,+    pendingModifiedValues_engineVersion,+    pendingModifiedValues_iops,+    pendingModifiedValues_licenseModel,+    pendingModifiedValues_masterUserPassword,+    pendingModifiedValues_multiAZ,+    pendingModifiedValues_pendingCloudwatchLogsExports,+    pendingModifiedValues_port,+    pendingModifiedValues_storageType,++    -- * ResourcePendingMaintenanceActions+    ResourcePendingMaintenanceActions (..),+    newResourcePendingMaintenanceActions,+    resourcePendingMaintenanceActions_pendingMaintenanceActionDetails,+    resourcePendingMaintenanceActions_resourceIdentifier,++    -- * Subnet+    Subnet (..),+    newSubnet,+    subnet_subnetAvailabilityZone,+    subnet_subnetIdentifier,+    subnet_subnetStatus,++    -- * Tag+    Tag (..),+    newTag,+    tag_key,+    tag_value,++    -- * UpgradeTarget+    UpgradeTarget (..),+    newUpgradeTarget,+    upgradeTarget_autoUpgrade,+    upgradeTarget_description,+    upgradeTarget_engine,+    upgradeTarget_engineVersion,+    upgradeTarget_isMajorVersionUpgrade,++    -- * VpcSecurityGroupMembership+    VpcSecurityGroupMembership (..),+    newVpcSecurityGroupMembership,+    vpcSecurityGroupMembership_status,+    vpcSecurityGroupMembership_vpcSecurityGroupId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.DocumentDB.Types.ApplyMethod+import Amazonka.DocumentDB.Types.AvailabilityZone+import Amazonka.DocumentDB.Types.Certificate+import Amazonka.DocumentDB.Types.CloudwatchLogsExportConfiguration+import Amazonka.DocumentDB.Types.DBCluster+import Amazonka.DocumentDB.Types.DBClusterMember+import Amazonka.DocumentDB.Types.DBClusterParameterGroup+import Amazonka.DocumentDB.Types.DBClusterParameterGroupNameMessage+import Amazonka.DocumentDB.Types.DBClusterRole+import Amazonka.DocumentDB.Types.DBClusterSnapshot+import Amazonka.DocumentDB.Types.DBClusterSnapshotAttribute+import Amazonka.DocumentDB.Types.DBClusterSnapshotAttributesResult+import Amazonka.DocumentDB.Types.DBEngineVersion+import Amazonka.DocumentDB.Types.DBInstance+import Amazonka.DocumentDB.Types.DBInstanceStatusInfo+import Amazonka.DocumentDB.Types.DBSubnetGroup+import Amazonka.DocumentDB.Types.Endpoint+import Amazonka.DocumentDB.Types.EngineDefaults+import Amazonka.DocumentDB.Types.Event+import Amazonka.DocumentDB.Types.EventCategoriesMap+import Amazonka.DocumentDB.Types.EventSubscription+import Amazonka.DocumentDB.Types.Filter+import Amazonka.DocumentDB.Types.GlobalCluster+import Amazonka.DocumentDB.Types.GlobalClusterMember+import Amazonka.DocumentDB.Types.OrderableDBInstanceOption+import Amazonka.DocumentDB.Types.Parameter+import Amazonka.DocumentDB.Types.PendingCloudwatchLogsExports+import Amazonka.DocumentDB.Types.PendingMaintenanceAction+import Amazonka.DocumentDB.Types.PendingModifiedValues+import Amazonka.DocumentDB.Types.ResourcePendingMaintenanceActions+import Amazonka.DocumentDB.Types.SourceType+import Amazonka.DocumentDB.Types.Subnet+import Amazonka.DocumentDB.Types.Tag+import Amazonka.DocumentDB.Types.UpgradeTarget+import Amazonka.DocumentDB.Types.VpcSecurityGroupMembership+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2014-10-31@ of the Amazon DocumentDB with MongoDB compatibility SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "DocumentDB",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "rds",+      Core.signingName = "rds",+      Core.version = "2014-10-31",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseXMLError "DocumentDB",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | The specified CIDR IP or Amazon EC2 security group isn\'t authorized for+-- the specified security group.+--+-- Amazon DocumentDB also might not be authorized to perform necessary+-- actions on your behalf using IAM.+_AuthorizationNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AuthorizationNotFoundFault =+  Core._MatchServiceError+    defaultService+    "AuthorizationNotFound"+    Prelude.. Core.hasStatus 404++-- | @CertificateIdentifier@ doesn\'t refer to an existing certificate.+_CertificateNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_CertificateNotFoundFault =+  Core._MatchServiceError+    defaultService+    "CertificateNotFound"+    Prelude.. Core.hasStatus 404++-- | You already have a cluster with the given identifier.+_DBClusterAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBClusterAlreadyExistsFault =+  Core._MatchServiceError+    defaultService+    "DBClusterAlreadyExistsFault"+    Prelude.. Core.hasStatus 400++-- | @DBClusterIdentifier@ doesn\'t refer to an existing cluster.+_DBClusterNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBClusterNotFoundFault =+  Core._MatchServiceError+    defaultService+    "DBClusterNotFoundFault"+    Prelude.. Core.hasStatus 404++-- | @DBClusterParameterGroupName@ doesn\'t refer to an existing cluster+-- parameter group.+_DBClusterParameterGroupNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBClusterParameterGroupNotFoundFault =+  Core._MatchServiceError+    defaultService+    "DBClusterParameterGroupNotFound"+    Prelude.. Core.hasStatus 404++-- | The cluster can\'t be created because you have reached the maximum+-- allowed quota of clusters.+_DBClusterQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBClusterQuotaExceededFault =+  Core._MatchServiceError+    defaultService+    "DBClusterQuotaExceededFault"+    Prelude.. Core.hasStatus 403++-- | You already have a cluster snapshot with the given identifier.+_DBClusterSnapshotAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBClusterSnapshotAlreadyExistsFault =+  Core._MatchServiceError+    defaultService+    "DBClusterSnapshotAlreadyExistsFault"+    Prelude.. Core.hasStatus 400++-- | @DBClusterSnapshotIdentifier@ doesn\'t refer to an existing cluster+-- snapshot.+_DBClusterSnapshotNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBClusterSnapshotNotFoundFault =+  Core._MatchServiceError+    defaultService+    "DBClusterSnapshotNotFoundFault"+    Prelude.. Core.hasStatus 404++-- | You already have a instance with the given identifier.+_DBInstanceAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBInstanceAlreadyExistsFault =+  Core._MatchServiceError+    defaultService+    "DBInstanceAlreadyExists"+    Prelude.. Core.hasStatus 400++-- | @DBInstanceIdentifier@ doesn\'t refer to an existing instance.+_DBInstanceNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBInstanceNotFoundFault =+  Core._MatchServiceError+    defaultService+    "DBInstanceNotFound"+    Prelude.. Core.hasStatus 404++-- | A parameter group with the same name already exists.+_DBParameterGroupAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBParameterGroupAlreadyExistsFault =+  Core._MatchServiceError+    defaultService+    "DBParameterGroupAlreadyExists"+    Prelude.. Core.hasStatus 400++-- | @DBParameterGroupName@ doesn\'t refer to an existing parameter group.+_DBParameterGroupNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBParameterGroupNotFoundFault =+  Core._MatchServiceError+    defaultService+    "DBParameterGroupNotFound"+    Prelude.. Core.hasStatus 404++-- | This request would cause you to exceed the allowed number of parameter+-- groups.+_DBParameterGroupQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBParameterGroupQuotaExceededFault =+  Core._MatchServiceError+    defaultService+    "DBParameterGroupQuotaExceeded"+    Prelude.. Core.hasStatus 400++-- | @DBSecurityGroupName@ doesn\'t refer to an existing security group.+_DBSecurityGroupNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBSecurityGroupNotFoundFault =+  Core._MatchServiceError+    defaultService+    "DBSecurityGroupNotFound"+    Prelude.. Core.hasStatus 404++-- | @DBSnapshotIdentifier@ is already being used by an existing snapshot.+_DBSnapshotAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBSnapshotAlreadyExistsFault =+  Core._MatchServiceError+    defaultService+    "DBSnapshotAlreadyExists"+    Prelude.. Core.hasStatus 400++-- | @DBSnapshotIdentifier@ doesn\'t refer to an existing snapshot.+_DBSnapshotNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBSnapshotNotFoundFault =+  Core._MatchServiceError+    defaultService+    "DBSnapshotNotFound"+    Prelude.. Core.hasStatus 404++-- | @DBSubnetGroupName@ is already being used by an existing subnet group.+_DBSubnetGroupAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBSubnetGroupAlreadyExistsFault =+  Core._MatchServiceError+    defaultService+    "DBSubnetGroupAlreadyExists"+    Prelude.. Core.hasStatus 400++-- | Subnets in the subnet group should cover at least two Availability Zones+-- unless there is only one Availability Zone.+_DBSubnetGroupDoesNotCoverEnoughAZs :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBSubnetGroupDoesNotCoverEnoughAZs =+  Core._MatchServiceError+    defaultService+    "DBSubnetGroupDoesNotCoverEnoughAZs"+    Prelude.. Core.hasStatus 400++-- | @DBSubnetGroupName@ doesn\'t refer to an existing subnet group.+_DBSubnetGroupNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBSubnetGroupNotFoundFault =+  Core._MatchServiceError+    defaultService+    "DBSubnetGroupNotFoundFault"+    Prelude.. Core.hasStatus 404++-- | The request would cause you to exceed the allowed number of subnet+-- groups.+_DBSubnetGroupQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBSubnetGroupQuotaExceededFault =+  Core._MatchServiceError+    defaultService+    "DBSubnetGroupQuotaExceeded"+    Prelude.. Core.hasStatus 400++-- | The request would cause you to exceed the allowed number of subnets in a+-- subnet group.+_DBSubnetQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBSubnetQuotaExceededFault =+  Core._MatchServiceError+    defaultService+    "DBSubnetQuotaExceededFault"+    Prelude.. Core.hasStatus 400++-- | The upgrade failed because a resource that the depends on can\'t be+-- modified.+_DBUpgradeDependencyFailureFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DBUpgradeDependencyFailureFault =+  Core._MatchServiceError+    defaultService+    "DBUpgradeDependencyFailure"+    Prelude.. Core.hasStatus 400++-- | You have reached the maximum number of event subscriptions.+_EventSubscriptionQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_EventSubscriptionQuotaExceededFault =+  Core._MatchServiceError+    defaultService+    "EventSubscriptionQuotaExceeded"+    Prelude.. Core.hasStatus 400++-- | The @GlobalClusterIdentifier@ already exists. Choose a new global+-- cluster identifier (unique name) to create a new global cluster.+_GlobalClusterAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_GlobalClusterAlreadyExistsFault =+  Core._MatchServiceError+    defaultService+    "GlobalClusterAlreadyExistsFault"+    Prelude.. Core.hasStatus 400++-- | The @GlobalClusterIdentifier@ doesn\'t refer to an existing global+-- cluster.+_GlobalClusterNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_GlobalClusterNotFoundFault =+  Core._MatchServiceError+    defaultService+    "GlobalClusterNotFoundFault"+    Prelude.. Core.hasStatus 404++-- | The number of global clusters for this account is already at the maximum+-- allowed.+_GlobalClusterQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_GlobalClusterQuotaExceededFault =+  Core._MatchServiceError+    defaultService+    "GlobalClusterQuotaExceededFault"+    Prelude.. Core.hasStatus 400++-- | The request would cause you to exceed the allowed number of instances.+_InstanceQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InstanceQuotaExceededFault =+  Core._MatchServiceError+    defaultService+    "InstanceQuotaExceeded"+    Prelude.. Core.hasStatus 400++-- | The cluster doesn\'t have enough capacity for the current operation.+_InsufficientDBClusterCapacityFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InsufficientDBClusterCapacityFault =+  Core._MatchServiceError+    defaultService+    "InsufficientDBClusterCapacityFault"+    Prelude.. Core.hasStatus 403++-- | The specified instance class isn\'t available in the specified+-- Availability Zone.+_InsufficientDBInstanceCapacityFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InsufficientDBInstanceCapacityFault =+  Core._MatchServiceError+    defaultService+    "InsufficientDBInstanceCapacity"+    Prelude.. Core.hasStatus 400++-- | There is not enough storage available for the current action. You might+-- be able to resolve this error by updating your subnet group to use+-- different Availability Zones that have more storage available.+_InsufficientStorageClusterCapacityFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InsufficientStorageClusterCapacityFault =+  Core._MatchServiceError+    defaultService+    "InsufficientStorageClusterCapacity"+    Prelude.. Core.hasStatus 400++-- | The provided value isn\'t a valid cluster snapshot state.+_InvalidDBClusterSnapshotStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidDBClusterSnapshotStateFault =+  Core._MatchServiceError+    defaultService+    "InvalidDBClusterSnapshotStateFault"+    Prelude.. Core.hasStatus 400++-- | The cluster isn\'t in a valid state.+_InvalidDBClusterStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidDBClusterStateFault =+  Core._MatchServiceError+    defaultService+    "InvalidDBClusterStateFault"+    Prelude.. Core.hasStatus 400++-- | The specified instance isn\'t in the /available/ state.+_InvalidDBInstanceStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidDBInstanceStateFault =+  Core._MatchServiceError+    defaultService+    "InvalidDBInstanceState"+    Prelude.. Core.hasStatus 400++-- | The parameter group is in use, or it is in a state that is not valid. If+-- you are trying to delete the parameter group, you can\'t delete it when+-- the parameter group is in this state.+_InvalidDBParameterGroupStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidDBParameterGroupStateFault =+  Core._MatchServiceError+    defaultService+    "InvalidDBParameterGroupState"+    Prelude.. Core.hasStatus 400++-- | The state of the security group doesn\'t allow deletion.+_InvalidDBSecurityGroupStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidDBSecurityGroupStateFault =+  Core._MatchServiceError+    defaultService+    "InvalidDBSecurityGroupState"+    Prelude.. Core.hasStatus 400++-- | The state of the snapshot doesn\'t allow deletion.+_InvalidDBSnapshotStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidDBSnapshotStateFault =+  Core._MatchServiceError+    defaultService+    "InvalidDBSnapshotState"+    Prelude.. Core.hasStatus 400++-- | The subnet group can\'t be deleted because it\'s in use.+_InvalidDBSubnetGroupStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidDBSubnetGroupStateFault =+  Core._MatchServiceError+    defaultService+    "InvalidDBSubnetGroupStateFault"+    Prelude.. Core.hasStatus 400++-- | The subnet isn\'t in the /available/ state.+_InvalidDBSubnetStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidDBSubnetStateFault =+  Core._MatchServiceError+    defaultService+    "InvalidDBSubnetStateFault"+    Prelude.. Core.hasStatus 400++-- | Someone else might be modifying a subscription. Wait a few seconds, and+-- try again.+_InvalidEventSubscriptionStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidEventSubscriptionStateFault =+  Core._MatchServiceError+    defaultService+    "InvalidEventSubscriptionState"+    Prelude.. Core.hasStatus 400++-- | The requested operation can\'t be performed while the cluster is in this+-- state.+_InvalidGlobalClusterStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidGlobalClusterStateFault =+  Core._MatchServiceError+    defaultService+    "InvalidGlobalClusterStateFault"+    Prelude.. Core.hasStatus 400++-- | You cannot restore from a virtual private cloud (VPC) backup to a+-- non-VPC DB instance.+_InvalidRestoreFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidRestoreFault =+  Core._MatchServiceError+    defaultService+    "InvalidRestoreFault"+    Prelude.. Core.hasStatus 400++-- | The requested subnet is not valid, or multiple subnets were requested+-- that are not all in a common virtual private cloud (VPC).+_InvalidSubnet :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidSubnet =+  Core._MatchServiceError+    defaultService+    "InvalidSubnet"+    Prelude.. Core.hasStatus 400++-- | The subnet group doesn\'t cover all Availability Zones after it is+-- created because of changes that were made.+_InvalidVPCNetworkStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidVPCNetworkStateFault =+  Core._MatchServiceError+    defaultService+    "InvalidVPCNetworkStateFault"+    Prelude.. Core.hasStatus 400++-- | An error occurred when accessing an KMS key.+_KMSKeyNotAccessibleFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_KMSKeyNotAccessibleFault =+  Core._MatchServiceError+    defaultService+    "KMSKeyNotAccessibleFault"+    Prelude.. Core.hasStatus 400++-- | The specified resource ID was not found.+_ResourceNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundFault =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundFault"+    Prelude.. Core.hasStatus 404++-- | Amazon SNS has responded that there is a problem with the specified+-- topic.+_SNSInvalidTopicFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SNSInvalidTopicFault =+  Core._MatchServiceError+    defaultService+    "SNSInvalidTopic"+    Prelude.. Core.hasStatus 400++-- | You do not have permission to publish to the SNS topic Amazon Resource+-- Name (ARN).+_SNSNoAuthorizationFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SNSNoAuthorizationFault =+  Core._MatchServiceError+    defaultService+    "SNSNoAuthorization"+    Prelude.. Core.hasStatus 400++-- | The SNS topic Amazon Resource Name (ARN) does not exist.+_SNSTopicArnNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SNSTopicArnNotFoundFault =+  Core._MatchServiceError+    defaultService+    "SNSTopicArnNotFound"+    Prelude.. Core.hasStatus 404++-- | You have exceeded the maximum number of accounts that you can share a+-- manual DB snapshot with.+_SharedSnapshotQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SharedSnapshotQuotaExceededFault =+  Core._MatchServiceError+    defaultService+    "SharedSnapshotQuotaExceeded"+    Prelude.. Core.hasStatus 400++-- | The request would cause you to exceed the allowed number of snapshots.+_SnapshotQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SnapshotQuotaExceededFault =+  Core._MatchServiceError+    defaultService+    "SnapshotQuotaExceeded"+    Prelude.. Core.hasStatus 400++-- | The requested source could not be found.+_SourceNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SourceNotFoundFault =+  Core._MatchServiceError+    defaultService+    "SourceNotFound"+    Prelude.. Core.hasStatus 404++-- | The request would cause you to exceed the allowed amount of storage+-- available across all instances.+_StorageQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_StorageQuotaExceededFault =+  Core._MatchServiceError+    defaultService+    "StorageQuotaExceeded"+    Prelude.. Core.hasStatus 400++-- | Storage of the specified @StorageType@ can\'t be associated with the DB+-- instance.+_StorageTypeNotSupportedFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_StorageTypeNotSupportedFault =+  Core._MatchServiceError+    defaultService+    "StorageTypeNotSupported"+    Prelude.. Core.hasStatus 400++-- | The subnet is already in use in the Availability Zone.+_SubnetAlreadyInUse :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SubnetAlreadyInUse =+  Core._MatchServiceError+    defaultService+    "SubnetAlreadyInUse"+    Prelude.. Core.hasStatus 400++-- | The provided subscription name already exists.+_SubscriptionAlreadyExistFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SubscriptionAlreadyExistFault =+  Core._MatchServiceError+    defaultService+    "SubscriptionAlreadyExist"+    Prelude.. Core.hasStatus 400++-- | The provided category does not exist.+_SubscriptionCategoryNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SubscriptionCategoryNotFoundFault =+  Core._MatchServiceError+    defaultService+    "SubscriptionCategoryNotFound"+    Prelude.. Core.hasStatus 404++-- | The subscription name does not exist.+_SubscriptionNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SubscriptionNotFoundFault =+  Core._MatchServiceError+    defaultService+    "SubscriptionNotFound"+    Prelude.. Core.hasStatus 404
+ gen/Amazonka/DocumentDB/Types/ApplyMethod.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.DocumentDB.Types.ApplyMethod+-- 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.DocumentDB.Types.ApplyMethod+  ( ApplyMethod+      ( ..,+        ApplyMethod_Immediate,+        ApplyMethod_Pending_reboot+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ApplyMethod = ApplyMethod'+  { fromApplyMethod ::+      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 ApplyMethod_Immediate :: ApplyMethod+pattern ApplyMethod_Immediate = ApplyMethod' "immediate"++pattern ApplyMethod_Pending_reboot :: ApplyMethod+pattern ApplyMethod_Pending_reboot = ApplyMethod' "pending-reboot"++{-# COMPLETE+  ApplyMethod_Immediate,+  ApplyMethod_Pending_reboot,+  ApplyMethod'+  #-}
+ gen/Amazonka/DocumentDB/Types/AvailabilityZone.hs view
@@ -0,0 +1,63 @@+{-# 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.DocumentDB.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.DocumentDB.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++-- | Information about an Availability Zone.+--+-- /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.FromXML AvailabilityZone where+  parseXML 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/DocumentDB/Types/Certificate.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.DocumentDB.Types.Certificate+-- 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.DocumentDB.Types.Certificate 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 certificate authority (CA) certificate for an Amazon Web Services+-- account.+--+-- /See:/ 'newCertificate' smart constructor.+data Certificate = Certificate'+  { -- | The Amazon Resource Name (ARN) for the certificate.+    --+    -- Example: @arn:aws:rds:us-east-1::cert:rds-ca-2019@+    certificateArn :: Prelude.Maybe Prelude.Text,+    -- | The unique key that identifies a certificate.+    --+    -- Example: @rds-ca-2019@+    certificateIdentifier :: Prelude.Maybe Prelude.Text,+    -- | The type of the certificate.+    --+    -- Example: @CA@+    certificateType :: Prelude.Maybe Prelude.Text,+    -- | The thumbprint of the certificate.+    thumbprint :: Prelude.Maybe Prelude.Text,+    -- | The starting date-time from which the certificate is valid.+    --+    -- Example: @2019-07-31T17:57:09Z@+    validFrom :: Prelude.Maybe Data.ISO8601,+    -- | The date-time after which the certificate is no longer valid.+    --+    -- Example: @2024-07-31T17:57:09Z@+    validTill :: Prelude.Maybe Data.ISO8601+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Certificate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'certificateArn', 'certificate_certificateArn' - The Amazon Resource Name (ARN) for the certificate.+--+-- Example: @arn:aws:rds:us-east-1::cert:rds-ca-2019@+--+-- 'certificateIdentifier', 'certificate_certificateIdentifier' - The unique key that identifies a certificate.+--+-- Example: @rds-ca-2019@+--+-- 'certificateType', 'certificate_certificateType' - The type of the certificate.+--+-- Example: @CA@+--+-- 'thumbprint', 'certificate_thumbprint' - The thumbprint of the certificate.+--+-- 'validFrom', 'certificate_validFrom' - The starting date-time from which the certificate is valid.+--+-- Example: @2019-07-31T17:57:09Z@+--+-- 'validTill', 'certificate_validTill' - The date-time after which the certificate is no longer valid.+--+-- Example: @2024-07-31T17:57:09Z@+newCertificate ::+  Certificate+newCertificate =+  Certificate'+    { certificateArn = Prelude.Nothing,+      certificateIdentifier = Prelude.Nothing,+      certificateType = Prelude.Nothing,+      thumbprint = Prelude.Nothing,+      validFrom = Prelude.Nothing,+      validTill = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) for the certificate.+--+-- Example: @arn:aws:rds:us-east-1::cert:rds-ca-2019@+certificate_certificateArn :: Lens.Lens' Certificate (Prelude.Maybe Prelude.Text)+certificate_certificateArn = Lens.lens (\Certificate' {certificateArn} -> certificateArn) (\s@Certificate' {} a -> s {certificateArn = a} :: Certificate)++-- | The unique key that identifies a certificate.+--+-- Example: @rds-ca-2019@+certificate_certificateIdentifier :: Lens.Lens' Certificate (Prelude.Maybe Prelude.Text)+certificate_certificateIdentifier = Lens.lens (\Certificate' {certificateIdentifier} -> certificateIdentifier) (\s@Certificate' {} a -> s {certificateIdentifier = a} :: Certificate)++-- | The type of the certificate.+--+-- Example: @CA@+certificate_certificateType :: Lens.Lens' Certificate (Prelude.Maybe Prelude.Text)+certificate_certificateType = Lens.lens (\Certificate' {certificateType} -> certificateType) (\s@Certificate' {} a -> s {certificateType = a} :: Certificate)++-- | The thumbprint of the certificate.+certificate_thumbprint :: Lens.Lens' Certificate (Prelude.Maybe Prelude.Text)+certificate_thumbprint = Lens.lens (\Certificate' {thumbprint} -> thumbprint) (\s@Certificate' {} a -> s {thumbprint = a} :: Certificate)++-- | The starting date-time from which the certificate is valid.+--+-- Example: @2019-07-31T17:57:09Z@+certificate_validFrom :: Lens.Lens' Certificate (Prelude.Maybe Prelude.UTCTime)+certificate_validFrom = Lens.lens (\Certificate' {validFrom} -> validFrom) (\s@Certificate' {} a -> s {validFrom = a} :: Certificate) Prelude.. Lens.mapping Data._Time++-- | The date-time after which the certificate is no longer valid.+--+-- Example: @2024-07-31T17:57:09Z@+certificate_validTill :: Lens.Lens' Certificate (Prelude.Maybe Prelude.UTCTime)+certificate_validTill = Lens.lens (\Certificate' {validTill} -> validTill) (\s@Certificate' {} a -> s {validTill = a} :: Certificate) Prelude.. Lens.mapping Data._Time++instance Data.FromXML Certificate where+  parseXML x =+    Certificate'+      Prelude.<$> (x Data..@? "CertificateArn")+      Prelude.<*> (x Data..@? "CertificateIdentifier")+      Prelude.<*> (x Data..@? "CertificateType")+      Prelude.<*> (x Data..@? "Thumbprint")+      Prelude.<*> (x Data..@? "ValidFrom")+      Prelude.<*> (x Data..@? "ValidTill")++instance Prelude.Hashable Certificate where+  hashWithSalt _salt Certificate' {..} =+    _salt+      `Prelude.hashWithSalt` certificateArn+      `Prelude.hashWithSalt` certificateIdentifier+      `Prelude.hashWithSalt` certificateType+      `Prelude.hashWithSalt` thumbprint+      `Prelude.hashWithSalt` validFrom+      `Prelude.hashWithSalt` validTill++instance Prelude.NFData Certificate where+  rnf Certificate' {..} =+    Prelude.rnf certificateArn+      `Prelude.seq` Prelude.rnf certificateIdentifier+      `Prelude.seq` Prelude.rnf certificateType+      `Prelude.seq` Prelude.rnf thumbprint+      `Prelude.seq` Prelude.rnf validFrom+      `Prelude.seq` Prelude.rnf validTill
+ gen/Amazonka/DocumentDB/Types/CloudwatchLogsExportConfiguration.hs view
@@ -0,0 +1,106 @@+{-# 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.DocumentDB.Types.CloudwatchLogsExportConfiguration+-- 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.DocumentDB.Types.CloudwatchLogsExportConfiguration 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 configuration setting for the log types to be enabled for export to+-- Amazon CloudWatch Logs for a specific instance or cluster.+--+-- The @EnableLogTypes@ and @DisableLogTypes@ arrays determine which logs+-- are exported (or not exported) to CloudWatch Logs. The values within+-- these arrays depend on the engine that is being used.+--+-- /See:/ 'newCloudwatchLogsExportConfiguration' smart constructor.+data CloudwatchLogsExportConfiguration = CloudwatchLogsExportConfiguration'+  { -- | The list of log types to disable.+    disableLogTypes :: Prelude.Maybe [Prelude.Text],+    -- | The list of log types to enable.+    enableLogTypes :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudwatchLogsExportConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'disableLogTypes', 'cloudwatchLogsExportConfiguration_disableLogTypes' - The list of log types to disable.+--+-- 'enableLogTypes', 'cloudwatchLogsExportConfiguration_enableLogTypes' - The list of log types to enable.+newCloudwatchLogsExportConfiguration ::+  CloudwatchLogsExportConfiguration+newCloudwatchLogsExportConfiguration =+  CloudwatchLogsExportConfiguration'+    { disableLogTypes =+        Prelude.Nothing,+      enableLogTypes = Prelude.Nothing+    }++-- | The list of log types to disable.+cloudwatchLogsExportConfiguration_disableLogTypes :: Lens.Lens' CloudwatchLogsExportConfiguration (Prelude.Maybe [Prelude.Text])+cloudwatchLogsExportConfiguration_disableLogTypes = Lens.lens (\CloudwatchLogsExportConfiguration' {disableLogTypes} -> disableLogTypes) (\s@CloudwatchLogsExportConfiguration' {} a -> s {disableLogTypes = a} :: CloudwatchLogsExportConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The list of log types to enable.+cloudwatchLogsExportConfiguration_enableLogTypes :: Lens.Lens' CloudwatchLogsExportConfiguration (Prelude.Maybe [Prelude.Text])+cloudwatchLogsExportConfiguration_enableLogTypes = Lens.lens (\CloudwatchLogsExportConfiguration' {enableLogTypes} -> enableLogTypes) (\s@CloudwatchLogsExportConfiguration' {} a -> s {enableLogTypes = a} :: CloudwatchLogsExportConfiguration) Prelude.. Lens.mapping Lens.coerced++instance+  Prelude.Hashable+    CloudwatchLogsExportConfiguration+  where+  hashWithSalt+    _salt+    CloudwatchLogsExportConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` disableLogTypes+        `Prelude.hashWithSalt` enableLogTypes++instance+  Prelude.NFData+    CloudwatchLogsExportConfiguration+  where+  rnf CloudwatchLogsExportConfiguration' {..} =+    Prelude.rnf disableLogTypes+      `Prelude.seq` Prelude.rnf enableLogTypes++instance+  Data.ToQuery+    CloudwatchLogsExportConfiguration+  where+  toQuery CloudwatchLogsExportConfiguration' {..} =+    Prelude.mconcat+      [ "DisableLogTypes"+          Data.=: Data.toQuery+            ( Data.toQueryList "member"+                Prelude.<$> disableLogTypes+            ),+        "EnableLogTypes"+          Data.=: Data.toQuery+            ( Data.toQueryList "member"+                Prelude.<$> enableLogTypes+            )+      ]
+ gen/Amazonka/DocumentDB/Types/DBCluster.hs view
@@ -0,0 +1,592 @@+{-# 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.DocumentDB.Types.DBCluster+-- 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.DocumentDB.Types.DBCluster where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types.DBClusterMember+import Amazonka.DocumentDB.Types.DBClusterRole+import Amazonka.DocumentDB.Types.VpcSecurityGroupMembership+import qualified Amazonka.Prelude as Prelude++-- | Detailed information about a cluster.+--+-- /See:/ 'newDBCluster' smart constructor.+data DBCluster = DBCluster'+  { -- | Provides a list of the Identity and Access Management (IAM) roles that+    -- are associated with the cluster. (IAM) roles that are associated with a+    -- cluster grant permission for the cluster to access other Amazon Web+    -- Services services on your behalf.+    associatedRoles :: Prelude.Maybe [DBClusterRole],+    -- | Provides the list of Amazon EC2 Availability Zones that instances in the+    -- cluster can be created in.+    availabilityZones :: Prelude.Maybe [Prelude.Text],+    -- | Specifies the number of days for which automatic snapshots are retained.+    backupRetentionPeriod :: Prelude.Maybe Prelude.Int,+    -- | Identifies the clone group to which the DB cluster is associated.+    cloneGroupId :: Prelude.Maybe Prelude.Text,+    -- | Specifies the time when the cluster was created, in Universal+    -- Coordinated Time (UTC).+    clusterCreateTime :: Prelude.Maybe Data.ISO8601,+    -- | The Amazon Resource Name (ARN) for the cluster.+    dbClusterArn :: Prelude.Maybe Prelude.Text,+    -- | Contains a user-supplied cluster identifier. This identifier is the+    -- unique key that identifies a cluster.+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,+    -- | Provides the list of instances that make up the cluster.+    dbClusterMembers :: Prelude.Maybe [DBClusterMember],+    -- | Specifies the name of the cluster parameter group for the cluster.+    dbClusterParameterGroup :: Prelude.Maybe Prelude.Text,+    -- | Specifies information on the subnet group that is associated with the+    -- cluster, including the name, description, and subnets in the subnet+    -- group.+    dbSubnetGroup :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services Region-unique, immutable identifier for the+    -- cluster. This identifier is found in CloudTrail log entries whenever the+    -- KMS key for the cluster is accessed.+    dbClusterResourceId :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether this cluster can be deleted. If @DeletionProtection@+    -- is enabled, the cluster cannot be deleted unless it is modified and+    -- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+    -- from being accidentally deleted.+    deletionProtection :: Prelude.Maybe Prelude.Bool,+    -- | The earliest time to which a database can be restored with point-in-time+    -- restore.+    earliestRestorableTime :: Prelude.Maybe Data.ISO8601,+    -- | A list of log types that this cluster is configured to export to Amazon+    -- CloudWatch Logs.+    enabledCloudwatchLogsExports :: Prelude.Maybe [Prelude.Text],+    -- | Specifies the connection endpoint for the primary instance of the+    -- cluster.+    endpoint :: Prelude.Maybe Prelude.Text,+    -- | Provides the name of the database engine to be used for this cluster.+    engine :: Prelude.Maybe Prelude.Text,+    -- | Indicates the database engine version.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | Specifies the ID that Amazon Route 53 assigns when you create a hosted+    -- zone.+    hostedZoneId :: Prelude.Maybe Prelude.Text,+    -- | If @StorageEncrypted@ is @true@, the KMS key identifier for the+    -- encrypted cluster.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | Specifies the latest time to which a database can be restored with+    -- point-in-time restore.+    latestRestorableTime :: Prelude.Maybe Data.ISO8601,+    -- | Contains the master user name for the cluster.+    masterUsername :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether the cluster has instances in multiple Availability+    -- Zones.+    multiAZ :: Prelude.Maybe Prelude.Bool,+    -- | Specifies the progress of the operation as a percentage.+    percentProgress :: Prelude.Maybe Prelude.Text,+    -- | Specifies the port that the database engine is listening on.+    port :: Prelude.Maybe Prelude.Int,+    -- | Specifies the daily time range during which automated backups are+    -- created if automated backups are enabled, as determined by the+    -- @BackupRetentionPeriod@.+    preferredBackupWindow :: Prelude.Maybe Prelude.Text,+    -- | Specifies the weekly time range during which system maintenance can+    -- occur, in Universal Coordinated Time (UTC).+    preferredMaintenanceWindow :: Prelude.Maybe Prelude.Text,+    -- | Contains one or more identifiers of the secondary clusters that are+    -- associated with this cluster.+    readReplicaIdentifiers :: Prelude.Maybe [Prelude.Text],+    -- | The reader endpoint for the cluster. The reader endpoint for a cluster+    -- load balances connections across the Amazon DocumentDB replicas that are+    -- available in a cluster. As clients request new connections to the reader+    -- endpoint, Amazon DocumentDB distributes the connection requests among+    -- the Amazon DocumentDB replicas in the cluster. This functionality can+    -- help balance your read workload across multiple Amazon DocumentDB+    -- replicas in your cluster.+    --+    -- If a failover occurs, and the Amazon DocumentDB replica that you are+    -- connected to is promoted to be the primary instance, your connection is+    -- dropped. To continue sending your read workload to other Amazon+    -- DocumentDB replicas in the cluster, you can then reconnect to the reader+    -- endpoint.+    readerEndpoint :: Prelude.Maybe Prelude.Text,+    -- | Contains the identifier of the source cluster if this cluster is a+    -- secondary cluster.+    replicationSourceIdentifier :: Prelude.Maybe Prelude.Text,+    -- | Specifies the current state of this cluster.+    status :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether the cluster is encrypted.+    storageEncrypted :: Prelude.Maybe Prelude.Bool,+    -- | Provides a list of virtual private cloud (VPC) security groups that the+    -- cluster belongs to.+    vpcSecurityGroups :: Prelude.Maybe [VpcSecurityGroupMembership]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DBCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associatedRoles', 'dbCluster_associatedRoles' - Provides a list of the Identity and Access Management (IAM) roles that+-- are associated with the cluster. (IAM) roles that are associated with a+-- cluster grant permission for the cluster to access other Amazon Web+-- Services services on your behalf.+--+-- 'availabilityZones', 'dbCluster_availabilityZones' - Provides the list of Amazon EC2 Availability Zones that instances in the+-- cluster can be created in.+--+-- 'backupRetentionPeriod', 'dbCluster_backupRetentionPeriod' - Specifies the number of days for which automatic snapshots are retained.+--+-- 'cloneGroupId', 'dbCluster_cloneGroupId' - Identifies the clone group to which the DB cluster is associated.+--+-- 'clusterCreateTime', 'dbCluster_clusterCreateTime' - Specifies the time when the cluster was created, in Universal+-- Coordinated Time (UTC).+--+-- 'dbClusterArn', 'dbCluster_dbClusterArn' - The Amazon Resource Name (ARN) for the cluster.+--+-- 'dbClusterIdentifier', 'dbCluster_dbClusterIdentifier' - Contains a user-supplied cluster identifier. This identifier is the+-- unique key that identifies a cluster.+--+-- 'dbClusterMembers', 'dbCluster_dbClusterMembers' - Provides the list of instances that make up the cluster.+--+-- 'dbClusterParameterGroup', 'dbCluster_dbClusterParameterGroup' - Specifies the name of the cluster parameter group for the cluster.+--+-- 'dbSubnetGroup', 'dbCluster_dbSubnetGroup' - Specifies information on the subnet group that is associated with the+-- cluster, including the name, description, and subnets in the subnet+-- group.+--+-- 'dbClusterResourceId', 'dbCluster_dbClusterResourceId' - The Amazon Web Services Region-unique, immutable identifier for the+-- cluster. This identifier is found in CloudTrail log entries whenever the+-- KMS key for the cluster is accessed.+--+-- 'deletionProtection', 'dbCluster_deletionProtection' - Specifies whether this cluster can be deleted. If @DeletionProtection@+-- is enabled, the cluster cannot be deleted unless it is modified and+-- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+-- from being accidentally deleted.+--+-- 'earliestRestorableTime', 'dbCluster_earliestRestorableTime' - The earliest time to which a database can be restored with point-in-time+-- restore.+--+-- 'enabledCloudwatchLogsExports', 'dbCluster_enabledCloudwatchLogsExports' - A list of log types that this cluster is configured to export to Amazon+-- CloudWatch Logs.+--+-- 'endpoint', 'dbCluster_endpoint' - Specifies the connection endpoint for the primary instance of the+-- cluster.+--+-- 'engine', 'dbCluster_engine' - Provides the name of the database engine to be used for this cluster.+--+-- 'engineVersion', 'dbCluster_engineVersion' - Indicates the database engine version.+--+-- 'hostedZoneId', 'dbCluster_hostedZoneId' - Specifies the ID that Amazon Route 53 assigns when you create a hosted+-- zone.+--+-- 'kmsKeyId', 'dbCluster_kmsKeyId' - If @StorageEncrypted@ is @true@, the KMS key identifier for the+-- encrypted cluster.+--+-- 'latestRestorableTime', 'dbCluster_latestRestorableTime' - Specifies the latest time to which a database can be restored with+-- point-in-time restore.+--+-- 'masterUsername', 'dbCluster_masterUsername' - Contains the master user name for the cluster.+--+-- 'multiAZ', 'dbCluster_multiAZ' - Specifies whether the cluster has instances in multiple Availability+-- Zones.+--+-- 'percentProgress', 'dbCluster_percentProgress' - Specifies the progress of the operation as a percentage.+--+-- 'port', 'dbCluster_port' - Specifies the port that the database engine is listening on.+--+-- 'preferredBackupWindow', 'dbCluster_preferredBackupWindow' - Specifies the daily time range during which automated backups are+-- created if automated backups are enabled, as determined by the+-- @BackupRetentionPeriod@.+--+-- 'preferredMaintenanceWindow', 'dbCluster_preferredMaintenanceWindow' - Specifies the weekly time range during which system maintenance can+-- occur, in Universal Coordinated Time (UTC).+--+-- 'readReplicaIdentifiers', 'dbCluster_readReplicaIdentifiers' - Contains one or more identifiers of the secondary clusters that are+-- associated with this cluster.+--+-- 'readerEndpoint', 'dbCluster_readerEndpoint' - The reader endpoint for the cluster. The reader endpoint for a cluster+-- load balances connections across the Amazon DocumentDB replicas that are+-- available in a cluster. As clients request new connections to the reader+-- endpoint, Amazon DocumentDB distributes the connection requests among+-- the Amazon DocumentDB replicas in the cluster. This functionality can+-- help balance your read workload across multiple Amazon DocumentDB+-- replicas in your cluster.+--+-- If a failover occurs, and the Amazon DocumentDB replica that you are+-- connected to is promoted to be the primary instance, your connection is+-- dropped. To continue sending your read workload to other Amazon+-- DocumentDB replicas in the cluster, you can then reconnect to the reader+-- endpoint.+--+-- 'replicationSourceIdentifier', 'dbCluster_replicationSourceIdentifier' - Contains the identifier of the source cluster if this cluster is a+-- secondary cluster.+--+-- 'status', 'dbCluster_status' - Specifies the current state of this cluster.+--+-- 'storageEncrypted', 'dbCluster_storageEncrypted' - Specifies whether the cluster is encrypted.+--+-- 'vpcSecurityGroups', 'dbCluster_vpcSecurityGroups' - Provides a list of virtual private cloud (VPC) security groups that the+-- cluster belongs to.+newDBCluster ::+  DBCluster+newDBCluster =+  DBCluster'+    { associatedRoles = Prelude.Nothing,+      availabilityZones = Prelude.Nothing,+      backupRetentionPeriod = Prelude.Nothing,+      cloneGroupId = Prelude.Nothing,+      clusterCreateTime = Prelude.Nothing,+      dbClusterArn = Prelude.Nothing,+      dbClusterIdentifier = Prelude.Nothing,+      dbClusterMembers = Prelude.Nothing,+      dbClusterParameterGroup = Prelude.Nothing,+      dbSubnetGroup = Prelude.Nothing,+      dbClusterResourceId = Prelude.Nothing,+      deletionProtection = Prelude.Nothing,+      earliestRestorableTime = Prelude.Nothing,+      enabledCloudwatchLogsExports = Prelude.Nothing,+      endpoint = Prelude.Nothing,+      engine = Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      hostedZoneId = Prelude.Nothing,+      kmsKeyId = Prelude.Nothing,+      latestRestorableTime = Prelude.Nothing,+      masterUsername = Prelude.Nothing,+      multiAZ = Prelude.Nothing,+      percentProgress = Prelude.Nothing,+      port = Prelude.Nothing,+      preferredBackupWindow = Prelude.Nothing,+      preferredMaintenanceWindow = Prelude.Nothing,+      readReplicaIdentifiers = Prelude.Nothing,+      readerEndpoint = Prelude.Nothing,+      replicationSourceIdentifier = Prelude.Nothing,+      status = Prelude.Nothing,+      storageEncrypted = Prelude.Nothing,+      vpcSecurityGroups = Prelude.Nothing+    }++-- | Provides a list of the Identity and Access Management (IAM) roles that+-- are associated with the cluster. (IAM) roles that are associated with a+-- cluster grant permission for the cluster to access other Amazon Web+-- Services services on your behalf.+dbCluster_associatedRoles :: Lens.Lens' DBCluster (Prelude.Maybe [DBClusterRole])+dbCluster_associatedRoles = Lens.lens (\DBCluster' {associatedRoles} -> associatedRoles) (\s@DBCluster' {} a -> s {associatedRoles = a} :: DBCluster) Prelude.. Lens.mapping Lens.coerced++-- | Provides the list of Amazon EC2 Availability Zones that instances in the+-- cluster can be created in.+dbCluster_availabilityZones :: Lens.Lens' DBCluster (Prelude.Maybe [Prelude.Text])+dbCluster_availabilityZones = Lens.lens (\DBCluster' {availabilityZones} -> availabilityZones) (\s@DBCluster' {} a -> s {availabilityZones = a} :: DBCluster) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the number of days for which automatic snapshots are retained.+dbCluster_backupRetentionPeriod :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Int)+dbCluster_backupRetentionPeriod = Lens.lens (\DBCluster' {backupRetentionPeriod} -> backupRetentionPeriod) (\s@DBCluster' {} a -> s {backupRetentionPeriod = a} :: DBCluster)++-- | Identifies the clone group to which the DB cluster is associated.+dbCluster_cloneGroupId :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_cloneGroupId = Lens.lens (\DBCluster' {cloneGroupId} -> cloneGroupId) (\s@DBCluster' {} a -> s {cloneGroupId = a} :: DBCluster)++-- | Specifies the time when the cluster was created, in Universal+-- Coordinated Time (UTC).+dbCluster_clusterCreateTime :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.UTCTime)+dbCluster_clusterCreateTime = Lens.lens (\DBCluster' {clusterCreateTime} -> clusterCreateTime) (\s@DBCluster' {} a -> s {clusterCreateTime = a} :: DBCluster) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) for the cluster.+dbCluster_dbClusterArn :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_dbClusterArn = Lens.lens (\DBCluster' {dbClusterArn} -> dbClusterArn) (\s@DBCluster' {} a -> s {dbClusterArn = a} :: DBCluster)++-- | Contains a user-supplied cluster identifier. This identifier is the+-- unique key that identifies a cluster.+dbCluster_dbClusterIdentifier :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_dbClusterIdentifier = Lens.lens (\DBCluster' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@DBCluster' {} a -> s {dbClusterIdentifier = a} :: DBCluster)++-- | Provides the list of instances that make up the cluster.+dbCluster_dbClusterMembers :: Lens.Lens' DBCluster (Prelude.Maybe [DBClusterMember])+dbCluster_dbClusterMembers = Lens.lens (\DBCluster' {dbClusterMembers} -> dbClusterMembers) (\s@DBCluster' {} a -> s {dbClusterMembers = a} :: DBCluster) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the name of the cluster parameter group for the cluster.+dbCluster_dbClusterParameterGroup :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_dbClusterParameterGroup = Lens.lens (\DBCluster' {dbClusterParameterGroup} -> dbClusterParameterGroup) (\s@DBCluster' {} a -> s {dbClusterParameterGroup = a} :: DBCluster)++-- | Specifies information on the subnet group that is associated with the+-- cluster, including the name, description, and subnets in the subnet+-- group.+dbCluster_dbSubnetGroup :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_dbSubnetGroup = Lens.lens (\DBCluster' {dbSubnetGroup} -> dbSubnetGroup) (\s@DBCluster' {} a -> s {dbSubnetGroup = a} :: DBCluster)++-- | The Amazon Web Services Region-unique, immutable identifier for the+-- cluster. This identifier is found in CloudTrail log entries whenever the+-- KMS key for the cluster is accessed.+dbCluster_dbClusterResourceId :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_dbClusterResourceId = Lens.lens (\DBCluster' {dbClusterResourceId} -> dbClusterResourceId) (\s@DBCluster' {} a -> s {dbClusterResourceId = a} :: DBCluster)++-- | Specifies whether this cluster can be deleted. If @DeletionProtection@+-- is enabled, the cluster cannot be deleted unless it is modified and+-- @DeletionProtection@ is disabled. @DeletionProtection@ protects clusters+-- from being accidentally deleted.+dbCluster_deletionProtection :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Bool)+dbCluster_deletionProtection = Lens.lens (\DBCluster' {deletionProtection} -> deletionProtection) (\s@DBCluster' {} a -> s {deletionProtection = a} :: DBCluster)++-- | The earliest time to which a database can be restored with point-in-time+-- restore.+dbCluster_earliestRestorableTime :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.UTCTime)+dbCluster_earliestRestorableTime = Lens.lens (\DBCluster' {earliestRestorableTime} -> earliestRestorableTime) (\s@DBCluster' {} a -> s {earliestRestorableTime = a} :: DBCluster) Prelude.. Lens.mapping Data._Time++-- | A list of log types that this cluster is configured to export to Amazon+-- CloudWatch Logs.+dbCluster_enabledCloudwatchLogsExports :: Lens.Lens' DBCluster (Prelude.Maybe [Prelude.Text])+dbCluster_enabledCloudwatchLogsExports = Lens.lens (\DBCluster' {enabledCloudwatchLogsExports} -> enabledCloudwatchLogsExports) (\s@DBCluster' {} a -> s {enabledCloudwatchLogsExports = a} :: DBCluster) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the connection endpoint for the primary instance of the+-- cluster.+dbCluster_endpoint :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_endpoint = Lens.lens (\DBCluster' {endpoint} -> endpoint) (\s@DBCluster' {} a -> s {endpoint = a} :: DBCluster)++-- | Provides the name of the database engine to be used for this cluster.+dbCluster_engine :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_engine = Lens.lens (\DBCluster' {engine} -> engine) (\s@DBCluster' {} a -> s {engine = a} :: DBCluster)++-- | Indicates the database engine version.+dbCluster_engineVersion :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_engineVersion = Lens.lens (\DBCluster' {engineVersion} -> engineVersion) (\s@DBCluster' {} a -> s {engineVersion = a} :: DBCluster)++-- | Specifies the ID that Amazon Route 53 assigns when you create a hosted+-- zone.+dbCluster_hostedZoneId :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_hostedZoneId = Lens.lens (\DBCluster' {hostedZoneId} -> hostedZoneId) (\s@DBCluster' {} a -> s {hostedZoneId = a} :: DBCluster)++-- | If @StorageEncrypted@ is @true@, the KMS key identifier for the+-- encrypted cluster.+dbCluster_kmsKeyId :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_kmsKeyId = Lens.lens (\DBCluster' {kmsKeyId} -> kmsKeyId) (\s@DBCluster' {} a -> s {kmsKeyId = a} :: DBCluster)++-- | Specifies the latest time to which a database can be restored with+-- point-in-time restore.+dbCluster_latestRestorableTime :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.UTCTime)+dbCluster_latestRestorableTime = Lens.lens (\DBCluster' {latestRestorableTime} -> latestRestorableTime) (\s@DBCluster' {} a -> s {latestRestorableTime = a} :: DBCluster) Prelude.. Lens.mapping Data._Time++-- | Contains the master user name for the cluster.+dbCluster_masterUsername :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_masterUsername = Lens.lens (\DBCluster' {masterUsername} -> masterUsername) (\s@DBCluster' {} a -> s {masterUsername = a} :: DBCluster)++-- | Specifies whether the cluster has instances in multiple Availability+-- Zones.+dbCluster_multiAZ :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Bool)+dbCluster_multiAZ = Lens.lens (\DBCluster' {multiAZ} -> multiAZ) (\s@DBCluster' {} a -> s {multiAZ = a} :: DBCluster)++-- | Specifies the progress of the operation as a percentage.+dbCluster_percentProgress :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_percentProgress = Lens.lens (\DBCluster' {percentProgress} -> percentProgress) (\s@DBCluster' {} a -> s {percentProgress = a} :: DBCluster)++-- | Specifies the port that the database engine is listening on.+dbCluster_port :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Int)+dbCluster_port = Lens.lens (\DBCluster' {port} -> port) (\s@DBCluster' {} a -> s {port = a} :: DBCluster)++-- | Specifies the daily time range during which automated backups are+-- created if automated backups are enabled, as determined by the+-- @BackupRetentionPeriod@.+dbCluster_preferredBackupWindow :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_preferredBackupWindow = Lens.lens (\DBCluster' {preferredBackupWindow} -> preferredBackupWindow) (\s@DBCluster' {} a -> s {preferredBackupWindow = a} :: DBCluster)++-- | Specifies the weekly time range during which system maintenance can+-- occur, in Universal Coordinated Time (UTC).+dbCluster_preferredMaintenanceWindow :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_preferredMaintenanceWindow = Lens.lens (\DBCluster' {preferredMaintenanceWindow} -> preferredMaintenanceWindow) (\s@DBCluster' {} a -> s {preferredMaintenanceWindow = a} :: DBCluster)++-- | Contains one or more identifiers of the secondary clusters that are+-- associated with this cluster.+dbCluster_readReplicaIdentifiers :: Lens.Lens' DBCluster (Prelude.Maybe [Prelude.Text])+dbCluster_readReplicaIdentifiers = Lens.lens (\DBCluster' {readReplicaIdentifiers} -> readReplicaIdentifiers) (\s@DBCluster' {} a -> s {readReplicaIdentifiers = a} :: DBCluster) Prelude.. Lens.mapping Lens.coerced++-- | The reader endpoint for the cluster. The reader endpoint for a cluster+-- load balances connections across the Amazon DocumentDB replicas that are+-- available in a cluster. As clients request new connections to the reader+-- endpoint, Amazon DocumentDB distributes the connection requests among+-- the Amazon DocumentDB replicas in the cluster. This functionality can+-- help balance your read workload across multiple Amazon DocumentDB+-- replicas in your cluster.+--+-- If a failover occurs, and the Amazon DocumentDB replica that you are+-- connected to is promoted to be the primary instance, your connection is+-- dropped. To continue sending your read workload to other Amazon+-- DocumentDB replicas in the cluster, you can then reconnect to the reader+-- endpoint.+dbCluster_readerEndpoint :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_readerEndpoint = Lens.lens (\DBCluster' {readerEndpoint} -> readerEndpoint) (\s@DBCluster' {} a -> s {readerEndpoint = a} :: DBCluster)++-- | Contains the identifier of the source cluster if this cluster is a+-- secondary cluster.+dbCluster_replicationSourceIdentifier :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_replicationSourceIdentifier = Lens.lens (\DBCluster' {replicationSourceIdentifier} -> replicationSourceIdentifier) (\s@DBCluster' {} a -> s {replicationSourceIdentifier = a} :: DBCluster)++-- | Specifies the current state of this cluster.+dbCluster_status :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)+dbCluster_status = Lens.lens (\DBCluster' {status} -> status) (\s@DBCluster' {} a -> s {status = a} :: DBCluster)++-- | Specifies whether the cluster is encrypted.+dbCluster_storageEncrypted :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Bool)+dbCluster_storageEncrypted = Lens.lens (\DBCluster' {storageEncrypted} -> storageEncrypted) (\s@DBCluster' {} a -> s {storageEncrypted = a} :: DBCluster)++-- | Provides a list of virtual private cloud (VPC) security groups that the+-- cluster belongs to.+dbCluster_vpcSecurityGroups :: Lens.Lens' DBCluster (Prelude.Maybe [VpcSecurityGroupMembership])+dbCluster_vpcSecurityGroups = Lens.lens (\DBCluster' {vpcSecurityGroups} -> vpcSecurityGroups) (\s@DBCluster' {} a -> s {vpcSecurityGroups = a} :: DBCluster) Prelude.. Lens.mapping Lens.coerced++instance Data.FromXML DBCluster where+  parseXML x =+    DBCluster'+      Prelude.<$> ( x+                      Data..@? "AssociatedRoles"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "DBClusterRole")+                  )+      Prelude.<*> ( x+                      Data..@? "AvailabilityZones"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "AvailabilityZone")+                  )+      Prelude.<*> (x Data..@? "BackupRetentionPeriod")+      Prelude.<*> (x Data..@? "CloneGroupId")+      Prelude.<*> (x Data..@? "ClusterCreateTime")+      Prelude.<*> (x Data..@? "DBClusterArn")+      Prelude.<*> (x Data..@? "DBClusterIdentifier")+      Prelude.<*> ( x+                      Data..@? "DBClusterMembers"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "DBClusterMember")+                  )+      Prelude.<*> (x Data..@? "DBClusterParameterGroup")+      Prelude.<*> (x Data..@? "DBSubnetGroup")+      Prelude.<*> (x Data..@? "DbClusterResourceId")+      Prelude.<*> (x Data..@? "DeletionProtection")+      Prelude.<*> (x Data..@? "EarliestRestorableTime")+      Prelude.<*> ( x+                      Data..@? "EnabledCloudwatchLogsExports"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "member")+                  )+      Prelude.<*> (x Data..@? "Endpoint")+      Prelude.<*> (x Data..@? "Engine")+      Prelude.<*> (x Data..@? "EngineVersion")+      Prelude.<*> (x Data..@? "HostedZoneId")+      Prelude.<*> (x Data..@? "KmsKeyId")+      Prelude.<*> (x Data..@? "LatestRestorableTime")+      Prelude.<*> (x Data..@? "MasterUsername")+      Prelude.<*> (x Data..@? "MultiAZ")+      Prelude.<*> (x Data..@? "PercentProgress")+      Prelude.<*> (x Data..@? "Port")+      Prelude.<*> (x Data..@? "PreferredBackupWindow")+      Prelude.<*> (x Data..@? "PreferredMaintenanceWindow")+      Prelude.<*> ( x+                      Data..@? "ReadReplicaIdentifiers"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "ReadReplicaIdentifier")+                  )+      Prelude.<*> (x Data..@? "ReaderEndpoint")+      Prelude.<*> (x Data..@? "ReplicationSourceIdentifier")+      Prelude.<*> (x Data..@? "Status")+      Prelude.<*> (x Data..@? "StorageEncrypted")+      Prelude.<*> ( x+                      Data..@? "VpcSecurityGroups"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may+                        (Data.parseXMLList "VpcSecurityGroupMembership")+                  )++instance Prelude.Hashable DBCluster where+  hashWithSalt _salt DBCluster' {..} =+    _salt+      `Prelude.hashWithSalt` associatedRoles+      `Prelude.hashWithSalt` availabilityZones+      `Prelude.hashWithSalt` backupRetentionPeriod+      `Prelude.hashWithSalt` cloneGroupId+      `Prelude.hashWithSalt` clusterCreateTime+      `Prelude.hashWithSalt` dbClusterArn+      `Prelude.hashWithSalt` dbClusterIdentifier+      `Prelude.hashWithSalt` dbClusterMembers+      `Prelude.hashWithSalt` dbClusterParameterGroup+      `Prelude.hashWithSalt` dbSubnetGroup+      `Prelude.hashWithSalt` dbClusterResourceId+      `Prelude.hashWithSalt` deletionProtection+      `Prelude.hashWithSalt` earliestRestorableTime+      `Prelude.hashWithSalt` enabledCloudwatchLogsExports+      `Prelude.hashWithSalt` endpoint+      `Prelude.hashWithSalt` engine+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` hostedZoneId+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` latestRestorableTime+      `Prelude.hashWithSalt` masterUsername+      `Prelude.hashWithSalt` multiAZ+      `Prelude.hashWithSalt` percentProgress+      `Prelude.hashWithSalt` port+      `Prelude.hashWithSalt` preferredBackupWindow+      `Prelude.hashWithSalt` preferredMaintenanceWindow+      `Prelude.hashWithSalt` readReplicaIdentifiers+      `Prelude.hashWithSalt` readerEndpoint+      `Prelude.hashWithSalt` replicationSourceIdentifier+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` storageEncrypted+      `Prelude.hashWithSalt` vpcSecurityGroups++instance Prelude.NFData DBCluster where+  rnf DBCluster' {..} =+    Prelude.rnf associatedRoles+      `Prelude.seq` Prelude.rnf availabilityZones+      `Prelude.seq` Prelude.rnf backupRetentionPeriod+      `Prelude.seq` Prelude.rnf cloneGroupId+      `Prelude.seq` Prelude.rnf clusterCreateTime+      `Prelude.seq` Prelude.rnf dbClusterArn+      `Prelude.seq` Prelude.rnf dbClusterIdentifier+      `Prelude.seq` Prelude.rnf dbClusterMembers+      `Prelude.seq` Prelude.rnf dbClusterParameterGroup+      `Prelude.seq` Prelude.rnf dbSubnetGroup+      `Prelude.seq` Prelude.rnf dbClusterResourceId+      `Prelude.seq` Prelude.rnf deletionProtection+      `Prelude.seq` Prelude.rnf earliestRestorableTime+      `Prelude.seq` Prelude.rnf enabledCloudwatchLogsExports+      `Prelude.seq` Prelude.rnf endpoint+      `Prelude.seq` Prelude.rnf engine+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf hostedZoneId+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf+        latestRestorableTime+      `Prelude.seq` Prelude.rnf masterUsername+      `Prelude.seq` Prelude.rnf multiAZ+      `Prelude.seq` Prelude.rnf+        percentProgress+      `Prelude.seq` Prelude.rnf port+      `Prelude.seq` Prelude.rnf+        preferredBackupWindow+      `Prelude.seq` Prelude.rnf+        preferredMaintenanceWindow+      `Prelude.seq` Prelude.rnf+        readReplicaIdentifiers+      `Prelude.seq` Prelude.rnf+        readerEndpoint+      `Prelude.seq` Prelude.rnf+        replicationSourceIdentifier+      `Prelude.seq` Prelude.rnf+        status+      `Prelude.seq` Prelude.rnf+        storageEncrypted+      `Prelude.seq` Prelude.rnf+        vpcSecurityGroups
+ gen/Amazonka/DocumentDB/Types/DBClusterMember.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.DocumentDB.Types.DBClusterMember+-- 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.DocumentDB.Types.DBClusterMember 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++-- | Contains information about an instance that is part of a cluster.+--+-- /See:/ 'newDBClusterMember' smart constructor.+data DBClusterMember = DBClusterMember'+  { -- | Specifies the status of the cluster parameter group for this member of+    -- the DB cluster.+    dbClusterParameterGroupStatus :: Prelude.Maybe Prelude.Text,+    -- | Specifies the instance identifier for this member of the cluster.+    dbInstanceIdentifier :: Prelude.Maybe Prelude.Text,+    -- | A value that is @true@ if the cluster member is the primary instance for+    -- the cluster and @false@ otherwise.+    isClusterWriter :: Prelude.Maybe Prelude.Bool,+    -- | A value that specifies the order in which an Amazon DocumentDB replica+    -- is promoted to the primary instance after a failure of the existing+    -- primary instance.+    promotionTier :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DBClusterMember' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterParameterGroupStatus', 'dbClusterMember_dbClusterParameterGroupStatus' - Specifies the status of the cluster parameter group for this member of+-- the DB cluster.+--+-- 'dbInstanceIdentifier', 'dbClusterMember_dbInstanceIdentifier' - Specifies the instance identifier for this member of the cluster.+--+-- 'isClusterWriter', 'dbClusterMember_isClusterWriter' - A value that is @true@ if the cluster member is the primary instance for+-- the cluster and @false@ otherwise.+--+-- 'promotionTier', 'dbClusterMember_promotionTier' - A value that specifies the order in which an Amazon DocumentDB replica+-- is promoted to the primary instance after a failure of the existing+-- primary instance.+newDBClusterMember ::+  DBClusterMember+newDBClusterMember =+  DBClusterMember'+    { dbClusterParameterGroupStatus =+        Prelude.Nothing,+      dbInstanceIdentifier = Prelude.Nothing,+      isClusterWriter = Prelude.Nothing,+      promotionTier = Prelude.Nothing+    }++-- | Specifies the status of the cluster parameter group for this member of+-- the DB cluster.+dbClusterMember_dbClusterParameterGroupStatus :: Lens.Lens' DBClusterMember (Prelude.Maybe Prelude.Text)+dbClusterMember_dbClusterParameterGroupStatus = Lens.lens (\DBClusterMember' {dbClusterParameterGroupStatus} -> dbClusterParameterGroupStatus) (\s@DBClusterMember' {} a -> s {dbClusterParameterGroupStatus = a} :: DBClusterMember)++-- | Specifies the instance identifier for this member of the cluster.+dbClusterMember_dbInstanceIdentifier :: Lens.Lens' DBClusterMember (Prelude.Maybe Prelude.Text)+dbClusterMember_dbInstanceIdentifier = Lens.lens (\DBClusterMember' {dbInstanceIdentifier} -> dbInstanceIdentifier) (\s@DBClusterMember' {} a -> s {dbInstanceIdentifier = a} :: DBClusterMember)++-- | A value that is @true@ if the cluster member is the primary instance for+-- the cluster and @false@ otherwise.+dbClusterMember_isClusterWriter :: Lens.Lens' DBClusterMember (Prelude.Maybe Prelude.Bool)+dbClusterMember_isClusterWriter = Lens.lens (\DBClusterMember' {isClusterWriter} -> isClusterWriter) (\s@DBClusterMember' {} a -> s {isClusterWriter = a} :: DBClusterMember)++-- | A value that specifies the order in which an Amazon DocumentDB replica+-- is promoted to the primary instance after a failure of the existing+-- primary instance.+dbClusterMember_promotionTier :: Lens.Lens' DBClusterMember (Prelude.Maybe Prelude.Int)+dbClusterMember_promotionTier = Lens.lens (\DBClusterMember' {promotionTier} -> promotionTier) (\s@DBClusterMember' {} a -> s {promotionTier = a} :: DBClusterMember)++instance Data.FromXML DBClusterMember where+  parseXML x =+    DBClusterMember'+      Prelude.<$> (x Data..@? "DBClusterParameterGroupStatus")+      Prelude.<*> (x Data..@? "DBInstanceIdentifier")+      Prelude.<*> (x Data..@? "IsClusterWriter")+      Prelude.<*> (x Data..@? "PromotionTier")++instance Prelude.Hashable DBClusterMember where+  hashWithSalt _salt DBClusterMember' {..} =+    _salt+      `Prelude.hashWithSalt` dbClusterParameterGroupStatus+      `Prelude.hashWithSalt` dbInstanceIdentifier+      `Prelude.hashWithSalt` isClusterWriter+      `Prelude.hashWithSalt` promotionTier++instance Prelude.NFData DBClusterMember where+  rnf DBClusterMember' {..} =+    Prelude.rnf dbClusterParameterGroupStatus+      `Prelude.seq` Prelude.rnf dbInstanceIdentifier+      `Prelude.seq` Prelude.rnf isClusterWriter+      `Prelude.seq` Prelude.rnf promotionTier
+ gen/Amazonka/DocumentDB/Types/DBClusterParameterGroup.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.Types.DBClusterParameterGroup+-- 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.DocumentDB.Types.DBClusterParameterGroup 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++-- | Detailed information about a cluster parameter group.+--+-- /See:/ 'newDBClusterParameterGroup' smart constructor.+data DBClusterParameterGroup = DBClusterParameterGroup'+  { -- | The Amazon Resource Name (ARN) for the cluster parameter group.+    dbClusterParameterGroupArn :: Prelude.Maybe Prelude.Text,+    -- | Provides the name of the cluster parameter group.+    dbClusterParameterGroupName :: Prelude.Maybe Prelude.Text,+    -- | Provides the name of the parameter group family that this cluster+    -- parameter group is compatible with.+    dbParameterGroupFamily :: Prelude.Maybe Prelude.Text,+    -- | Provides the customer-specified description for this cluster parameter+    -- group.+    description :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DBClusterParameterGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterParameterGroupArn', 'dbClusterParameterGroup_dbClusterParameterGroupArn' - The Amazon Resource Name (ARN) for the cluster parameter group.+--+-- 'dbClusterParameterGroupName', 'dbClusterParameterGroup_dbClusterParameterGroupName' - Provides the name of the cluster parameter group.+--+-- 'dbParameterGroupFamily', 'dbClusterParameterGroup_dbParameterGroupFamily' - Provides the name of the parameter group family that this cluster+-- parameter group is compatible with.+--+-- 'description', 'dbClusterParameterGroup_description' - Provides the customer-specified description for this cluster parameter+-- group.+newDBClusterParameterGroup ::+  DBClusterParameterGroup+newDBClusterParameterGroup =+  DBClusterParameterGroup'+    { dbClusterParameterGroupArn =+        Prelude.Nothing,+      dbClusterParameterGroupName = Prelude.Nothing,+      dbParameterGroupFamily = Prelude.Nothing,+      description = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) for the cluster parameter group.+dbClusterParameterGroup_dbClusterParameterGroupArn :: Lens.Lens' DBClusterParameterGroup (Prelude.Maybe Prelude.Text)+dbClusterParameterGroup_dbClusterParameterGroupArn = Lens.lens (\DBClusterParameterGroup' {dbClusterParameterGroupArn} -> dbClusterParameterGroupArn) (\s@DBClusterParameterGroup' {} a -> s {dbClusterParameterGroupArn = a} :: DBClusterParameterGroup)++-- | Provides the name of the cluster parameter group.+dbClusterParameterGroup_dbClusterParameterGroupName :: Lens.Lens' DBClusterParameterGroup (Prelude.Maybe Prelude.Text)+dbClusterParameterGroup_dbClusterParameterGroupName = Lens.lens (\DBClusterParameterGroup' {dbClusterParameterGroupName} -> dbClusterParameterGroupName) (\s@DBClusterParameterGroup' {} a -> s {dbClusterParameterGroupName = a} :: DBClusterParameterGroup)++-- | Provides the name of the parameter group family that this cluster+-- parameter group is compatible with.+dbClusterParameterGroup_dbParameterGroupFamily :: Lens.Lens' DBClusterParameterGroup (Prelude.Maybe Prelude.Text)+dbClusterParameterGroup_dbParameterGroupFamily = Lens.lens (\DBClusterParameterGroup' {dbParameterGroupFamily} -> dbParameterGroupFamily) (\s@DBClusterParameterGroup' {} a -> s {dbParameterGroupFamily = a} :: DBClusterParameterGroup)++-- | Provides the customer-specified description for this cluster parameter+-- group.+dbClusterParameterGroup_description :: Lens.Lens' DBClusterParameterGroup (Prelude.Maybe Prelude.Text)+dbClusterParameterGroup_description = Lens.lens (\DBClusterParameterGroup' {description} -> description) (\s@DBClusterParameterGroup' {} a -> s {description = a} :: DBClusterParameterGroup)++instance Data.FromXML DBClusterParameterGroup where+  parseXML x =+    DBClusterParameterGroup'+      Prelude.<$> (x Data..@? "DBClusterParameterGroupArn")+      Prelude.<*> (x Data..@? "DBClusterParameterGroupName")+      Prelude.<*> (x Data..@? "DBParameterGroupFamily")+      Prelude.<*> (x Data..@? "Description")++instance Prelude.Hashable DBClusterParameterGroup where+  hashWithSalt _salt DBClusterParameterGroup' {..} =+    _salt+      `Prelude.hashWithSalt` dbClusterParameterGroupArn+      `Prelude.hashWithSalt` dbClusterParameterGroupName+      `Prelude.hashWithSalt` dbParameterGroupFamily+      `Prelude.hashWithSalt` description++instance Prelude.NFData DBClusterParameterGroup where+  rnf DBClusterParameterGroup' {..} =+    Prelude.rnf dbClusterParameterGroupArn+      `Prelude.seq` Prelude.rnf dbClusterParameterGroupName+      `Prelude.seq` Prelude.rnf dbParameterGroupFamily+      `Prelude.seq` Prelude.rnf description
+ gen/Amazonka/DocumentDB/Types/DBClusterParameterGroupNameMessage.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.Types.DBClusterParameterGroupNameMessage+-- 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.DocumentDB.Types.DBClusterParameterGroupNameMessage 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++-- | Contains the name of a cluster parameter group.+--+-- /See:/ 'newDBClusterParameterGroupNameMessage' smart constructor.+data DBClusterParameterGroupNameMessage = DBClusterParameterGroupNameMessage'+  { -- | The name of a cluster parameter group.+    --+    -- Constraints:+    --+    -- -   Must be from 1 to 255 letters or numbers.+    --+    -- -   The first character must be a letter.+    --+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.+    --+    -- This value is stored as a lowercase string.+    dbClusterParameterGroupName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DBClusterParameterGroupNameMessage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterParameterGroupName', 'dbClusterParameterGroupNameMessage_dbClusterParameterGroupName' - The name of a cluster parameter group.+--+-- Constraints:+--+-- -   Must be from 1 to 255 letters or numbers.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- This value is stored as a lowercase string.+newDBClusterParameterGroupNameMessage ::+  DBClusterParameterGroupNameMessage+newDBClusterParameterGroupNameMessage =+  DBClusterParameterGroupNameMessage'+    { dbClusterParameterGroupName =+        Prelude.Nothing+    }++-- | The name of a cluster parameter group.+--+-- Constraints:+--+-- -   Must be from 1 to 255 letters or numbers.+--+-- -   The first character must be a letter.+--+-- -   Cannot end with a hyphen or contain two consecutive hyphens.+--+-- This value is stored as a lowercase string.+dbClusterParameterGroupNameMessage_dbClusterParameterGroupName :: Lens.Lens' DBClusterParameterGroupNameMessage (Prelude.Maybe Prelude.Text)+dbClusterParameterGroupNameMessage_dbClusterParameterGroupName = Lens.lens (\DBClusterParameterGroupNameMessage' {dbClusterParameterGroupName} -> dbClusterParameterGroupName) (\s@DBClusterParameterGroupNameMessage' {} a -> s {dbClusterParameterGroupName = a} :: DBClusterParameterGroupNameMessage)++instance+  Data.FromXML+    DBClusterParameterGroupNameMessage+  where+  parseXML x =+    DBClusterParameterGroupNameMessage'+      Prelude.<$> (x Data..@? "DBClusterParameterGroupName")++instance+  Prelude.Hashable+    DBClusterParameterGroupNameMessage+  where+  hashWithSalt+    _salt+    DBClusterParameterGroupNameMessage' {..} =+      _salt+        `Prelude.hashWithSalt` dbClusterParameterGroupName++instance+  Prelude.NFData+    DBClusterParameterGroupNameMessage+  where+  rnf DBClusterParameterGroupNameMessage' {..} =+    Prelude.rnf dbClusterParameterGroupName
+ gen/Amazonka/DocumentDB/Types/DBClusterRole.hs view
@@ -0,0 +1,114 @@+{-# 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.DocumentDB.Types.DBClusterRole+-- 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.DocumentDB.Types.DBClusterRole 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 Identity and Access Management (IAM) role that is+-- associated with a cluster.+--+-- /See:/ 'newDBClusterRole' smart constructor.+data DBClusterRole = DBClusterRole'+  { -- | The Amazon Resource Name (ARN) of the IAMrole that is associated with+    -- the DB cluster.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | Describes the state of association between the IAMrole and the cluster.+    -- The @Status@ property returns one of the following values:+    --+    -- -   @ACTIVE@ - The IAMrole ARN is associated with the cluster and can be+    --     used to access other Amazon Web Services services on your behalf.+    --+    -- -   @PENDING@ - The IAMrole ARN is being associated with the cluster.+    --+    -- -   @INVALID@ - The IAMrole ARN is associated with the cluster, but the+    --     cluster cannot assume the IAMrole to access other Amazon Web+    --     Services services on your behalf.+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DBClusterRole' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'roleArn', 'dbClusterRole_roleArn' - The Amazon Resource Name (ARN) of the IAMrole that is associated with+-- the DB cluster.+--+-- 'status', 'dbClusterRole_status' - Describes the state of association between the IAMrole and the cluster.+-- The @Status@ property returns one of the following values:+--+-- -   @ACTIVE@ - The IAMrole ARN is associated with the cluster and can be+--     used to access other Amazon Web Services services on your behalf.+--+-- -   @PENDING@ - The IAMrole ARN is being associated with the cluster.+--+-- -   @INVALID@ - The IAMrole ARN is associated with the cluster, but the+--     cluster cannot assume the IAMrole to access other Amazon Web+--     Services services on your behalf.+newDBClusterRole ::+  DBClusterRole+newDBClusterRole =+  DBClusterRole'+    { roleArn = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the IAMrole that is associated with+-- the DB cluster.+dbClusterRole_roleArn :: Lens.Lens' DBClusterRole (Prelude.Maybe Prelude.Text)+dbClusterRole_roleArn = Lens.lens (\DBClusterRole' {roleArn} -> roleArn) (\s@DBClusterRole' {} a -> s {roleArn = a} :: DBClusterRole)++-- | Describes the state of association between the IAMrole and the cluster.+-- The @Status@ property returns one of the following values:+--+-- -   @ACTIVE@ - The IAMrole ARN is associated with the cluster and can be+--     used to access other Amazon Web Services services on your behalf.+--+-- -   @PENDING@ - The IAMrole ARN is being associated with the cluster.+--+-- -   @INVALID@ - The IAMrole ARN is associated with the cluster, but the+--     cluster cannot assume the IAMrole to access other Amazon Web+--     Services services on your behalf.+dbClusterRole_status :: Lens.Lens' DBClusterRole (Prelude.Maybe Prelude.Text)+dbClusterRole_status = Lens.lens (\DBClusterRole' {status} -> status) (\s@DBClusterRole' {} a -> s {status = a} :: DBClusterRole)++instance Data.FromXML DBClusterRole where+  parseXML x =+    DBClusterRole'+      Prelude.<$> (x Data..@? "RoleArn")+      Prelude.<*> (x Data..@? "Status")++instance Prelude.Hashable DBClusterRole where+  hashWithSalt _salt DBClusterRole' {..} =+    _salt+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` status++instance Prelude.NFData DBClusterRole where+  rnf DBClusterRole' {..} =+    Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/DocumentDB/Types/DBClusterSnapshot.hs view
@@ -0,0 +1,289 @@+{-# 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.DocumentDB.Types.DBClusterSnapshot+-- 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.DocumentDB.Types.DBClusterSnapshot 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++-- | Detailed information about a cluster snapshot.+--+-- /See:/ 'newDBClusterSnapshot' smart constructor.+data DBClusterSnapshot = DBClusterSnapshot'+  { -- | Provides the list of Amazon EC2 Availability Zones that instances in the+    -- cluster snapshot can be restored in.+    availabilityZones :: Prelude.Maybe [Prelude.Text],+    -- | Specifies the time when the cluster was created, in Universal+    -- Coordinated Time (UTC).+    clusterCreateTime :: Prelude.Maybe Data.ISO8601,+    -- | Specifies the cluster identifier of the cluster that this cluster+    -- snapshot was created from.+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) for the cluster snapshot.+    dbClusterSnapshotArn :: Prelude.Maybe Prelude.Text,+    -- | Specifies the identifier for the cluster snapshot.+    dbClusterSnapshotIdentifier :: Prelude.Maybe Prelude.Text,+    -- | Specifies the name of the database engine.+    engine :: Prelude.Maybe Prelude.Text,+    -- | Provides the version of the database engine for this cluster snapshot.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | If @StorageEncrypted@ is @true@, the KMS key identifier for the+    -- encrypted cluster snapshot.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | Provides the master user name for the cluster snapshot.+    masterUsername :: Prelude.Maybe Prelude.Text,+    -- | Specifies the percentage of the estimated data that has been+    -- transferred.+    percentProgress :: Prelude.Maybe Prelude.Int,+    -- | Specifies the port that the cluster was listening on at the time of the+    -- snapshot.+    port :: Prelude.Maybe Prelude.Int,+    -- | Provides the time when the snapshot was taken, in UTC.+    snapshotCreateTime :: Prelude.Maybe Data.ISO8601,+    -- | Provides the type of the cluster snapshot.+    snapshotType :: Prelude.Maybe Prelude.Text,+    -- | If the cluster snapshot was copied from a source cluster snapshot, the+    -- ARN for the source cluster snapshot; otherwise, a null value.+    sourceDBClusterSnapshotArn :: Prelude.Maybe Prelude.Text,+    -- | Specifies the status of this cluster snapshot.+    status :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether the cluster snapshot is encrypted.+    storageEncrypted :: Prelude.Maybe Prelude.Bool,+    -- | Provides the virtual private cloud (VPC) ID that is associated with the+    -- cluster snapshot.+    vpcId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DBClusterSnapshot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'availabilityZones', 'dbClusterSnapshot_availabilityZones' - Provides the list of Amazon EC2 Availability Zones that instances in the+-- cluster snapshot can be restored in.+--+-- 'clusterCreateTime', 'dbClusterSnapshot_clusterCreateTime' - Specifies the time when the cluster was created, in Universal+-- Coordinated Time (UTC).+--+-- 'dbClusterIdentifier', 'dbClusterSnapshot_dbClusterIdentifier' - Specifies the cluster identifier of the cluster that this cluster+-- snapshot was created from.+--+-- 'dbClusterSnapshotArn', 'dbClusterSnapshot_dbClusterSnapshotArn' - The Amazon Resource Name (ARN) for the cluster snapshot.+--+-- 'dbClusterSnapshotIdentifier', 'dbClusterSnapshot_dbClusterSnapshotIdentifier' - Specifies the identifier for the cluster snapshot.+--+-- 'engine', 'dbClusterSnapshot_engine' - Specifies the name of the database engine.+--+-- 'engineVersion', 'dbClusterSnapshot_engineVersion' - Provides the version of the database engine for this cluster snapshot.+--+-- 'kmsKeyId', 'dbClusterSnapshot_kmsKeyId' - If @StorageEncrypted@ is @true@, the KMS key identifier for the+-- encrypted cluster snapshot.+--+-- 'masterUsername', 'dbClusterSnapshot_masterUsername' - Provides the master user name for the cluster snapshot.+--+-- 'percentProgress', 'dbClusterSnapshot_percentProgress' - Specifies the percentage of the estimated data that has been+-- transferred.+--+-- 'port', 'dbClusterSnapshot_port' - Specifies the port that the cluster was listening on at the time of the+-- snapshot.+--+-- 'snapshotCreateTime', 'dbClusterSnapshot_snapshotCreateTime' - Provides the time when the snapshot was taken, in UTC.+--+-- 'snapshotType', 'dbClusterSnapshot_snapshotType' - Provides the type of the cluster snapshot.+--+-- 'sourceDBClusterSnapshotArn', 'dbClusterSnapshot_sourceDBClusterSnapshotArn' - If the cluster snapshot was copied from a source cluster snapshot, the+-- ARN for the source cluster snapshot; otherwise, a null value.+--+-- 'status', 'dbClusterSnapshot_status' - Specifies the status of this cluster snapshot.+--+-- 'storageEncrypted', 'dbClusterSnapshot_storageEncrypted' - Specifies whether the cluster snapshot is encrypted.+--+-- 'vpcId', 'dbClusterSnapshot_vpcId' - Provides the virtual private cloud (VPC) ID that is associated with the+-- cluster snapshot.+newDBClusterSnapshot ::+  DBClusterSnapshot+newDBClusterSnapshot =+  DBClusterSnapshot'+    { availabilityZones =+        Prelude.Nothing,+      clusterCreateTime = Prelude.Nothing,+      dbClusterIdentifier = Prelude.Nothing,+      dbClusterSnapshotArn = Prelude.Nothing,+      dbClusterSnapshotIdentifier = Prelude.Nothing,+      engine = Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      kmsKeyId = Prelude.Nothing,+      masterUsername = Prelude.Nothing,+      percentProgress = Prelude.Nothing,+      port = Prelude.Nothing,+      snapshotCreateTime = Prelude.Nothing,+      snapshotType = Prelude.Nothing,+      sourceDBClusterSnapshotArn = Prelude.Nothing,+      status = Prelude.Nothing,+      storageEncrypted = Prelude.Nothing,+      vpcId = Prelude.Nothing+    }++-- | Provides the list of Amazon EC2 Availability Zones that instances in the+-- cluster snapshot can be restored in.+dbClusterSnapshot_availabilityZones :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe [Prelude.Text])+dbClusterSnapshot_availabilityZones = Lens.lens (\DBClusterSnapshot' {availabilityZones} -> availabilityZones) (\s@DBClusterSnapshot' {} a -> s {availabilityZones = a} :: DBClusterSnapshot) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the time when the cluster was created, in Universal+-- Coordinated Time (UTC).+dbClusterSnapshot_clusterCreateTime :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.UTCTime)+dbClusterSnapshot_clusterCreateTime = Lens.lens (\DBClusterSnapshot' {clusterCreateTime} -> clusterCreateTime) (\s@DBClusterSnapshot' {} a -> s {clusterCreateTime = a} :: DBClusterSnapshot) Prelude.. Lens.mapping Data._Time++-- | Specifies the cluster identifier of the cluster that this cluster+-- snapshot was created from.+dbClusterSnapshot_dbClusterIdentifier :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Text)+dbClusterSnapshot_dbClusterIdentifier = Lens.lens (\DBClusterSnapshot' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@DBClusterSnapshot' {} a -> s {dbClusterIdentifier = a} :: DBClusterSnapshot)++-- | The Amazon Resource Name (ARN) for the cluster snapshot.+dbClusterSnapshot_dbClusterSnapshotArn :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Text)+dbClusterSnapshot_dbClusterSnapshotArn = Lens.lens (\DBClusterSnapshot' {dbClusterSnapshotArn} -> dbClusterSnapshotArn) (\s@DBClusterSnapshot' {} a -> s {dbClusterSnapshotArn = a} :: DBClusterSnapshot)++-- | Specifies the identifier for the cluster snapshot.+dbClusterSnapshot_dbClusterSnapshotIdentifier :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Text)+dbClusterSnapshot_dbClusterSnapshotIdentifier = Lens.lens (\DBClusterSnapshot' {dbClusterSnapshotIdentifier} -> dbClusterSnapshotIdentifier) (\s@DBClusterSnapshot' {} a -> s {dbClusterSnapshotIdentifier = a} :: DBClusterSnapshot)++-- | Specifies the name of the database engine.+dbClusterSnapshot_engine :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Text)+dbClusterSnapshot_engine = Lens.lens (\DBClusterSnapshot' {engine} -> engine) (\s@DBClusterSnapshot' {} a -> s {engine = a} :: DBClusterSnapshot)++-- | Provides the version of the database engine for this cluster snapshot.+dbClusterSnapshot_engineVersion :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Text)+dbClusterSnapshot_engineVersion = Lens.lens (\DBClusterSnapshot' {engineVersion} -> engineVersion) (\s@DBClusterSnapshot' {} a -> s {engineVersion = a} :: DBClusterSnapshot)++-- | If @StorageEncrypted@ is @true@, the KMS key identifier for the+-- encrypted cluster snapshot.+dbClusterSnapshot_kmsKeyId :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Text)+dbClusterSnapshot_kmsKeyId = Lens.lens (\DBClusterSnapshot' {kmsKeyId} -> kmsKeyId) (\s@DBClusterSnapshot' {} a -> s {kmsKeyId = a} :: DBClusterSnapshot)++-- | Provides the master user name for the cluster snapshot.+dbClusterSnapshot_masterUsername :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Text)+dbClusterSnapshot_masterUsername = Lens.lens (\DBClusterSnapshot' {masterUsername} -> masterUsername) (\s@DBClusterSnapshot' {} a -> s {masterUsername = a} :: DBClusterSnapshot)++-- | Specifies the percentage of the estimated data that has been+-- transferred.+dbClusterSnapshot_percentProgress :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Int)+dbClusterSnapshot_percentProgress = Lens.lens (\DBClusterSnapshot' {percentProgress} -> percentProgress) (\s@DBClusterSnapshot' {} a -> s {percentProgress = a} :: DBClusterSnapshot)++-- | Specifies the port that the cluster was listening on at the time of the+-- snapshot.+dbClusterSnapshot_port :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Int)+dbClusterSnapshot_port = Lens.lens (\DBClusterSnapshot' {port} -> port) (\s@DBClusterSnapshot' {} a -> s {port = a} :: DBClusterSnapshot)++-- | Provides the time when the snapshot was taken, in UTC.+dbClusterSnapshot_snapshotCreateTime :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.UTCTime)+dbClusterSnapshot_snapshotCreateTime = Lens.lens (\DBClusterSnapshot' {snapshotCreateTime} -> snapshotCreateTime) (\s@DBClusterSnapshot' {} a -> s {snapshotCreateTime = a} :: DBClusterSnapshot) Prelude.. Lens.mapping Data._Time++-- | Provides the type of the cluster snapshot.+dbClusterSnapshot_snapshotType :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Text)+dbClusterSnapshot_snapshotType = Lens.lens (\DBClusterSnapshot' {snapshotType} -> snapshotType) (\s@DBClusterSnapshot' {} a -> s {snapshotType = a} :: DBClusterSnapshot)++-- | If the cluster snapshot was copied from a source cluster snapshot, the+-- ARN for the source cluster snapshot; otherwise, a null value.+dbClusterSnapshot_sourceDBClusterSnapshotArn :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Text)+dbClusterSnapshot_sourceDBClusterSnapshotArn = Lens.lens (\DBClusterSnapshot' {sourceDBClusterSnapshotArn} -> sourceDBClusterSnapshotArn) (\s@DBClusterSnapshot' {} a -> s {sourceDBClusterSnapshotArn = a} :: DBClusterSnapshot)++-- | Specifies the status of this cluster snapshot.+dbClusterSnapshot_status :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Text)+dbClusterSnapshot_status = Lens.lens (\DBClusterSnapshot' {status} -> status) (\s@DBClusterSnapshot' {} a -> s {status = a} :: DBClusterSnapshot)++-- | Specifies whether the cluster snapshot is encrypted.+dbClusterSnapshot_storageEncrypted :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Bool)+dbClusterSnapshot_storageEncrypted = Lens.lens (\DBClusterSnapshot' {storageEncrypted} -> storageEncrypted) (\s@DBClusterSnapshot' {} a -> s {storageEncrypted = a} :: DBClusterSnapshot)++-- | Provides the virtual private cloud (VPC) ID that is associated with the+-- cluster snapshot.+dbClusterSnapshot_vpcId :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Text)+dbClusterSnapshot_vpcId = Lens.lens (\DBClusterSnapshot' {vpcId} -> vpcId) (\s@DBClusterSnapshot' {} a -> s {vpcId = a} :: DBClusterSnapshot)++instance Data.FromXML DBClusterSnapshot where+  parseXML x =+    DBClusterSnapshot'+      Prelude.<$> ( x+                      Data..@? "AvailabilityZones"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "AvailabilityZone")+                  )+      Prelude.<*> (x Data..@? "ClusterCreateTime")+      Prelude.<*> (x Data..@? "DBClusterIdentifier")+      Prelude.<*> (x Data..@? "DBClusterSnapshotArn")+      Prelude.<*> (x Data..@? "DBClusterSnapshotIdentifier")+      Prelude.<*> (x Data..@? "Engine")+      Prelude.<*> (x Data..@? "EngineVersion")+      Prelude.<*> (x Data..@? "KmsKeyId")+      Prelude.<*> (x Data..@? "MasterUsername")+      Prelude.<*> (x Data..@? "PercentProgress")+      Prelude.<*> (x Data..@? "Port")+      Prelude.<*> (x Data..@? "SnapshotCreateTime")+      Prelude.<*> (x Data..@? "SnapshotType")+      Prelude.<*> (x Data..@? "SourceDBClusterSnapshotArn")+      Prelude.<*> (x Data..@? "Status")+      Prelude.<*> (x Data..@? "StorageEncrypted")+      Prelude.<*> (x Data..@? "VpcId")++instance Prelude.Hashable DBClusterSnapshot where+  hashWithSalt _salt DBClusterSnapshot' {..} =+    _salt+      `Prelude.hashWithSalt` availabilityZones+      `Prelude.hashWithSalt` clusterCreateTime+      `Prelude.hashWithSalt` dbClusterIdentifier+      `Prelude.hashWithSalt` dbClusterSnapshotArn+      `Prelude.hashWithSalt` dbClusterSnapshotIdentifier+      `Prelude.hashWithSalt` engine+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` masterUsername+      `Prelude.hashWithSalt` percentProgress+      `Prelude.hashWithSalt` port+      `Prelude.hashWithSalt` snapshotCreateTime+      `Prelude.hashWithSalt` snapshotType+      `Prelude.hashWithSalt` sourceDBClusterSnapshotArn+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` storageEncrypted+      `Prelude.hashWithSalt` vpcId++instance Prelude.NFData DBClusterSnapshot where+  rnf DBClusterSnapshot' {..} =+    Prelude.rnf availabilityZones+      `Prelude.seq` Prelude.rnf clusterCreateTime+      `Prelude.seq` Prelude.rnf dbClusterIdentifier+      `Prelude.seq` Prelude.rnf dbClusterSnapshotArn+      `Prelude.seq` Prelude.rnf dbClusterSnapshotIdentifier+      `Prelude.seq` Prelude.rnf engine+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf masterUsername+      `Prelude.seq` Prelude.rnf percentProgress+      `Prelude.seq` Prelude.rnf port+      `Prelude.seq` Prelude.rnf snapshotCreateTime+      `Prelude.seq` Prelude.rnf snapshotType+      `Prelude.seq` Prelude.rnf sourceDBClusterSnapshotArn+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf storageEncrypted+      `Prelude.seq` Prelude.rnf vpcId
+ gen/Amazonka/DocumentDB/Types/DBClusterSnapshotAttribute.hs view
@@ -0,0 +1,118 @@+{-# 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.DocumentDB.Types.DBClusterSnapshotAttribute+-- 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.DocumentDB.Types.DBClusterSnapshotAttribute 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++-- | Contains the name and values of a manual cluster snapshot attribute.+--+-- Manual cluster snapshot attributes are used to authorize other Amazon+-- Web Services accounts to restore a manual cluster snapshot.+--+-- /See:/ 'newDBClusterSnapshotAttribute' smart constructor.+data DBClusterSnapshotAttribute = DBClusterSnapshotAttribute'+  { -- | The name of the manual cluster snapshot attribute.+    --+    -- The attribute named @restore@ refers to the list of Amazon Web Services+    -- accounts that have permission to copy or restore the manual cluster+    -- snapshot.+    attributeName :: Prelude.Maybe Prelude.Text,+    -- | The values for the manual cluster snapshot attribute.+    --+    -- If the @AttributeName@ field is set to @restore@, then this element+    -- returns a list of IDs of the Amazon Web Services accounts that are+    -- authorized to copy or restore the manual cluster snapshot. If a value of+    -- @all@ is in the list, then the manual cluster snapshot is public and+    -- available for any Amazon Web Services account to copy or restore.+    attributeValues :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DBClusterSnapshotAttribute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributeName', 'dbClusterSnapshotAttribute_attributeName' - The name of the manual cluster snapshot attribute.+--+-- The attribute named @restore@ refers to the list of Amazon Web Services+-- accounts that have permission to copy or restore the manual cluster+-- snapshot.+--+-- 'attributeValues', 'dbClusterSnapshotAttribute_attributeValues' - The values for the manual cluster snapshot attribute.+--+-- If the @AttributeName@ field is set to @restore@, then this element+-- returns a list of IDs of the Amazon Web Services accounts that are+-- authorized to copy or restore the manual cluster snapshot. If a value of+-- @all@ is in the list, then the manual cluster snapshot is public and+-- available for any Amazon Web Services account to copy or restore.+newDBClusterSnapshotAttribute ::+  DBClusterSnapshotAttribute+newDBClusterSnapshotAttribute =+  DBClusterSnapshotAttribute'+    { attributeName =+        Prelude.Nothing,+      attributeValues = Prelude.Nothing+    }++-- | The name of the manual cluster snapshot attribute.+--+-- The attribute named @restore@ refers to the list of Amazon Web Services+-- accounts that have permission to copy or restore the manual cluster+-- snapshot.+dbClusterSnapshotAttribute_attributeName :: Lens.Lens' DBClusterSnapshotAttribute (Prelude.Maybe Prelude.Text)+dbClusterSnapshotAttribute_attributeName = Lens.lens (\DBClusterSnapshotAttribute' {attributeName} -> attributeName) (\s@DBClusterSnapshotAttribute' {} a -> s {attributeName = a} :: DBClusterSnapshotAttribute)++-- | The values for the manual cluster snapshot attribute.+--+-- If the @AttributeName@ field is set to @restore@, then this element+-- returns a list of IDs of the Amazon Web Services accounts that are+-- authorized to copy or restore the manual cluster snapshot. If a value of+-- @all@ is in the list, then the manual cluster snapshot is public and+-- available for any Amazon Web Services account to copy or restore.+dbClusterSnapshotAttribute_attributeValues :: Lens.Lens' DBClusterSnapshotAttribute (Prelude.Maybe [Prelude.Text])+dbClusterSnapshotAttribute_attributeValues = Lens.lens (\DBClusterSnapshotAttribute' {attributeValues} -> attributeValues) (\s@DBClusterSnapshotAttribute' {} a -> s {attributeValues = a} :: DBClusterSnapshotAttribute) Prelude.. Lens.mapping Lens.coerced++instance Data.FromXML DBClusterSnapshotAttribute where+  parseXML x =+    DBClusterSnapshotAttribute'+      Prelude.<$> (x Data..@? "AttributeName")+      Prelude.<*> ( x+                      Data..@? "AttributeValues"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "AttributeValue")+                  )++instance Prelude.Hashable DBClusterSnapshotAttribute where+  hashWithSalt _salt DBClusterSnapshotAttribute' {..} =+    _salt+      `Prelude.hashWithSalt` attributeName+      `Prelude.hashWithSalt` attributeValues++instance Prelude.NFData DBClusterSnapshotAttribute where+  rnf DBClusterSnapshotAttribute' {..} =+    Prelude.rnf attributeName+      `Prelude.seq` Prelude.rnf attributeValues
+ gen/Amazonka/DocumentDB/Types/DBClusterSnapshotAttributesResult.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.DocumentDB.Types.DBClusterSnapshotAttributesResult+-- 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.DocumentDB.Types.DBClusterSnapshotAttributesResult where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types.DBClusterSnapshotAttribute+import qualified Amazonka.Prelude as Prelude++-- | Detailed information about the attributes that are associated with a+-- cluster snapshot.+--+-- /See:/ 'newDBClusterSnapshotAttributesResult' smart constructor.+data DBClusterSnapshotAttributesResult = DBClusterSnapshotAttributesResult'+  { -- | The list of attributes and values for the cluster snapshot.+    dbClusterSnapshotAttributes :: Prelude.Maybe [DBClusterSnapshotAttribute],+    -- | The identifier of the cluster snapshot that the attributes apply to.+    dbClusterSnapshotIdentifier :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DBClusterSnapshotAttributesResult' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterSnapshotAttributes', 'dbClusterSnapshotAttributesResult_dbClusterSnapshotAttributes' - The list of attributes and values for the cluster snapshot.+--+-- 'dbClusterSnapshotIdentifier', 'dbClusterSnapshotAttributesResult_dbClusterSnapshotIdentifier' - The identifier of the cluster snapshot that the attributes apply to.+newDBClusterSnapshotAttributesResult ::+  DBClusterSnapshotAttributesResult+newDBClusterSnapshotAttributesResult =+  DBClusterSnapshotAttributesResult'+    { dbClusterSnapshotAttributes =+        Prelude.Nothing,+      dbClusterSnapshotIdentifier =+        Prelude.Nothing+    }++-- | The list of attributes and values for the cluster snapshot.+dbClusterSnapshotAttributesResult_dbClusterSnapshotAttributes :: Lens.Lens' DBClusterSnapshotAttributesResult (Prelude.Maybe [DBClusterSnapshotAttribute])+dbClusterSnapshotAttributesResult_dbClusterSnapshotAttributes = Lens.lens (\DBClusterSnapshotAttributesResult' {dbClusterSnapshotAttributes} -> dbClusterSnapshotAttributes) (\s@DBClusterSnapshotAttributesResult' {} a -> s {dbClusterSnapshotAttributes = a} :: DBClusterSnapshotAttributesResult) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the cluster snapshot that the attributes apply to.+dbClusterSnapshotAttributesResult_dbClusterSnapshotIdentifier :: Lens.Lens' DBClusterSnapshotAttributesResult (Prelude.Maybe Prelude.Text)+dbClusterSnapshotAttributesResult_dbClusterSnapshotIdentifier = Lens.lens (\DBClusterSnapshotAttributesResult' {dbClusterSnapshotIdentifier} -> dbClusterSnapshotIdentifier) (\s@DBClusterSnapshotAttributesResult' {} a -> s {dbClusterSnapshotIdentifier = a} :: DBClusterSnapshotAttributesResult)++instance+  Data.FromXML+    DBClusterSnapshotAttributesResult+  where+  parseXML x =+    DBClusterSnapshotAttributesResult'+      Prelude.<$> ( x+                      Data..@? "DBClusterSnapshotAttributes"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may+                        (Data.parseXMLList "DBClusterSnapshotAttribute")+                  )+      Prelude.<*> (x Data..@? "DBClusterSnapshotIdentifier")++instance+  Prelude.Hashable+    DBClusterSnapshotAttributesResult+  where+  hashWithSalt+    _salt+    DBClusterSnapshotAttributesResult' {..} =+      _salt+        `Prelude.hashWithSalt` dbClusterSnapshotAttributes+        `Prelude.hashWithSalt` dbClusterSnapshotIdentifier++instance+  Prelude.NFData+    DBClusterSnapshotAttributesResult+  where+  rnf DBClusterSnapshotAttributesResult' {..} =+    Prelude.rnf dbClusterSnapshotAttributes+      `Prelude.seq` Prelude.rnf dbClusterSnapshotIdentifier
+ gen/Amazonka/DocumentDB/Types/DBEngineVersion.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.Types.DBEngineVersion+-- 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.DocumentDB.Types.DBEngineVersion where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types.UpgradeTarget+import qualified Amazonka.Prelude as Prelude++-- | Detailed information about an engine version.+--+-- /See:/ 'newDBEngineVersion' smart constructor.+data DBEngineVersion = DBEngineVersion'+  { -- | The description of the database engine.+    dbEngineDescription :: Prelude.Maybe Prelude.Text,+    -- | The description of the database engine version.+    dbEngineVersionDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the parameter group family for the database engine.+    dbParameterGroupFamily :: Prelude.Maybe Prelude.Text,+    -- | The name of the database engine.+    engine :: Prelude.Maybe Prelude.Text,+    -- | The version number of the database engine.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | The types of logs that the database engine has available for export to+    -- Amazon CloudWatch Logs.+    exportableLogTypes :: Prelude.Maybe [Prelude.Text],+    -- | A value that indicates whether the engine version supports exporting the+    -- log types specified by @ExportableLogTypes@ to CloudWatch Logs.+    supportsLogExportsToCloudwatchLogs :: Prelude.Maybe Prelude.Bool,+    -- | A list of engine versions that this database engine version can be+    -- upgraded to.+    validUpgradeTarget :: Prelude.Maybe [UpgradeTarget]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DBEngineVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbEngineDescription', 'dbEngineVersion_dbEngineDescription' - The description of the database engine.+--+-- 'dbEngineVersionDescription', 'dbEngineVersion_dbEngineVersionDescription' - The description of the database engine version.+--+-- 'dbParameterGroupFamily', 'dbEngineVersion_dbParameterGroupFamily' - The name of the parameter group family for the database engine.+--+-- 'engine', 'dbEngineVersion_engine' - The name of the database engine.+--+-- 'engineVersion', 'dbEngineVersion_engineVersion' - The version number of the database engine.+--+-- 'exportableLogTypes', 'dbEngineVersion_exportableLogTypes' - The types of logs that the database engine has available for export to+-- Amazon CloudWatch Logs.+--+-- 'supportsLogExportsToCloudwatchLogs', 'dbEngineVersion_supportsLogExportsToCloudwatchLogs' - A value that indicates whether the engine version supports exporting the+-- log types specified by @ExportableLogTypes@ to CloudWatch Logs.+--+-- 'validUpgradeTarget', 'dbEngineVersion_validUpgradeTarget' - A list of engine versions that this database engine version can be+-- upgraded to.+newDBEngineVersion ::+  DBEngineVersion+newDBEngineVersion =+  DBEngineVersion'+    { dbEngineDescription =+        Prelude.Nothing,+      dbEngineVersionDescription = Prelude.Nothing,+      dbParameterGroupFamily = Prelude.Nothing,+      engine = Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      exportableLogTypes = Prelude.Nothing,+      supportsLogExportsToCloudwatchLogs = Prelude.Nothing,+      validUpgradeTarget = Prelude.Nothing+    }++-- | The description of the database engine.+dbEngineVersion_dbEngineDescription :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Text)+dbEngineVersion_dbEngineDescription = Lens.lens (\DBEngineVersion' {dbEngineDescription} -> dbEngineDescription) (\s@DBEngineVersion' {} a -> s {dbEngineDescription = a} :: DBEngineVersion)++-- | The description of the database engine version.+dbEngineVersion_dbEngineVersionDescription :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Text)+dbEngineVersion_dbEngineVersionDescription = Lens.lens (\DBEngineVersion' {dbEngineVersionDescription} -> dbEngineVersionDescription) (\s@DBEngineVersion' {} a -> s {dbEngineVersionDescription = a} :: DBEngineVersion)++-- | The name of the parameter group family for the database engine.+dbEngineVersion_dbParameterGroupFamily :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Text)+dbEngineVersion_dbParameterGroupFamily = Lens.lens (\DBEngineVersion' {dbParameterGroupFamily} -> dbParameterGroupFamily) (\s@DBEngineVersion' {} a -> s {dbParameterGroupFamily = a} :: DBEngineVersion)++-- | The name of the database engine.+dbEngineVersion_engine :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Text)+dbEngineVersion_engine = Lens.lens (\DBEngineVersion' {engine} -> engine) (\s@DBEngineVersion' {} a -> s {engine = a} :: DBEngineVersion)++-- | The version number of the database engine.+dbEngineVersion_engineVersion :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Text)+dbEngineVersion_engineVersion = Lens.lens (\DBEngineVersion' {engineVersion} -> engineVersion) (\s@DBEngineVersion' {} a -> s {engineVersion = a} :: DBEngineVersion)++-- | The types of logs that the database engine has available for export to+-- Amazon CloudWatch Logs.+dbEngineVersion_exportableLogTypes :: Lens.Lens' DBEngineVersion (Prelude.Maybe [Prelude.Text])+dbEngineVersion_exportableLogTypes = Lens.lens (\DBEngineVersion' {exportableLogTypes} -> exportableLogTypes) (\s@DBEngineVersion' {} a -> s {exportableLogTypes = a} :: DBEngineVersion) Prelude.. Lens.mapping Lens.coerced++-- | A value that indicates whether the engine version supports exporting the+-- log types specified by @ExportableLogTypes@ to CloudWatch Logs.+dbEngineVersion_supportsLogExportsToCloudwatchLogs :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Bool)+dbEngineVersion_supportsLogExportsToCloudwatchLogs = Lens.lens (\DBEngineVersion' {supportsLogExportsToCloudwatchLogs} -> supportsLogExportsToCloudwatchLogs) (\s@DBEngineVersion' {} a -> s {supportsLogExportsToCloudwatchLogs = a} :: DBEngineVersion)++-- | A list of engine versions that this database engine version can be+-- upgraded to.+dbEngineVersion_validUpgradeTarget :: Lens.Lens' DBEngineVersion (Prelude.Maybe [UpgradeTarget])+dbEngineVersion_validUpgradeTarget = Lens.lens (\DBEngineVersion' {validUpgradeTarget} -> validUpgradeTarget) (\s@DBEngineVersion' {} a -> s {validUpgradeTarget = a} :: DBEngineVersion) Prelude.. Lens.mapping Lens.coerced++instance Data.FromXML DBEngineVersion where+  parseXML x =+    DBEngineVersion'+      Prelude.<$> (x Data..@? "DBEngineDescription")+      Prelude.<*> (x Data..@? "DBEngineVersionDescription")+      Prelude.<*> (x Data..@? "DBParameterGroupFamily")+      Prelude.<*> (x Data..@? "Engine")+      Prelude.<*> (x Data..@? "EngineVersion")+      Prelude.<*> ( x+                      Data..@? "ExportableLogTypes"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "member")+                  )+      Prelude.<*> (x Data..@? "SupportsLogExportsToCloudwatchLogs")+      Prelude.<*> ( x+                      Data..@? "ValidUpgradeTarget"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "UpgradeTarget")+                  )++instance Prelude.Hashable DBEngineVersion where+  hashWithSalt _salt DBEngineVersion' {..} =+    _salt+      `Prelude.hashWithSalt` dbEngineDescription+      `Prelude.hashWithSalt` dbEngineVersionDescription+      `Prelude.hashWithSalt` dbParameterGroupFamily+      `Prelude.hashWithSalt` engine+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` exportableLogTypes+      `Prelude.hashWithSalt` supportsLogExportsToCloudwatchLogs+      `Prelude.hashWithSalt` validUpgradeTarget++instance Prelude.NFData DBEngineVersion where+  rnf DBEngineVersion' {..} =+    Prelude.rnf dbEngineDescription+      `Prelude.seq` Prelude.rnf dbEngineVersionDescription+      `Prelude.seq` Prelude.rnf dbParameterGroupFamily+      `Prelude.seq` Prelude.rnf engine+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf exportableLogTypes+      `Prelude.seq` Prelude.rnf supportsLogExportsToCloudwatchLogs+      `Prelude.seq` Prelude.rnf validUpgradeTarget
+ gen/Amazonka/DocumentDB/Types/DBInstance.hs view
@@ -0,0 +1,479 @@+{-# 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.DocumentDB.Types.DBInstance+-- 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.DocumentDB.Types.DBInstance where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types.DBInstanceStatusInfo+import Amazonka.DocumentDB.Types.DBSubnetGroup+import Amazonka.DocumentDB.Types.Endpoint+import Amazonka.DocumentDB.Types.PendingModifiedValues+import Amazonka.DocumentDB.Types.VpcSecurityGroupMembership+import qualified Amazonka.Prelude as Prelude++-- | Detailed information about an instance.+--+-- /See:/ 'newDBInstance' smart constructor.+data DBInstance = DBInstance'+  { -- | Does not apply. This parameter does not apply to Amazon DocumentDB.+    -- Amazon DocumentDB does not perform minor version upgrades regardless of+    -- the value set.+    autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,+    -- | Specifies the name of the Availability Zone that the instance is located+    -- in.+    availabilityZone :: Prelude.Maybe Prelude.Text,+    -- | Specifies the number of days for which automatic snapshots are retained.+    backupRetentionPeriod :: Prelude.Maybe Prelude.Int,+    -- | The identifier of the CA certificate for this DB instance.+    cACertificateIdentifier :: Prelude.Maybe Prelude.Text,+    -- | A value that indicates whether to copy tags from the DB instance to+    -- snapshots of the DB instance. By default, tags are not copied.+    copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,+    -- | Contains the name of the cluster that the instance is a member of if the+    -- instance is a member of a cluster.+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) for the instance.+    dbInstanceArn :: Prelude.Maybe Prelude.Text,+    -- | Contains the name of the compute and memory capacity class of the+    -- instance.+    dbInstanceClass :: Prelude.Maybe Prelude.Text,+    -- | Contains a user-provided database identifier. This identifier is the+    -- unique key that identifies an instance.+    dbInstanceIdentifier :: Prelude.Maybe Prelude.Text,+    -- | Specifies the current state of this database.+    dbInstanceStatus :: Prelude.Maybe Prelude.Text,+    -- | Specifies information on the subnet group that is associated with the+    -- instance, including the name, description, and subnets in the subnet+    -- group.+    dbSubnetGroup :: Prelude.Maybe DBSubnetGroup,+    -- | The Amazon Web Services Region-unique, immutable identifier for the+    -- instance. This identifier is found in CloudTrail log entries whenever+    -- the KMS key for the instance is accessed.+    dbiResourceId :: Prelude.Maybe Prelude.Text,+    -- | A list of log types that this instance is configured to export to+    -- CloudWatch Logs.+    enabledCloudwatchLogsExports :: Prelude.Maybe [Prelude.Text],+    -- | Specifies the connection endpoint.+    endpoint :: Prelude.Maybe Endpoint,+    -- | Provides the name of the database engine to be used for this instance.+    engine :: Prelude.Maybe Prelude.Text,+    -- | Indicates the database engine version.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | Provides the date and time that the instance was created.+    instanceCreateTime :: Prelude.Maybe Data.ISO8601,+    -- | If @StorageEncrypted@ is @true@, the KMS key identifier for the+    -- encrypted instance.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | Specifies the latest time to which a database can be restored with+    -- point-in-time restore.+    latestRestorableTime :: Prelude.Maybe Data.ISO8601,+    -- | Specifies that changes to the instance are pending. This element is+    -- included only when changes are pending. Specific changes are identified+    -- by subelements.+    pendingModifiedValues :: Prelude.Maybe PendingModifiedValues,+    -- | Specifies the daily time range during which automated backups are+    -- created if automated backups are enabled, as determined by the+    -- @BackupRetentionPeriod@.+    preferredBackupWindow :: Prelude.Maybe Prelude.Text,+    -- | Specifies the weekly time range during which system maintenance can+    -- occur, in Universal Coordinated Time (UTC).+    preferredMaintenanceWindow :: Prelude.Maybe Prelude.Text,+    -- | A value that specifies the order in which an Amazon DocumentDB replica+    -- is promoted to the primary instance after a failure of the existing+    -- primary instance.+    promotionTier :: Prelude.Maybe Prelude.Int,+    -- | Not supported. Amazon DocumentDB does not currently support public+    -- endpoints. The value of @PubliclyAccessible@ is always @false@.+    publiclyAccessible :: Prelude.Maybe Prelude.Bool,+    -- | The status of a read replica. If the instance is not a read replica,+    -- this is blank.+    statusInfos :: Prelude.Maybe [DBInstanceStatusInfo],+    -- | Specifies whether or not the instance is encrypted.+    storageEncrypted :: Prelude.Maybe Prelude.Bool,+    -- | Provides a list of VPC security group elements that the instance belongs+    -- to.+    vpcSecurityGroups :: Prelude.Maybe [VpcSecurityGroupMembership]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DBInstance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'dbInstance_autoMinorVersionUpgrade' - Does not apply. This parameter does not apply to Amazon DocumentDB.+-- Amazon DocumentDB does not perform minor version upgrades regardless of+-- the value set.+--+-- 'availabilityZone', 'dbInstance_availabilityZone' - Specifies the name of the Availability Zone that the instance is located+-- in.+--+-- 'backupRetentionPeriod', 'dbInstance_backupRetentionPeriod' - Specifies the number of days for which automatic snapshots are retained.+--+-- 'cACertificateIdentifier', 'dbInstance_cACertificateIdentifier' - The identifier of the CA certificate for this DB instance.+--+-- 'copyTagsToSnapshot', 'dbInstance_copyTagsToSnapshot' - A value that indicates whether to copy tags from the DB instance to+-- snapshots of the DB instance. By default, tags are not copied.+--+-- 'dbClusterIdentifier', 'dbInstance_dbClusterIdentifier' - Contains the name of the cluster that the instance is a member of if the+-- instance is a member of a cluster.+--+-- 'dbInstanceArn', 'dbInstance_dbInstanceArn' - The Amazon Resource Name (ARN) for the instance.+--+-- 'dbInstanceClass', 'dbInstance_dbInstanceClass' - Contains the name of the compute and memory capacity class of the+-- instance.+--+-- 'dbInstanceIdentifier', 'dbInstance_dbInstanceIdentifier' - Contains a user-provided database identifier. This identifier is the+-- unique key that identifies an instance.+--+-- 'dbInstanceStatus', 'dbInstance_dbInstanceStatus' - Specifies the current state of this database.+--+-- 'dbSubnetGroup', 'dbInstance_dbSubnetGroup' - Specifies information on the subnet group that is associated with the+-- instance, including the name, description, and subnets in the subnet+-- group.+--+-- 'dbiResourceId', 'dbInstance_dbiResourceId' - The Amazon Web Services Region-unique, immutable identifier for the+-- instance. This identifier is found in CloudTrail log entries whenever+-- the KMS key for the instance is accessed.+--+-- 'enabledCloudwatchLogsExports', 'dbInstance_enabledCloudwatchLogsExports' - A list of log types that this instance is configured to export to+-- CloudWatch Logs.+--+-- 'endpoint', 'dbInstance_endpoint' - Specifies the connection endpoint.+--+-- 'engine', 'dbInstance_engine' - Provides the name of the database engine to be used for this instance.+--+-- 'engineVersion', 'dbInstance_engineVersion' - Indicates the database engine version.+--+-- 'instanceCreateTime', 'dbInstance_instanceCreateTime' - Provides the date and time that the instance was created.+--+-- 'kmsKeyId', 'dbInstance_kmsKeyId' - If @StorageEncrypted@ is @true@, the KMS key identifier for the+-- encrypted instance.+--+-- 'latestRestorableTime', 'dbInstance_latestRestorableTime' - Specifies the latest time to which a database can be restored with+-- point-in-time restore.+--+-- 'pendingModifiedValues', 'dbInstance_pendingModifiedValues' - Specifies that changes to the instance are pending. This element is+-- included only when changes are pending. Specific changes are identified+-- by subelements.+--+-- 'preferredBackupWindow', 'dbInstance_preferredBackupWindow' - Specifies the daily time range during which automated backups are+-- created if automated backups are enabled, as determined by the+-- @BackupRetentionPeriod@.+--+-- 'preferredMaintenanceWindow', 'dbInstance_preferredMaintenanceWindow' - Specifies the weekly time range during which system maintenance can+-- occur, in Universal Coordinated Time (UTC).+--+-- 'promotionTier', 'dbInstance_promotionTier' - A value that specifies the order in which an Amazon DocumentDB replica+-- is promoted to the primary instance after a failure of the existing+-- primary instance.+--+-- 'publiclyAccessible', 'dbInstance_publiclyAccessible' - Not supported. Amazon DocumentDB does not currently support public+-- endpoints. The value of @PubliclyAccessible@ is always @false@.+--+-- 'statusInfos', 'dbInstance_statusInfos' - The status of a read replica. If the instance is not a read replica,+-- this is blank.+--+-- 'storageEncrypted', 'dbInstance_storageEncrypted' - Specifies whether or not the instance is encrypted.+--+-- 'vpcSecurityGroups', 'dbInstance_vpcSecurityGroups' - Provides a list of VPC security group elements that the instance belongs+-- to.+newDBInstance ::+  DBInstance+newDBInstance =+  DBInstance'+    { autoMinorVersionUpgrade =+        Prelude.Nothing,+      availabilityZone = Prelude.Nothing,+      backupRetentionPeriod = Prelude.Nothing,+      cACertificateIdentifier = Prelude.Nothing,+      copyTagsToSnapshot = Prelude.Nothing,+      dbClusterIdentifier = Prelude.Nothing,+      dbInstanceArn = Prelude.Nothing,+      dbInstanceClass = Prelude.Nothing,+      dbInstanceIdentifier = Prelude.Nothing,+      dbInstanceStatus = Prelude.Nothing,+      dbSubnetGroup = Prelude.Nothing,+      dbiResourceId = Prelude.Nothing,+      enabledCloudwatchLogsExports = Prelude.Nothing,+      endpoint = Prelude.Nothing,+      engine = Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      instanceCreateTime = Prelude.Nothing,+      kmsKeyId = Prelude.Nothing,+      latestRestorableTime = Prelude.Nothing,+      pendingModifiedValues = Prelude.Nothing,+      preferredBackupWindow = Prelude.Nothing,+      preferredMaintenanceWindow = Prelude.Nothing,+      promotionTier = Prelude.Nothing,+      publiclyAccessible = Prelude.Nothing,+      statusInfos = Prelude.Nothing,+      storageEncrypted = Prelude.Nothing,+      vpcSecurityGroups = Prelude.Nothing+    }++-- | Does not apply. This parameter does not apply to Amazon DocumentDB.+-- Amazon DocumentDB does not perform minor version upgrades regardless of+-- the value set.+dbInstance_autoMinorVersionUpgrade :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)+dbInstance_autoMinorVersionUpgrade = Lens.lens (\DBInstance' {autoMinorVersionUpgrade} -> autoMinorVersionUpgrade) (\s@DBInstance' {} a -> s {autoMinorVersionUpgrade = a} :: DBInstance)++-- | Specifies the name of the Availability Zone that the instance is located+-- in.+dbInstance_availabilityZone :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)+dbInstance_availabilityZone = Lens.lens (\DBInstance' {availabilityZone} -> availabilityZone) (\s@DBInstance' {} a -> s {availabilityZone = a} :: DBInstance)++-- | Specifies the number of days for which automatic snapshots are retained.+dbInstance_backupRetentionPeriod :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Int)+dbInstance_backupRetentionPeriod = Lens.lens (\DBInstance' {backupRetentionPeriod} -> backupRetentionPeriod) (\s@DBInstance' {} a -> s {backupRetentionPeriod = a} :: DBInstance)++-- | The identifier of the CA certificate for this DB instance.+dbInstance_cACertificateIdentifier :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)+dbInstance_cACertificateIdentifier = Lens.lens (\DBInstance' {cACertificateIdentifier} -> cACertificateIdentifier) (\s@DBInstance' {} a -> s {cACertificateIdentifier = a} :: DBInstance)++-- | A value that indicates whether to copy tags from the DB instance to+-- snapshots of the DB instance. By default, tags are not copied.+dbInstance_copyTagsToSnapshot :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)+dbInstance_copyTagsToSnapshot = Lens.lens (\DBInstance' {copyTagsToSnapshot} -> copyTagsToSnapshot) (\s@DBInstance' {} a -> s {copyTagsToSnapshot = a} :: DBInstance)++-- | Contains the name of the cluster that the instance is a member of if the+-- instance is a member of a cluster.+dbInstance_dbClusterIdentifier :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)+dbInstance_dbClusterIdentifier = Lens.lens (\DBInstance' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@DBInstance' {} a -> s {dbClusterIdentifier = a} :: DBInstance)++-- | The Amazon Resource Name (ARN) for the instance.+dbInstance_dbInstanceArn :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)+dbInstance_dbInstanceArn = Lens.lens (\DBInstance' {dbInstanceArn} -> dbInstanceArn) (\s@DBInstance' {} a -> s {dbInstanceArn = a} :: DBInstance)++-- | Contains the name of the compute and memory capacity class of the+-- instance.+dbInstance_dbInstanceClass :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)+dbInstance_dbInstanceClass = Lens.lens (\DBInstance' {dbInstanceClass} -> dbInstanceClass) (\s@DBInstance' {} a -> s {dbInstanceClass = a} :: DBInstance)++-- | Contains a user-provided database identifier. This identifier is the+-- unique key that identifies an instance.+dbInstance_dbInstanceIdentifier :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)+dbInstance_dbInstanceIdentifier = Lens.lens (\DBInstance' {dbInstanceIdentifier} -> dbInstanceIdentifier) (\s@DBInstance' {} a -> s {dbInstanceIdentifier = a} :: DBInstance)++-- | Specifies the current state of this database.+dbInstance_dbInstanceStatus :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)+dbInstance_dbInstanceStatus = Lens.lens (\DBInstance' {dbInstanceStatus} -> dbInstanceStatus) (\s@DBInstance' {} a -> s {dbInstanceStatus = a} :: DBInstance)++-- | Specifies information on the subnet group that is associated with the+-- instance, including the name, description, and subnets in the subnet+-- group.+dbInstance_dbSubnetGroup :: Lens.Lens' DBInstance (Prelude.Maybe DBSubnetGroup)+dbInstance_dbSubnetGroup = Lens.lens (\DBInstance' {dbSubnetGroup} -> dbSubnetGroup) (\s@DBInstance' {} a -> s {dbSubnetGroup = a} :: DBInstance)++-- | The Amazon Web Services Region-unique, immutable identifier for the+-- instance. This identifier is found in CloudTrail log entries whenever+-- the KMS key for the instance is accessed.+dbInstance_dbiResourceId :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)+dbInstance_dbiResourceId = Lens.lens (\DBInstance' {dbiResourceId} -> dbiResourceId) (\s@DBInstance' {} a -> s {dbiResourceId = a} :: DBInstance)++-- | A list of log types that this instance is configured to export to+-- CloudWatch Logs.+dbInstance_enabledCloudwatchLogsExports :: Lens.Lens' DBInstance (Prelude.Maybe [Prelude.Text])+dbInstance_enabledCloudwatchLogsExports = Lens.lens (\DBInstance' {enabledCloudwatchLogsExports} -> enabledCloudwatchLogsExports) (\s@DBInstance' {} a -> s {enabledCloudwatchLogsExports = a} :: DBInstance) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the connection endpoint.+dbInstance_endpoint :: Lens.Lens' DBInstance (Prelude.Maybe Endpoint)+dbInstance_endpoint = Lens.lens (\DBInstance' {endpoint} -> endpoint) (\s@DBInstance' {} a -> s {endpoint = a} :: DBInstance)++-- | Provides the name of the database engine to be used for this instance.+dbInstance_engine :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)+dbInstance_engine = Lens.lens (\DBInstance' {engine} -> engine) (\s@DBInstance' {} a -> s {engine = a} :: DBInstance)++-- | Indicates the database engine version.+dbInstance_engineVersion :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)+dbInstance_engineVersion = Lens.lens (\DBInstance' {engineVersion} -> engineVersion) (\s@DBInstance' {} a -> s {engineVersion = a} :: DBInstance)++-- | Provides the date and time that the instance was created.+dbInstance_instanceCreateTime :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.UTCTime)+dbInstance_instanceCreateTime = Lens.lens (\DBInstance' {instanceCreateTime} -> instanceCreateTime) (\s@DBInstance' {} a -> s {instanceCreateTime = a} :: DBInstance) Prelude.. Lens.mapping Data._Time++-- | If @StorageEncrypted@ is @true@, the KMS key identifier for the+-- encrypted instance.+dbInstance_kmsKeyId :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)+dbInstance_kmsKeyId = Lens.lens (\DBInstance' {kmsKeyId} -> kmsKeyId) (\s@DBInstance' {} a -> s {kmsKeyId = a} :: DBInstance)++-- | Specifies the latest time to which a database can be restored with+-- point-in-time restore.+dbInstance_latestRestorableTime :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.UTCTime)+dbInstance_latestRestorableTime = Lens.lens (\DBInstance' {latestRestorableTime} -> latestRestorableTime) (\s@DBInstance' {} a -> s {latestRestorableTime = a} :: DBInstance) Prelude.. Lens.mapping Data._Time++-- | Specifies that changes to the instance are pending. This element is+-- included only when changes are pending. Specific changes are identified+-- by subelements.+dbInstance_pendingModifiedValues :: Lens.Lens' DBInstance (Prelude.Maybe PendingModifiedValues)+dbInstance_pendingModifiedValues = Lens.lens (\DBInstance' {pendingModifiedValues} -> pendingModifiedValues) (\s@DBInstance' {} a -> s {pendingModifiedValues = a} :: DBInstance)++-- | Specifies the daily time range during which automated backups are+-- created if automated backups are enabled, as determined by the+-- @BackupRetentionPeriod@.+dbInstance_preferredBackupWindow :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)+dbInstance_preferredBackupWindow = Lens.lens (\DBInstance' {preferredBackupWindow} -> preferredBackupWindow) (\s@DBInstance' {} a -> s {preferredBackupWindow = a} :: DBInstance)++-- | Specifies the weekly time range during which system maintenance can+-- occur, in Universal Coordinated Time (UTC).+dbInstance_preferredMaintenanceWindow :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)+dbInstance_preferredMaintenanceWindow = Lens.lens (\DBInstance' {preferredMaintenanceWindow} -> preferredMaintenanceWindow) (\s@DBInstance' {} a -> s {preferredMaintenanceWindow = a} :: DBInstance)++-- | A value that specifies the order in which an Amazon DocumentDB replica+-- is promoted to the primary instance after a failure of the existing+-- primary instance.+dbInstance_promotionTier :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Int)+dbInstance_promotionTier = Lens.lens (\DBInstance' {promotionTier} -> promotionTier) (\s@DBInstance' {} a -> s {promotionTier = a} :: DBInstance)++-- | Not supported. Amazon DocumentDB does not currently support public+-- endpoints. The value of @PubliclyAccessible@ is always @false@.+dbInstance_publiclyAccessible :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)+dbInstance_publiclyAccessible = Lens.lens (\DBInstance' {publiclyAccessible} -> publiclyAccessible) (\s@DBInstance' {} a -> s {publiclyAccessible = a} :: DBInstance)++-- | The status of a read replica. If the instance is not a read replica,+-- this is blank.+dbInstance_statusInfos :: Lens.Lens' DBInstance (Prelude.Maybe [DBInstanceStatusInfo])+dbInstance_statusInfos = Lens.lens (\DBInstance' {statusInfos} -> statusInfos) (\s@DBInstance' {} a -> s {statusInfos = a} :: DBInstance) Prelude.. Lens.mapping Lens.coerced++-- | Specifies whether or not the instance is encrypted.+dbInstance_storageEncrypted :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)+dbInstance_storageEncrypted = Lens.lens (\DBInstance' {storageEncrypted} -> storageEncrypted) (\s@DBInstance' {} a -> s {storageEncrypted = a} :: DBInstance)++-- | Provides a list of VPC security group elements that the instance belongs+-- to.+dbInstance_vpcSecurityGroups :: Lens.Lens' DBInstance (Prelude.Maybe [VpcSecurityGroupMembership])+dbInstance_vpcSecurityGroups = Lens.lens (\DBInstance' {vpcSecurityGroups} -> vpcSecurityGroups) (\s@DBInstance' {} a -> s {vpcSecurityGroups = a} :: DBInstance) Prelude.. Lens.mapping Lens.coerced++instance Data.FromXML DBInstance where+  parseXML x =+    DBInstance'+      Prelude.<$> (x Data..@? "AutoMinorVersionUpgrade")+      Prelude.<*> (x Data..@? "AvailabilityZone")+      Prelude.<*> (x Data..@? "BackupRetentionPeriod")+      Prelude.<*> (x Data..@? "CACertificateIdentifier")+      Prelude.<*> (x Data..@? "CopyTagsToSnapshot")+      Prelude.<*> (x Data..@? "DBClusterIdentifier")+      Prelude.<*> (x Data..@? "DBInstanceArn")+      Prelude.<*> (x Data..@? "DBInstanceClass")+      Prelude.<*> (x Data..@? "DBInstanceIdentifier")+      Prelude.<*> (x Data..@? "DBInstanceStatus")+      Prelude.<*> (x Data..@? "DBSubnetGroup")+      Prelude.<*> (x Data..@? "DbiResourceId")+      Prelude.<*> ( x+                      Data..@? "EnabledCloudwatchLogsExports"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "member")+                  )+      Prelude.<*> (x Data..@? "Endpoint")+      Prelude.<*> (x Data..@? "Engine")+      Prelude.<*> (x Data..@? "EngineVersion")+      Prelude.<*> (x Data..@? "InstanceCreateTime")+      Prelude.<*> (x Data..@? "KmsKeyId")+      Prelude.<*> (x Data..@? "LatestRestorableTime")+      Prelude.<*> (x Data..@? "PendingModifiedValues")+      Prelude.<*> (x Data..@? "PreferredBackupWindow")+      Prelude.<*> (x Data..@? "PreferredMaintenanceWindow")+      Prelude.<*> (x Data..@? "PromotionTier")+      Prelude.<*> (x Data..@? "PubliclyAccessible")+      Prelude.<*> ( x+                      Data..@? "StatusInfos"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "DBInstanceStatusInfo")+                  )+      Prelude.<*> (x Data..@? "StorageEncrypted")+      Prelude.<*> ( x+                      Data..@? "VpcSecurityGroups"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may+                        (Data.parseXMLList "VpcSecurityGroupMembership")+                  )++instance Prelude.Hashable DBInstance where+  hashWithSalt _salt DBInstance' {..} =+    _salt+      `Prelude.hashWithSalt` autoMinorVersionUpgrade+      `Prelude.hashWithSalt` availabilityZone+      `Prelude.hashWithSalt` backupRetentionPeriod+      `Prelude.hashWithSalt` cACertificateIdentifier+      `Prelude.hashWithSalt` copyTagsToSnapshot+      `Prelude.hashWithSalt` dbClusterIdentifier+      `Prelude.hashWithSalt` dbInstanceArn+      `Prelude.hashWithSalt` dbInstanceClass+      `Prelude.hashWithSalt` dbInstanceIdentifier+      `Prelude.hashWithSalt` dbInstanceStatus+      `Prelude.hashWithSalt` dbSubnetGroup+      `Prelude.hashWithSalt` dbiResourceId+      `Prelude.hashWithSalt` enabledCloudwatchLogsExports+      `Prelude.hashWithSalt` endpoint+      `Prelude.hashWithSalt` engine+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` instanceCreateTime+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` latestRestorableTime+      `Prelude.hashWithSalt` pendingModifiedValues+      `Prelude.hashWithSalt` preferredBackupWindow+      `Prelude.hashWithSalt` preferredMaintenanceWindow+      `Prelude.hashWithSalt` promotionTier+      `Prelude.hashWithSalt` publiclyAccessible+      `Prelude.hashWithSalt` statusInfos+      `Prelude.hashWithSalt` storageEncrypted+      `Prelude.hashWithSalt` vpcSecurityGroups++instance Prelude.NFData DBInstance where+  rnf DBInstance' {..} =+    Prelude.rnf autoMinorVersionUpgrade+      `Prelude.seq` Prelude.rnf availabilityZone+      `Prelude.seq` Prelude.rnf backupRetentionPeriod+      `Prelude.seq` Prelude.rnf cACertificateIdentifier+      `Prelude.seq` Prelude.rnf copyTagsToSnapshot+      `Prelude.seq` Prelude.rnf dbClusterIdentifier+      `Prelude.seq` Prelude.rnf dbInstanceArn+      `Prelude.seq` Prelude.rnf dbInstanceClass+      `Prelude.seq` Prelude.rnf dbInstanceIdentifier+      `Prelude.seq` Prelude.rnf dbInstanceStatus+      `Prelude.seq` Prelude.rnf dbSubnetGroup+      `Prelude.seq` Prelude.rnf dbiResourceId+      `Prelude.seq` Prelude.rnf enabledCloudwatchLogsExports+      `Prelude.seq` Prelude.rnf endpoint+      `Prelude.seq` Prelude.rnf engine+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf instanceCreateTime+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf latestRestorableTime+      `Prelude.seq` Prelude.rnf+        pendingModifiedValues+      `Prelude.seq` Prelude.rnf+        preferredBackupWindow+      `Prelude.seq` Prelude.rnf+        preferredMaintenanceWindow+      `Prelude.seq` Prelude.rnf+        promotionTier+      `Prelude.seq` Prelude.rnf+        publiclyAccessible+      `Prelude.seq` Prelude.rnf+        statusInfos+      `Prelude.seq` Prelude.rnf+        storageEncrypted+      `Prelude.seq` Prelude.rnf+        vpcSecurityGroups
+ gen/Amazonka/DocumentDB/Types/DBInstanceStatusInfo.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.DocumentDB.Types.DBInstanceStatusInfo+-- 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.DocumentDB.Types.DBInstanceStatusInfo where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides a list of status information for an instance.+--+-- /See:/ 'newDBInstanceStatusInfo' smart constructor.+data DBInstanceStatusInfo = DBInstanceStatusInfo'+  { -- | Details of the error if there is an error for the instance. If the+    -- instance is not in an error state, this value is blank.+    message :: Prelude.Maybe Prelude.Text,+    -- | A Boolean value that is @true@ if the instance is operating normally, or+    -- @false@ if the instance is in an error state.+    normal :: Prelude.Maybe Prelude.Bool,+    -- | Status of the instance. For a @StatusType@ of read replica, the values+    -- can be @replicating@, error, @stopped@, or @terminated@.+    status :: Prelude.Maybe Prelude.Text,+    -- | This value is currently \"@read replication@.\"+    statusType :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DBInstanceStatusInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'message', 'dbInstanceStatusInfo_message' - Details of the error if there is an error for the instance. If the+-- instance is not in an error state, this value is blank.+--+-- 'normal', 'dbInstanceStatusInfo_normal' - A Boolean value that is @true@ if the instance is operating normally, or+-- @false@ if the instance is in an error state.+--+-- 'status', 'dbInstanceStatusInfo_status' - Status of the instance. For a @StatusType@ of read replica, the values+-- can be @replicating@, error, @stopped@, or @terminated@.+--+-- 'statusType', 'dbInstanceStatusInfo_statusType' - This value is currently \"@read replication@.\"+newDBInstanceStatusInfo ::+  DBInstanceStatusInfo+newDBInstanceStatusInfo =+  DBInstanceStatusInfo'+    { message = Prelude.Nothing,+      normal = Prelude.Nothing,+      status = Prelude.Nothing,+      statusType = Prelude.Nothing+    }++-- | Details of the error if there is an error for the instance. If the+-- instance is not in an error state, this value is blank.+dbInstanceStatusInfo_message :: Lens.Lens' DBInstanceStatusInfo (Prelude.Maybe Prelude.Text)+dbInstanceStatusInfo_message = Lens.lens (\DBInstanceStatusInfo' {message} -> message) (\s@DBInstanceStatusInfo' {} a -> s {message = a} :: DBInstanceStatusInfo)++-- | A Boolean value that is @true@ if the instance is operating normally, or+-- @false@ if the instance is in an error state.+dbInstanceStatusInfo_normal :: Lens.Lens' DBInstanceStatusInfo (Prelude.Maybe Prelude.Bool)+dbInstanceStatusInfo_normal = Lens.lens (\DBInstanceStatusInfo' {normal} -> normal) (\s@DBInstanceStatusInfo' {} a -> s {normal = a} :: DBInstanceStatusInfo)++-- | Status of the instance. For a @StatusType@ of read replica, the values+-- can be @replicating@, error, @stopped@, or @terminated@.+dbInstanceStatusInfo_status :: Lens.Lens' DBInstanceStatusInfo (Prelude.Maybe Prelude.Text)+dbInstanceStatusInfo_status = Lens.lens (\DBInstanceStatusInfo' {status} -> status) (\s@DBInstanceStatusInfo' {} a -> s {status = a} :: DBInstanceStatusInfo)++-- | This value is currently \"@read replication@.\"+dbInstanceStatusInfo_statusType :: Lens.Lens' DBInstanceStatusInfo (Prelude.Maybe Prelude.Text)+dbInstanceStatusInfo_statusType = Lens.lens (\DBInstanceStatusInfo' {statusType} -> statusType) (\s@DBInstanceStatusInfo' {} a -> s {statusType = a} :: DBInstanceStatusInfo)++instance Data.FromXML DBInstanceStatusInfo where+  parseXML x =+    DBInstanceStatusInfo'+      Prelude.<$> (x Data..@? "Message")+      Prelude.<*> (x Data..@? "Normal")+      Prelude.<*> (x Data..@? "Status")+      Prelude.<*> (x Data..@? "StatusType")++instance Prelude.Hashable DBInstanceStatusInfo where+  hashWithSalt _salt DBInstanceStatusInfo' {..} =+    _salt+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` normal+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` statusType++instance Prelude.NFData DBInstanceStatusInfo where+  rnf DBInstanceStatusInfo' {..} =+    Prelude.rnf message+      `Prelude.seq` Prelude.rnf normal+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf statusType
+ gen/Amazonka/DocumentDB/Types/DBSubnetGroup.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.DocumentDB.Types.DBSubnetGroup+-- 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.DocumentDB.Types.DBSubnetGroup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types.Subnet+import qualified Amazonka.Prelude as Prelude++-- | Detailed information about a subnet group.+--+-- /See:/ 'newDBSubnetGroup' smart constructor.+data DBSubnetGroup = DBSubnetGroup'+  { -- | The Amazon Resource Name (ARN) for the DB subnet group.+    dbSubnetGroupArn :: Prelude.Maybe Prelude.Text,+    -- | Provides the description of the subnet group.+    dbSubnetGroupDescription :: Prelude.Maybe Prelude.Text,+    -- | The name of the subnet group.+    dbSubnetGroupName :: Prelude.Maybe Prelude.Text,+    -- | Provides the status of the subnet group.+    subnetGroupStatus :: Prelude.Maybe Prelude.Text,+    -- | Detailed information about one or more subnets within a subnet group.+    subnets :: Prelude.Maybe [Subnet],+    -- | Provides the virtual private cloud (VPC) ID of the subnet group.+    vpcId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DBSubnetGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbSubnetGroupArn', 'dbSubnetGroup_dbSubnetGroupArn' - The Amazon Resource Name (ARN) for the DB subnet group.+--+-- 'dbSubnetGroupDescription', 'dbSubnetGroup_dbSubnetGroupDescription' - Provides the description of the subnet group.+--+-- 'dbSubnetGroupName', 'dbSubnetGroup_dbSubnetGroupName' - The name of the subnet group.+--+-- 'subnetGroupStatus', 'dbSubnetGroup_subnetGroupStatus' - Provides the status of the subnet group.+--+-- 'subnets', 'dbSubnetGroup_subnets' - Detailed information about one or more subnets within a subnet group.+--+-- 'vpcId', 'dbSubnetGroup_vpcId' - Provides the virtual private cloud (VPC) ID of the subnet group.+newDBSubnetGroup ::+  DBSubnetGroup+newDBSubnetGroup =+  DBSubnetGroup'+    { dbSubnetGroupArn = Prelude.Nothing,+      dbSubnetGroupDescription = Prelude.Nothing,+      dbSubnetGroupName = Prelude.Nothing,+      subnetGroupStatus = Prelude.Nothing,+      subnets = Prelude.Nothing,+      vpcId = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) for the DB subnet group.+dbSubnetGroup_dbSubnetGroupArn :: Lens.Lens' DBSubnetGroup (Prelude.Maybe Prelude.Text)+dbSubnetGroup_dbSubnetGroupArn = Lens.lens (\DBSubnetGroup' {dbSubnetGroupArn} -> dbSubnetGroupArn) (\s@DBSubnetGroup' {} a -> s {dbSubnetGroupArn = a} :: DBSubnetGroup)++-- | Provides the description of the subnet group.+dbSubnetGroup_dbSubnetGroupDescription :: Lens.Lens' DBSubnetGroup (Prelude.Maybe Prelude.Text)+dbSubnetGroup_dbSubnetGroupDescription = Lens.lens (\DBSubnetGroup' {dbSubnetGroupDescription} -> dbSubnetGroupDescription) (\s@DBSubnetGroup' {} a -> s {dbSubnetGroupDescription = a} :: DBSubnetGroup)++-- | The name of the subnet group.+dbSubnetGroup_dbSubnetGroupName :: Lens.Lens' DBSubnetGroup (Prelude.Maybe Prelude.Text)+dbSubnetGroup_dbSubnetGroupName = Lens.lens (\DBSubnetGroup' {dbSubnetGroupName} -> dbSubnetGroupName) (\s@DBSubnetGroup' {} a -> s {dbSubnetGroupName = a} :: DBSubnetGroup)++-- | Provides the status of the subnet group.+dbSubnetGroup_subnetGroupStatus :: Lens.Lens' DBSubnetGroup (Prelude.Maybe Prelude.Text)+dbSubnetGroup_subnetGroupStatus = Lens.lens (\DBSubnetGroup' {subnetGroupStatus} -> subnetGroupStatus) (\s@DBSubnetGroup' {} a -> s {subnetGroupStatus = a} :: DBSubnetGroup)++-- | Detailed information about one or more subnets within a subnet group.+dbSubnetGroup_subnets :: Lens.Lens' DBSubnetGroup (Prelude.Maybe [Subnet])+dbSubnetGroup_subnets = Lens.lens (\DBSubnetGroup' {subnets} -> subnets) (\s@DBSubnetGroup' {} a -> s {subnets = a} :: DBSubnetGroup) Prelude.. Lens.mapping Lens.coerced++-- | Provides the virtual private cloud (VPC) ID of the subnet group.+dbSubnetGroup_vpcId :: Lens.Lens' DBSubnetGroup (Prelude.Maybe Prelude.Text)+dbSubnetGroup_vpcId = Lens.lens (\DBSubnetGroup' {vpcId} -> vpcId) (\s@DBSubnetGroup' {} a -> s {vpcId = a} :: DBSubnetGroup)++instance Data.FromXML DBSubnetGroup where+  parseXML x =+    DBSubnetGroup'+      Prelude.<$> (x Data..@? "DBSubnetGroupArn")+      Prelude.<*> (x Data..@? "DBSubnetGroupDescription")+      Prelude.<*> (x Data..@? "DBSubnetGroupName")+      Prelude.<*> (x Data..@? "SubnetGroupStatus")+      Prelude.<*> ( x+                      Data..@? "Subnets"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "Subnet")+                  )+      Prelude.<*> (x Data..@? "VpcId")++instance Prelude.Hashable DBSubnetGroup where+  hashWithSalt _salt DBSubnetGroup' {..} =+    _salt+      `Prelude.hashWithSalt` dbSubnetGroupArn+      `Prelude.hashWithSalt` dbSubnetGroupDescription+      `Prelude.hashWithSalt` dbSubnetGroupName+      `Prelude.hashWithSalt` subnetGroupStatus+      `Prelude.hashWithSalt` subnets+      `Prelude.hashWithSalt` vpcId++instance Prelude.NFData DBSubnetGroup where+  rnf DBSubnetGroup' {..} =+    Prelude.rnf dbSubnetGroupArn+      `Prelude.seq` Prelude.rnf dbSubnetGroupDescription+      `Prelude.seq` Prelude.rnf dbSubnetGroupName+      `Prelude.seq` Prelude.rnf subnetGroupStatus+      `Prelude.seq` Prelude.rnf subnets+      `Prelude.seq` Prelude.rnf vpcId
+ gen/Amazonka/DocumentDB/Types/Endpoint.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.DocumentDB.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.DocumentDB.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++-- | Network information for accessing a cluster or instance. Client programs+-- must specify a valid endpoint to access these Amazon DocumentDB+-- resources.+--+-- /See:/ 'newEndpoint' smart constructor.+data Endpoint = Endpoint'+  { -- | Specifies the DNS address of the instance.+    address :: Prelude.Maybe Prelude.Text,+    -- | Specifies the ID that Amazon Route 53 assigns when you create a hosted+    -- zone.+    hostedZoneId :: Prelude.Maybe Prelude.Text,+    -- | Specifies the port that the database 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' - Specifies the DNS address of the instance.+--+-- 'hostedZoneId', 'endpoint_hostedZoneId' - Specifies the ID that Amazon Route 53 assigns when you create a hosted+-- zone.+--+-- 'port', 'endpoint_port' - Specifies the port that the database engine is listening on.+newEndpoint ::+  Endpoint+newEndpoint =+  Endpoint'+    { address = Prelude.Nothing,+      hostedZoneId = Prelude.Nothing,+      port = Prelude.Nothing+    }++-- | Specifies the DNS address of the instance.+endpoint_address :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)+endpoint_address = Lens.lens (\Endpoint' {address} -> address) (\s@Endpoint' {} a -> s {address = a} :: Endpoint)++-- | Specifies the ID that Amazon Route 53 assigns when you create a hosted+-- zone.+endpoint_hostedZoneId :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)+endpoint_hostedZoneId = Lens.lens (\Endpoint' {hostedZoneId} -> hostedZoneId) (\s@Endpoint' {} a -> s {hostedZoneId = a} :: Endpoint)++-- | Specifies the port that the database 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.FromXML Endpoint where+  parseXML x =+    Endpoint'+      Prelude.<$> (x Data..@? "Address")+      Prelude.<*> (x Data..@? "HostedZoneId")+      Prelude.<*> (x Data..@? "Port")++instance Prelude.Hashable Endpoint where+  hashWithSalt _salt Endpoint' {..} =+    _salt+      `Prelude.hashWithSalt` address+      `Prelude.hashWithSalt` hostedZoneId+      `Prelude.hashWithSalt` port++instance Prelude.NFData Endpoint where+  rnf Endpoint' {..} =+    Prelude.rnf address+      `Prelude.seq` Prelude.rnf hostedZoneId+      `Prelude.seq` Prelude.rnf port
+ gen/Amazonka/DocumentDB/Types/EngineDefaults.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.Types.EngineDefaults+-- 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.DocumentDB.Types.EngineDefaults where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types.Parameter+import qualified Amazonka.Prelude as Prelude++-- | Contains the result of a successful invocation of the+-- @DescribeEngineDefaultClusterParameters@ operation.+--+-- /See:/ 'newEngineDefaults' smart constructor.+data EngineDefaults = EngineDefaults'+  { -- | The name of the cluster parameter group family to return the engine+    -- parameter information for.+    dbParameterGroupFamily :: Prelude.Maybe Prelude.Text,+    -- | An optional pagination token provided by a previous request. If this+    -- parameter is specified, the response includes only records beyond the+    -- marker, up to the value specified by @MaxRecords@.+    marker :: Prelude.Maybe Prelude.Text,+    -- | The parameters of a particular cluster parameter group family.+    parameters :: Prelude.Maybe [Parameter]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EngineDefaults' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbParameterGroupFamily', 'engineDefaults_dbParameterGroupFamily' - The name of the cluster parameter group family to return the engine+-- parameter information for.+--+-- 'marker', 'engineDefaults_marker' - An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+--+-- 'parameters', 'engineDefaults_parameters' - The parameters of a particular cluster parameter group family.+newEngineDefaults ::+  EngineDefaults+newEngineDefaults =+  EngineDefaults'+    { dbParameterGroupFamily =+        Prelude.Nothing,+      marker = Prelude.Nothing,+      parameters = Prelude.Nothing+    }++-- | The name of the cluster parameter group family to return the engine+-- parameter information for.+engineDefaults_dbParameterGroupFamily :: Lens.Lens' EngineDefaults (Prelude.Maybe Prelude.Text)+engineDefaults_dbParameterGroupFamily = Lens.lens (\EngineDefaults' {dbParameterGroupFamily} -> dbParameterGroupFamily) (\s@EngineDefaults' {} a -> s {dbParameterGroupFamily = a} :: EngineDefaults)++-- | An optional pagination token provided by a previous request. If this+-- parameter is specified, the response includes only records beyond the+-- marker, up to the value specified by @MaxRecords@.+engineDefaults_marker :: Lens.Lens' EngineDefaults (Prelude.Maybe Prelude.Text)+engineDefaults_marker = Lens.lens (\EngineDefaults' {marker} -> marker) (\s@EngineDefaults' {} a -> s {marker = a} :: EngineDefaults)++-- | The parameters of a particular cluster parameter group family.+engineDefaults_parameters :: Lens.Lens' EngineDefaults (Prelude.Maybe [Parameter])+engineDefaults_parameters = Lens.lens (\EngineDefaults' {parameters} -> parameters) (\s@EngineDefaults' {} a -> s {parameters = a} :: EngineDefaults) Prelude.. Lens.mapping Lens.coerced++instance Data.FromXML EngineDefaults where+  parseXML x =+    EngineDefaults'+      Prelude.<$> (x Data..@? "DBParameterGroupFamily")+      Prelude.<*> (x Data..@? "Marker")+      Prelude.<*> ( x+                      Data..@? "Parameters"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "Parameter")+                  )++instance Prelude.Hashable EngineDefaults where+  hashWithSalt _salt EngineDefaults' {..} =+    _salt+      `Prelude.hashWithSalt` dbParameterGroupFamily+      `Prelude.hashWithSalt` marker+      `Prelude.hashWithSalt` parameters++instance Prelude.NFData EngineDefaults where+  rnf EngineDefaults' {..} =+    Prelude.rnf dbParameterGroupFamily+      `Prelude.seq` Prelude.rnf marker+      `Prelude.seq` Prelude.rnf parameters
+ gen/Amazonka/DocumentDB/Types/Event.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.DocumentDB.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.DocumentDB.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.DocumentDB.Types.SourceType+import qualified Amazonka.Prelude as Prelude++-- | Detailed information about an event.+--+-- /See:/ 'newEvent' smart constructor.+data Event = Event'+  { -- | Specifies the date and time of the event.+    date :: Prelude.Maybe Data.ISO8601,+    -- | Specifies the category for the event.+    eventCategories :: Prelude.Maybe [Prelude.Text],+    -- | Provides the text of this event.+    message :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) for the event.+    sourceArn :: Prelude.Maybe Prelude.Text,+    -- | Provides the identifier for the source of the event.+    sourceIdentifier :: Prelude.Maybe Prelude.Text,+    -- | Specifies the source type for this event.+    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' - Specifies the date and time of the event.+--+-- 'eventCategories', 'event_eventCategories' - Specifies the category for the event.+--+-- 'message', 'event_message' - Provides the text of this event.+--+-- 'sourceArn', 'event_sourceArn' - The Amazon Resource Name (ARN) for the event.+--+-- 'sourceIdentifier', 'event_sourceIdentifier' - Provides the identifier for the source of the event.+--+-- 'sourceType', 'event_sourceType' - Specifies the source type for this event.+newEvent ::+  Event+newEvent =+  Event'+    { date = Prelude.Nothing,+      eventCategories = Prelude.Nothing,+      message = Prelude.Nothing,+      sourceArn = Prelude.Nothing,+      sourceIdentifier = Prelude.Nothing,+      sourceType = Prelude.Nothing+    }++-- | Specifies the date and time of the event.+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++-- | Specifies the category for the event.+event_eventCategories :: Lens.Lens' Event (Prelude.Maybe [Prelude.Text])+event_eventCategories = Lens.lens (\Event' {eventCategories} -> eventCategories) (\s@Event' {} a -> s {eventCategories = a} :: Event) Prelude.. Lens.mapping Lens.coerced++-- | Provides the text of this 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 Amazon Resource Name (ARN) for the event.+event_sourceArn :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)+event_sourceArn = Lens.lens (\Event' {sourceArn} -> sourceArn) (\s@Event' {} a -> s {sourceArn = a} :: Event)++-- | Provides the identifier for the source of the event.+event_sourceIdentifier :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)+event_sourceIdentifier = Lens.lens (\Event' {sourceIdentifier} -> sourceIdentifier) (\s@Event' {} a -> s {sourceIdentifier = a} :: Event)++-- | Specifies the source type for this event.+event_sourceType :: Lens.Lens' Event (Prelude.Maybe SourceType)+event_sourceType = Lens.lens (\Event' {sourceType} -> sourceType) (\s@Event' {} a -> s {sourceType = a} :: Event)++instance Data.FromXML Event where+  parseXML x =+    Event'+      Prelude.<$> (x Data..@? "Date")+      Prelude.<*> ( x+                      Data..@? "EventCategories"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "EventCategory")+                  )+      Prelude.<*> (x Data..@? "Message")+      Prelude.<*> (x Data..@? "SourceArn")+      Prelude.<*> (x Data..@? "SourceIdentifier")+      Prelude.<*> (x Data..@? "SourceType")++instance Prelude.Hashable Event where+  hashWithSalt _salt Event' {..} =+    _salt+      `Prelude.hashWithSalt` date+      `Prelude.hashWithSalt` eventCategories+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` sourceArn+      `Prelude.hashWithSalt` sourceIdentifier+      `Prelude.hashWithSalt` sourceType++instance Prelude.NFData Event where+  rnf Event' {..} =+    Prelude.rnf date+      `Prelude.seq` Prelude.rnf eventCategories+      `Prelude.seq` Prelude.rnf message+      `Prelude.seq` Prelude.rnf sourceArn+      `Prelude.seq` Prelude.rnf sourceIdentifier+      `Prelude.seq` Prelude.rnf sourceType
+ gen/Amazonka/DocumentDB/Types/EventCategoriesMap.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.DocumentDB.Types.EventCategoriesMap+-- 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.DocumentDB.Types.EventCategoriesMap where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An event source type, accompanied by one or more event category names.+--+-- /See:/ 'newEventCategoriesMap' smart constructor.+data EventCategoriesMap = EventCategoriesMap'+  { -- | The event categories for the specified source type.+    eventCategories :: Prelude.Maybe [Prelude.Text],+    -- | The source type that the returned categories belong to.+    sourceType :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EventCategoriesMap' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventCategories', 'eventCategoriesMap_eventCategories' - The event categories for the specified source type.+--+-- 'sourceType', 'eventCategoriesMap_sourceType' - The source type that the returned categories belong to.+newEventCategoriesMap ::+  EventCategoriesMap+newEventCategoriesMap =+  EventCategoriesMap'+    { eventCategories =+        Prelude.Nothing,+      sourceType = Prelude.Nothing+    }++-- | The event categories for the specified source type.+eventCategoriesMap_eventCategories :: Lens.Lens' EventCategoriesMap (Prelude.Maybe [Prelude.Text])+eventCategoriesMap_eventCategories = Lens.lens (\EventCategoriesMap' {eventCategories} -> eventCategories) (\s@EventCategoriesMap' {} a -> s {eventCategories = a} :: EventCategoriesMap) Prelude.. Lens.mapping Lens.coerced++-- | The source type that the returned categories belong to.+eventCategoriesMap_sourceType :: Lens.Lens' EventCategoriesMap (Prelude.Maybe Prelude.Text)+eventCategoriesMap_sourceType = Lens.lens (\EventCategoriesMap' {sourceType} -> sourceType) (\s@EventCategoriesMap' {} a -> s {sourceType = a} :: EventCategoriesMap)++instance Data.FromXML EventCategoriesMap where+  parseXML x =+    EventCategoriesMap'+      Prelude.<$> ( x+                      Data..@? "EventCategories"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "EventCategory")+                  )+      Prelude.<*> (x Data..@? "SourceType")++instance Prelude.Hashable EventCategoriesMap where+  hashWithSalt _salt EventCategoriesMap' {..} =+    _salt+      `Prelude.hashWithSalt` eventCategories+      `Prelude.hashWithSalt` sourceType++instance Prelude.NFData EventCategoriesMap where+  rnf EventCategoriesMap' {..} =+    Prelude.rnf eventCategories+      `Prelude.seq` Prelude.rnf sourceType
+ gen/Amazonka/DocumentDB/Types/EventSubscription.hs view
@@ -0,0 +1,230 @@+{-# 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.DocumentDB.Types.EventSubscription+-- 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.DocumentDB.Types.EventSubscription 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++-- | Detailed information about an event to which you have subscribed.+--+-- /See:/ 'newEventSubscription' smart constructor.+data EventSubscription = EventSubscription'+  { -- | The Amazon DocumentDB event notification subscription ID.+    custSubscriptionId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services customer account that is associated with the+    -- Amazon DocumentDB event notification subscription.+    customerAwsId :: Prelude.Maybe Prelude.Text,+    -- | A Boolean value indicating whether the subscription is enabled. A value+    -- of @true@ indicates that the subscription is enabled.+    enabled :: Prelude.Maybe Prelude.Bool,+    -- | A list of event categories for the Amazon DocumentDB event notification+    -- subscription.+    eventCategoriesList :: Prelude.Maybe [Prelude.Text],+    -- | The Amazon Resource Name (ARN) for the event subscription.+    eventSubscriptionArn :: Prelude.Maybe Prelude.Text,+    -- | The topic ARN of the Amazon DocumentDB event notification subscription.+    snsTopicArn :: Prelude.Maybe Prelude.Text,+    -- | A list of source IDs for the Amazon DocumentDB event notification+    -- subscription.+    sourceIdsList :: Prelude.Maybe [Prelude.Text],+    -- | The source type for the Amazon DocumentDB event notification+    -- subscription.+    sourceType :: Prelude.Maybe Prelude.Text,+    -- | The status of the Amazon DocumentDB event notification subscription.+    --+    -- Constraints:+    --+    -- Can be one of the following: @creating@, @modifying@, @deleting@,+    -- @active@, @no-permission@, @topic-not-exist@+    --+    -- The @no-permission@ status indicates that Amazon DocumentDB no longer+    -- has permission to post to the SNS topic. The @topic-not-exist@ status+    -- indicates that the topic was deleted after the subscription was created.+    status :: Prelude.Maybe Prelude.Text,+    -- | The time at which the Amazon DocumentDB event notification subscription+    -- was created.+    subscriptionCreationTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EventSubscription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'custSubscriptionId', 'eventSubscription_custSubscriptionId' - The Amazon DocumentDB event notification subscription ID.+--+-- 'customerAwsId', 'eventSubscription_customerAwsId' - The Amazon Web Services customer account that is associated with the+-- Amazon DocumentDB event notification subscription.+--+-- 'enabled', 'eventSubscription_enabled' - A Boolean value indicating whether the subscription is enabled. A value+-- of @true@ indicates that the subscription is enabled.+--+-- 'eventCategoriesList', 'eventSubscription_eventCategoriesList' - A list of event categories for the Amazon DocumentDB event notification+-- subscription.+--+-- 'eventSubscriptionArn', 'eventSubscription_eventSubscriptionArn' - The Amazon Resource Name (ARN) for the event subscription.+--+-- 'snsTopicArn', 'eventSubscription_snsTopicArn' - The topic ARN of the Amazon DocumentDB event notification subscription.+--+-- 'sourceIdsList', 'eventSubscription_sourceIdsList' - A list of source IDs for the Amazon DocumentDB event notification+-- subscription.+--+-- 'sourceType', 'eventSubscription_sourceType' - The source type for the Amazon DocumentDB event notification+-- subscription.+--+-- 'status', 'eventSubscription_status' - The status of the Amazon DocumentDB event notification subscription.+--+-- Constraints:+--+-- Can be one of the following: @creating@, @modifying@, @deleting@,+-- @active@, @no-permission@, @topic-not-exist@+--+-- The @no-permission@ status indicates that Amazon DocumentDB no longer+-- has permission to post to the SNS topic. The @topic-not-exist@ status+-- indicates that the topic was deleted after the subscription was created.+--+-- 'subscriptionCreationTime', 'eventSubscription_subscriptionCreationTime' - The time at which the Amazon DocumentDB event notification subscription+-- was created.+newEventSubscription ::+  EventSubscription+newEventSubscription =+  EventSubscription'+    { custSubscriptionId =+        Prelude.Nothing,+      customerAwsId = Prelude.Nothing,+      enabled = Prelude.Nothing,+      eventCategoriesList = Prelude.Nothing,+      eventSubscriptionArn = Prelude.Nothing,+      snsTopicArn = Prelude.Nothing,+      sourceIdsList = Prelude.Nothing,+      sourceType = Prelude.Nothing,+      status = Prelude.Nothing,+      subscriptionCreationTime = Prelude.Nothing+    }++-- | The Amazon DocumentDB event notification subscription ID.+eventSubscription_custSubscriptionId :: Lens.Lens' EventSubscription (Prelude.Maybe Prelude.Text)+eventSubscription_custSubscriptionId = Lens.lens (\EventSubscription' {custSubscriptionId} -> custSubscriptionId) (\s@EventSubscription' {} a -> s {custSubscriptionId = a} :: EventSubscription)++-- | The Amazon Web Services customer account that is associated with the+-- Amazon DocumentDB event notification subscription.+eventSubscription_customerAwsId :: Lens.Lens' EventSubscription (Prelude.Maybe Prelude.Text)+eventSubscription_customerAwsId = Lens.lens (\EventSubscription' {customerAwsId} -> customerAwsId) (\s@EventSubscription' {} a -> s {customerAwsId = a} :: EventSubscription)++-- | A Boolean value indicating whether the subscription is enabled. A value+-- of @true@ indicates that the subscription is enabled.+eventSubscription_enabled :: Lens.Lens' EventSubscription (Prelude.Maybe Prelude.Bool)+eventSubscription_enabled = Lens.lens (\EventSubscription' {enabled} -> enabled) (\s@EventSubscription' {} a -> s {enabled = a} :: EventSubscription)++-- | A list of event categories for the Amazon DocumentDB event notification+-- subscription.+eventSubscription_eventCategoriesList :: Lens.Lens' EventSubscription (Prelude.Maybe [Prelude.Text])+eventSubscription_eventCategoriesList = Lens.lens (\EventSubscription' {eventCategoriesList} -> eventCategoriesList) (\s@EventSubscription' {} a -> s {eventCategoriesList = a} :: EventSubscription) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) for the event subscription.+eventSubscription_eventSubscriptionArn :: Lens.Lens' EventSubscription (Prelude.Maybe Prelude.Text)+eventSubscription_eventSubscriptionArn = Lens.lens (\EventSubscription' {eventSubscriptionArn} -> eventSubscriptionArn) (\s@EventSubscription' {} a -> s {eventSubscriptionArn = a} :: EventSubscription)++-- | The topic ARN of the Amazon DocumentDB event notification subscription.+eventSubscription_snsTopicArn :: Lens.Lens' EventSubscription (Prelude.Maybe Prelude.Text)+eventSubscription_snsTopicArn = Lens.lens (\EventSubscription' {snsTopicArn} -> snsTopicArn) (\s@EventSubscription' {} a -> s {snsTopicArn = a} :: EventSubscription)++-- | A list of source IDs for the Amazon DocumentDB event notification+-- subscription.+eventSubscription_sourceIdsList :: Lens.Lens' EventSubscription (Prelude.Maybe [Prelude.Text])+eventSubscription_sourceIdsList = Lens.lens (\EventSubscription' {sourceIdsList} -> sourceIdsList) (\s@EventSubscription' {} a -> s {sourceIdsList = a} :: EventSubscription) Prelude.. Lens.mapping Lens.coerced++-- | The source type for the Amazon DocumentDB event notification+-- subscription.+eventSubscription_sourceType :: Lens.Lens' EventSubscription (Prelude.Maybe Prelude.Text)+eventSubscription_sourceType = Lens.lens (\EventSubscription' {sourceType} -> sourceType) (\s@EventSubscription' {} a -> s {sourceType = a} :: EventSubscription)++-- | The status of the Amazon DocumentDB event notification subscription.+--+-- Constraints:+--+-- Can be one of the following: @creating@, @modifying@, @deleting@,+-- @active@, @no-permission@, @topic-not-exist@+--+-- The @no-permission@ status indicates that Amazon DocumentDB no longer+-- has permission to post to the SNS topic. The @topic-not-exist@ status+-- indicates that the topic was deleted after the subscription was created.+eventSubscription_status :: Lens.Lens' EventSubscription (Prelude.Maybe Prelude.Text)+eventSubscription_status = Lens.lens (\EventSubscription' {status} -> status) (\s@EventSubscription' {} a -> s {status = a} :: EventSubscription)++-- | The time at which the Amazon DocumentDB event notification subscription+-- was created.+eventSubscription_subscriptionCreationTime :: Lens.Lens' EventSubscription (Prelude.Maybe Prelude.Text)+eventSubscription_subscriptionCreationTime = Lens.lens (\EventSubscription' {subscriptionCreationTime} -> subscriptionCreationTime) (\s@EventSubscription' {} a -> s {subscriptionCreationTime = a} :: EventSubscription)++instance Data.FromXML EventSubscription where+  parseXML x =+    EventSubscription'+      Prelude.<$> (x Data..@? "CustSubscriptionId")+      Prelude.<*> (x Data..@? "CustomerAwsId")+      Prelude.<*> (x Data..@? "Enabled")+      Prelude.<*> ( x+                      Data..@? "EventCategoriesList"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "EventCategory")+                  )+      Prelude.<*> (x Data..@? "EventSubscriptionArn")+      Prelude.<*> (x Data..@? "SnsTopicArn")+      Prelude.<*> ( x+                      Data..@? "SourceIdsList"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "SourceId")+                  )+      Prelude.<*> (x Data..@? "SourceType")+      Prelude.<*> (x Data..@? "Status")+      Prelude.<*> (x Data..@? "SubscriptionCreationTime")++instance Prelude.Hashable EventSubscription where+  hashWithSalt _salt EventSubscription' {..} =+    _salt+      `Prelude.hashWithSalt` custSubscriptionId+      `Prelude.hashWithSalt` customerAwsId+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` eventCategoriesList+      `Prelude.hashWithSalt` eventSubscriptionArn+      `Prelude.hashWithSalt` snsTopicArn+      `Prelude.hashWithSalt` sourceIdsList+      `Prelude.hashWithSalt` sourceType+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` subscriptionCreationTime++instance Prelude.NFData EventSubscription where+  rnf EventSubscription' {..} =+    Prelude.rnf custSubscriptionId+      `Prelude.seq` Prelude.rnf customerAwsId+      `Prelude.seq` Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf eventCategoriesList+      `Prelude.seq` Prelude.rnf eventSubscriptionArn+      `Prelude.seq` Prelude.rnf snsTopicArn+      `Prelude.seq` Prelude.rnf sourceIdsList+      `Prelude.seq` Prelude.rnf sourceType+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf subscriptionCreationTime
+ gen/Amazonka/DocumentDB/Types/Filter.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.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.DocumentDB.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++-- | A named set of filter values, used to return a more specific list of+-- results. You can use a filter to match a set of resources by specific+-- criteria, such as IDs.+--+-- Wildcards are not supported in filters.+--+-- /See:/ 'newFilter' smart constructor.+data Filter = Filter'+  { -- | The name of the filter. Filter names are case sensitive.+    name :: Prelude.Text,+    -- | One or more filter values. Filter values are case sensitive.+    values :: [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 name of the filter. Filter names are case sensitive.+--+-- 'values', 'filter_values' - One or more filter values. Filter values are case sensitive.+newFilter ::+  -- | 'name'+  Prelude.Text ->+  Filter+newFilter pName_ =+  Filter' {name = pName_, values = Prelude.mempty}++-- | The name of the filter. Filter names are case sensitive.+filter_name :: Lens.Lens' Filter Prelude.Text+filter_name = Lens.lens (\Filter' {name} -> name) (\s@Filter' {} a -> s {name = a} :: Filter)++-- | One or more filter values. Filter values are case sensitive.+filter_values :: Lens.Lens' Filter [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.ToQuery Filter where+  toQuery Filter' {..} =+    Prelude.mconcat+      [ "Name" Data.=: name,+        "Values" Data.=: Data.toQueryList "Value" values+      ]
+ gen/Amazonka/DocumentDB/Types/GlobalCluster.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.DocumentDB.Types.GlobalCluster+-- 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.DocumentDB.Types.GlobalCluster where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types.GlobalClusterMember+import qualified Amazonka.Prelude as Prelude++-- | A data type representing an Amazon DocumentDB global cluster.+--+-- /See:/ 'newGlobalCluster' smart constructor.+data GlobalCluster = GlobalCluster'+  { -- | The default database name within the new global cluster.+    databaseName :: Prelude.Maybe Prelude.Text,+    -- | The deletion protection setting for the new global cluster.+    deletionProtection :: Prelude.Maybe Prelude.Bool,+    -- | The Amazon DocumentDB database engine used by the global cluster.+    engine :: Prelude.Maybe Prelude.Text,+    -- | Indicates the database engine version.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) for the global cluster.+    globalClusterArn :: Prelude.Maybe Prelude.Text,+    -- | Contains a user-supplied global cluster identifier. This identifier is+    -- the unique key that identifies a global cluster.+    globalClusterIdentifier :: Prelude.Maybe Prelude.Text,+    -- | The list of cluster IDs for secondary clusters within the global+    -- cluster. Currently limited to one item.+    globalClusterMembers :: Prelude.Maybe [GlobalClusterMember],+    -- | The Amazon Web Services Region-unique, immutable identifier for the+    -- global database cluster. This identifier is found in AWS CloudTrail log+    -- entries whenever the AWS KMS customer master key (CMK) for the cluster+    -- is accessed.+    globalClusterResourceId :: Prelude.Maybe Prelude.Text,+    -- | Specifies the current state of this global cluster.+    status :: Prelude.Maybe Prelude.Text,+    -- | The storage encryption setting for the global cluster.+    storageEncrypted :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GlobalCluster' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'databaseName', 'globalCluster_databaseName' - The default database name within the new global cluster.+--+-- 'deletionProtection', 'globalCluster_deletionProtection' - The deletion protection setting for the new global cluster.+--+-- 'engine', 'globalCluster_engine' - The Amazon DocumentDB database engine used by the global cluster.+--+-- 'engineVersion', 'globalCluster_engineVersion' - Indicates the database engine version.+--+-- 'globalClusterArn', 'globalCluster_globalClusterArn' - The Amazon Resource Name (ARN) for the global cluster.+--+-- 'globalClusterIdentifier', 'globalCluster_globalClusterIdentifier' - Contains a user-supplied global cluster identifier. This identifier is+-- the unique key that identifies a global cluster.+--+-- 'globalClusterMembers', 'globalCluster_globalClusterMembers' - The list of cluster IDs for secondary clusters within the global+-- cluster. Currently limited to one item.+--+-- 'globalClusterResourceId', 'globalCluster_globalClusterResourceId' - The Amazon Web Services Region-unique, immutable identifier for the+-- global database cluster. This identifier is found in AWS CloudTrail log+-- entries whenever the AWS KMS customer master key (CMK) for the cluster+-- is accessed.+--+-- 'status', 'globalCluster_status' - Specifies the current state of this global cluster.+--+-- 'storageEncrypted', 'globalCluster_storageEncrypted' - The storage encryption setting for the global cluster.+newGlobalCluster ::+  GlobalCluster+newGlobalCluster =+  GlobalCluster'+    { databaseName = Prelude.Nothing,+      deletionProtection = Prelude.Nothing,+      engine = Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      globalClusterArn = Prelude.Nothing,+      globalClusterIdentifier = Prelude.Nothing,+      globalClusterMembers = Prelude.Nothing,+      globalClusterResourceId = Prelude.Nothing,+      status = Prelude.Nothing,+      storageEncrypted = Prelude.Nothing+    }++-- | The default database name within the new global cluster.+globalCluster_databaseName :: Lens.Lens' GlobalCluster (Prelude.Maybe Prelude.Text)+globalCluster_databaseName = Lens.lens (\GlobalCluster' {databaseName} -> databaseName) (\s@GlobalCluster' {} a -> s {databaseName = a} :: GlobalCluster)++-- | The deletion protection setting for the new global cluster.+globalCluster_deletionProtection :: Lens.Lens' GlobalCluster (Prelude.Maybe Prelude.Bool)+globalCluster_deletionProtection = Lens.lens (\GlobalCluster' {deletionProtection} -> deletionProtection) (\s@GlobalCluster' {} a -> s {deletionProtection = a} :: GlobalCluster)++-- | The Amazon DocumentDB database engine used by the global cluster.+globalCluster_engine :: Lens.Lens' GlobalCluster (Prelude.Maybe Prelude.Text)+globalCluster_engine = Lens.lens (\GlobalCluster' {engine} -> engine) (\s@GlobalCluster' {} a -> s {engine = a} :: GlobalCluster)++-- | Indicates the database engine version.+globalCluster_engineVersion :: Lens.Lens' GlobalCluster (Prelude.Maybe Prelude.Text)+globalCluster_engineVersion = Lens.lens (\GlobalCluster' {engineVersion} -> engineVersion) (\s@GlobalCluster' {} a -> s {engineVersion = a} :: GlobalCluster)++-- | The Amazon Resource Name (ARN) for the global cluster.+globalCluster_globalClusterArn :: Lens.Lens' GlobalCluster (Prelude.Maybe Prelude.Text)+globalCluster_globalClusterArn = Lens.lens (\GlobalCluster' {globalClusterArn} -> globalClusterArn) (\s@GlobalCluster' {} a -> s {globalClusterArn = a} :: GlobalCluster)++-- | Contains a user-supplied global cluster identifier. This identifier is+-- the unique key that identifies a global cluster.+globalCluster_globalClusterIdentifier :: Lens.Lens' GlobalCluster (Prelude.Maybe Prelude.Text)+globalCluster_globalClusterIdentifier = Lens.lens (\GlobalCluster' {globalClusterIdentifier} -> globalClusterIdentifier) (\s@GlobalCluster' {} a -> s {globalClusterIdentifier = a} :: GlobalCluster)++-- | The list of cluster IDs for secondary clusters within the global+-- cluster. Currently limited to one item.+globalCluster_globalClusterMembers :: Lens.Lens' GlobalCluster (Prelude.Maybe [GlobalClusterMember])+globalCluster_globalClusterMembers = Lens.lens (\GlobalCluster' {globalClusterMembers} -> globalClusterMembers) (\s@GlobalCluster' {} a -> s {globalClusterMembers = a} :: GlobalCluster) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Web Services Region-unique, immutable identifier for the+-- global database cluster. This identifier is found in AWS CloudTrail log+-- entries whenever the AWS KMS customer master key (CMK) for the cluster+-- is accessed.+globalCluster_globalClusterResourceId :: Lens.Lens' GlobalCluster (Prelude.Maybe Prelude.Text)+globalCluster_globalClusterResourceId = Lens.lens (\GlobalCluster' {globalClusterResourceId} -> globalClusterResourceId) (\s@GlobalCluster' {} a -> s {globalClusterResourceId = a} :: GlobalCluster)++-- | Specifies the current state of this global cluster.+globalCluster_status :: Lens.Lens' GlobalCluster (Prelude.Maybe Prelude.Text)+globalCluster_status = Lens.lens (\GlobalCluster' {status} -> status) (\s@GlobalCluster' {} a -> s {status = a} :: GlobalCluster)++-- | The storage encryption setting for the global cluster.+globalCluster_storageEncrypted :: Lens.Lens' GlobalCluster (Prelude.Maybe Prelude.Bool)+globalCluster_storageEncrypted = Lens.lens (\GlobalCluster' {storageEncrypted} -> storageEncrypted) (\s@GlobalCluster' {} a -> s {storageEncrypted = a} :: GlobalCluster)++instance Data.FromXML GlobalCluster where+  parseXML x =+    GlobalCluster'+      Prelude.<$> (x Data..@? "DatabaseName")+      Prelude.<*> (x Data..@? "DeletionProtection")+      Prelude.<*> (x Data..@? "Engine")+      Prelude.<*> (x Data..@? "EngineVersion")+      Prelude.<*> (x Data..@? "GlobalClusterArn")+      Prelude.<*> (x Data..@? "GlobalClusterIdentifier")+      Prelude.<*> ( x+                      Data..@? "GlobalClusterMembers"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "GlobalClusterMember")+                  )+      Prelude.<*> (x Data..@? "GlobalClusterResourceId")+      Prelude.<*> (x Data..@? "Status")+      Prelude.<*> (x Data..@? "StorageEncrypted")++instance Prelude.Hashable GlobalCluster where+  hashWithSalt _salt GlobalCluster' {..} =+    _salt+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` deletionProtection+      `Prelude.hashWithSalt` engine+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` globalClusterArn+      `Prelude.hashWithSalt` globalClusterIdentifier+      `Prelude.hashWithSalt` globalClusterMembers+      `Prelude.hashWithSalt` globalClusterResourceId+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` storageEncrypted++instance Prelude.NFData GlobalCluster where+  rnf GlobalCluster' {..} =+    Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf deletionProtection+      `Prelude.seq` Prelude.rnf engine+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf globalClusterArn+      `Prelude.seq` Prelude.rnf globalClusterIdentifier+      `Prelude.seq` Prelude.rnf globalClusterMembers+      `Prelude.seq` Prelude.rnf globalClusterResourceId+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf storageEncrypted
+ gen/Amazonka/DocumentDB/Types/GlobalClusterMember.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.Types.GlobalClusterMember+-- 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.DocumentDB.Types.GlobalClusterMember 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 data structure with information about any primary and secondary+-- clusters associated with an Amazon DocumentDB global clusters.+--+-- /See:/ 'newGlobalClusterMember' smart constructor.+data GlobalClusterMember = GlobalClusterMember'+  { -- | The Amazon Resource Name (ARN) for each Amazon DocumentDB cluster.+    dbClusterArn :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether the Amazon DocumentDB cluster is the primary cluster+    -- (that is, has read-write capability) for the Amazon DocumentDB global+    -- cluster with which it is associated.+    isWriter :: Prelude.Maybe Prelude.Bool,+    -- | The Amazon Resource Name (ARN) for each read-only secondary cluster+    -- associated with the Aurora global cluster.+    readers :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GlobalClusterMember' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dbClusterArn', 'globalClusterMember_dbClusterArn' - The Amazon Resource Name (ARN) for each Amazon DocumentDB cluster.+--+-- 'isWriter', 'globalClusterMember_isWriter' - Specifies whether the Amazon DocumentDB cluster is the primary cluster+-- (that is, has read-write capability) for the Amazon DocumentDB global+-- cluster with which it is associated.+--+-- 'readers', 'globalClusterMember_readers' - The Amazon Resource Name (ARN) for each read-only secondary cluster+-- associated with the Aurora global cluster.+newGlobalClusterMember ::+  GlobalClusterMember+newGlobalClusterMember =+  GlobalClusterMember'+    { dbClusterArn =+        Prelude.Nothing,+      isWriter = Prelude.Nothing,+      readers = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) for each Amazon DocumentDB cluster.+globalClusterMember_dbClusterArn :: Lens.Lens' GlobalClusterMember (Prelude.Maybe Prelude.Text)+globalClusterMember_dbClusterArn = Lens.lens (\GlobalClusterMember' {dbClusterArn} -> dbClusterArn) (\s@GlobalClusterMember' {} a -> s {dbClusterArn = a} :: GlobalClusterMember)++-- | Specifies whether the Amazon DocumentDB cluster is the primary cluster+-- (that is, has read-write capability) for the Amazon DocumentDB global+-- cluster with which it is associated.+globalClusterMember_isWriter :: Lens.Lens' GlobalClusterMember (Prelude.Maybe Prelude.Bool)+globalClusterMember_isWriter = Lens.lens (\GlobalClusterMember' {isWriter} -> isWriter) (\s@GlobalClusterMember' {} a -> s {isWriter = a} :: GlobalClusterMember)++-- | The Amazon Resource Name (ARN) for each read-only secondary cluster+-- associated with the Aurora global cluster.+globalClusterMember_readers :: Lens.Lens' GlobalClusterMember (Prelude.Maybe [Prelude.Text])+globalClusterMember_readers = Lens.lens (\GlobalClusterMember' {readers} -> readers) (\s@GlobalClusterMember' {} a -> s {readers = a} :: GlobalClusterMember) Prelude.. Lens.mapping Lens.coerced++instance Data.FromXML GlobalClusterMember where+  parseXML x =+    GlobalClusterMember'+      Prelude.<$> (x Data..@? "DBClusterArn")+      Prelude.<*> (x Data..@? "IsWriter")+      Prelude.<*> ( x+                      Data..@? "Readers"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "member")+                  )++instance Prelude.Hashable GlobalClusterMember where+  hashWithSalt _salt GlobalClusterMember' {..} =+    _salt+      `Prelude.hashWithSalt` dbClusterArn+      `Prelude.hashWithSalt` isWriter+      `Prelude.hashWithSalt` readers++instance Prelude.NFData GlobalClusterMember where+  rnf GlobalClusterMember' {..} =+    Prelude.rnf dbClusterArn+      `Prelude.seq` Prelude.rnf isWriter+      `Prelude.seq` Prelude.rnf readers
+ gen/Amazonka/DocumentDB/Types/OrderableDBInstanceOption.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.Types.OrderableDBInstanceOption+-- 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.DocumentDB.Types.OrderableDBInstanceOption where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types.AvailabilityZone+import qualified Amazonka.Prelude as Prelude++-- | The options that are available for an instance.+--+-- /See:/ 'newOrderableDBInstanceOption' smart constructor.+data OrderableDBInstanceOption = OrderableDBInstanceOption'+  { -- | A list of Availability Zones for an instance.+    availabilityZones :: Prelude.Maybe [AvailabilityZone],+    -- | The instance class for an instance.+    dbInstanceClass :: Prelude.Maybe Prelude.Text,+    -- | The engine type of an instance.+    engine :: Prelude.Maybe Prelude.Text,+    -- | The engine version of an instance.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | The license model for an instance.+    licenseModel :: Prelude.Maybe Prelude.Text,+    -- | Indicates whether an instance is in a virtual private cloud (VPC).+    vpc :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OrderableDBInstanceOption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'availabilityZones', 'orderableDBInstanceOption_availabilityZones' - A list of Availability Zones for an instance.+--+-- 'dbInstanceClass', 'orderableDBInstanceOption_dbInstanceClass' - The instance class for an instance.+--+-- 'engine', 'orderableDBInstanceOption_engine' - The engine type of an instance.+--+-- 'engineVersion', 'orderableDBInstanceOption_engineVersion' - The engine version of an instance.+--+-- 'licenseModel', 'orderableDBInstanceOption_licenseModel' - The license model for an instance.+--+-- 'vpc', 'orderableDBInstanceOption_vpc' - Indicates whether an instance is in a virtual private cloud (VPC).+newOrderableDBInstanceOption ::+  OrderableDBInstanceOption+newOrderableDBInstanceOption =+  OrderableDBInstanceOption'+    { availabilityZones =+        Prelude.Nothing,+      dbInstanceClass = Prelude.Nothing,+      engine = Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      licenseModel = Prelude.Nothing,+      vpc = Prelude.Nothing+    }++-- | A list of Availability Zones for an instance.+orderableDBInstanceOption_availabilityZones :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe [AvailabilityZone])+orderableDBInstanceOption_availabilityZones = Lens.lens (\OrderableDBInstanceOption' {availabilityZones} -> availabilityZones) (\s@OrderableDBInstanceOption' {} a -> s {availabilityZones = a} :: OrderableDBInstanceOption) Prelude.. Lens.mapping Lens.coerced++-- | The instance class for an instance.+orderableDBInstanceOption_dbInstanceClass :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Text)+orderableDBInstanceOption_dbInstanceClass = Lens.lens (\OrderableDBInstanceOption' {dbInstanceClass} -> dbInstanceClass) (\s@OrderableDBInstanceOption' {} a -> s {dbInstanceClass = a} :: OrderableDBInstanceOption)++-- | The engine type of an instance.+orderableDBInstanceOption_engine :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Text)+orderableDBInstanceOption_engine = Lens.lens (\OrderableDBInstanceOption' {engine} -> engine) (\s@OrderableDBInstanceOption' {} a -> s {engine = a} :: OrderableDBInstanceOption)++-- | The engine version of an instance.+orderableDBInstanceOption_engineVersion :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Text)+orderableDBInstanceOption_engineVersion = Lens.lens (\OrderableDBInstanceOption' {engineVersion} -> engineVersion) (\s@OrderableDBInstanceOption' {} a -> s {engineVersion = a} :: OrderableDBInstanceOption)++-- | The license model for an instance.+orderableDBInstanceOption_licenseModel :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Text)+orderableDBInstanceOption_licenseModel = Lens.lens (\OrderableDBInstanceOption' {licenseModel} -> licenseModel) (\s@OrderableDBInstanceOption' {} a -> s {licenseModel = a} :: OrderableDBInstanceOption)++-- | Indicates whether an instance is in a virtual private cloud (VPC).+orderableDBInstanceOption_vpc :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Bool)+orderableDBInstanceOption_vpc = Lens.lens (\OrderableDBInstanceOption' {vpc} -> vpc) (\s@OrderableDBInstanceOption' {} a -> s {vpc = a} :: OrderableDBInstanceOption)++instance Data.FromXML OrderableDBInstanceOption where+  parseXML x =+    OrderableDBInstanceOption'+      Prelude.<$> ( x+                      Data..@? "AvailabilityZones"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "AvailabilityZone")+                  )+      Prelude.<*> (x Data..@? "DBInstanceClass")+      Prelude.<*> (x Data..@? "Engine")+      Prelude.<*> (x Data..@? "EngineVersion")+      Prelude.<*> (x Data..@? "LicenseModel")+      Prelude.<*> (x Data..@? "Vpc")++instance Prelude.Hashable OrderableDBInstanceOption where+  hashWithSalt _salt OrderableDBInstanceOption' {..} =+    _salt+      `Prelude.hashWithSalt` availabilityZones+      `Prelude.hashWithSalt` dbInstanceClass+      `Prelude.hashWithSalt` engine+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` licenseModel+      `Prelude.hashWithSalt` vpc++instance Prelude.NFData OrderableDBInstanceOption where+  rnf OrderableDBInstanceOption' {..} =+    Prelude.rnf availabilityZones+      `Prelude.seq` Prelude.rnf dbInstanceClass+      `Prelude.seq` Prelude.rnf engine+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf licenseModel+      `Prelude.seq` Prelude.rnf vpc
+ gen/Amazonka/DocumentDB/Types/Parameter.hs view
@@ -0,0 +1,198 @@+{-# 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.DocumentDB.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.DocumentDB.Types.Parameter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types.ApplyMethod+import qualified Amazonka.Prelude as Prelude++-- | Detailed information about an individual parameter.+--+-- /See:/ 'newParameter' smart constructor.+data Parameter = Parameter'+  { -- | Specifies the valid range of values for the parameter.+    allowedValues :: Prelude.Maybe Prelude.Text,+    -- | Indicates when to apply parameter updates.+    applyMethod :: Prelude.Maybe ApplyMethod,+    -- | Specifies the engine-specific parameters type.+    applyType :: Prelude.Maybe Prelude.Text,+    -- | Specifies the valid data type for the parameter.+    dataType :: Prelude.Maybe Prelude.Text,+    -- | Provides a description of the parameter.+    description :: Prelude.Maybe Prelude.Text,+    -- | Indicates whether (@true@) or not (@false@) the parameter can be+    -- modified. Some parameters have security or operational implications that+    -- prevent them from being changed.+    isModifiable :: Prelude.Maybe Prelude.Bool,+    -- | The earliest engine version to which the parameter can apply.+    minimumEngineVersion :: Prelude.Maybe Prelude.Text,+    -- | Specifies the name of the parameter.+    parameterName :: Prelude.Maybe Prelude.Text,+    -- | Specifies the value of the parameter.+    parameterValue :: Prelude.Maybe Prelude.Text,+    -- | Indicates the source of the parameter value.+    source :: 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' - Specifies the valid range of values for the parameter.+--+-- 'applyMethod', 'parameter_applyMethod' - Indicates when to apply parameter updates.+--+-- 'applyType', 'parameter_applyType' - Specifies the engine-specific parameters type.+--+-- 'dataType', 'parameter_dataType' - Specifies the valid data type for the parameter.+--+-- 'description', 'parameter_description' - Provides a description of the parameter.+--+-- 'isModifiable', 'parameter_isModifiable' - Indicates whether (@true@) or not (@false@) the parameter can be+-- modified. Some parameters have security or operational implications that+-- prevent them from being changed.+--+-- 'minimumEngineVersion', 'parameter_minimumEngineVersion' - The earliest engine version to which the parameter can apply.+--+-- 'parameterName', 'parameter_parameterName' - Specifies the name of the parameter.+--+-- 'parameterValue', 'parameter_parameterValue' - Specifies the value of the parameter.+--+-- 'source', 'parameter_source' - Indicates the source of the parameter value.+newParameter ::+  Parameter+newParameter =+  Parameter'+    { allowedValues = Prelude.Nothing,+      applyMethod = Prelude.Nothing,+      applyType = Prelude.Nothing,+      dataType = Prelude.Nothing,+      description = Prelude.Nothing,+      isModifiable = Prelude.Nothing,+      minimumEngineVersion = Prelude.Nothing,+      parameterName = Prelude.Nothing,+      parameterValue = Prelude.Nothing,+      source = Prelude.Nothing+    }++-- | Specifies 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)++-- | Indicates when to apply parameter updates.+parameter_applyMethod :: Lens.Lens' Parameter (Prelude.Maybe ApplyMethod)+parameter_applyMethod = Lens.lens (\Parameter' {applyMethod} -> applyMethod) (\s@Parameter' {} a -> s {applyMethod = a} :: Parameter)++-- | Specifies the engine-specific parameters type.+parameter_applyType :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)+parameter_applyType = Lens.lens (\Parameter' {applyType} -> applyType) (\s@Parameter' {} a -> s {applyType = a} :: Parameter)++-- | Specifies the valid data type for the parameter.+parameter_dataType :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)+parameter_dataType = Lens.lens (\Parameter' {dataType} -> dataType) (\s@Parameter' {} a -> s {dataType = a} :: Parameter)++-- | Provides 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)++-- | Indicates whether (@true@) or not (@false@) the parameter can be+-- modified. Some parameters have security or operational implications that+-- prevent them from being changed.+parameter_isModifiable :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Bool)+parameter_isModifiable = Lens.lens (\Parameter' {isModifiable} -> isModifiable) (\s@Parameter' {} a -> s {isModifiable = 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)++-- | Specifies the name of the parameter.+parameter_parameterName :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)+parameter_parameterName = Lens.lens (\Parameter' {parameterName} -> parameterName) (\s@Parameter' {} a -> s {parameterName = a} :: Parameter)++-- | Specifies the value of the parameter.+parameter_parameterValue :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)+parameter_parameterValue = Lens.lens (\Parameter' {parameterValue} -> parameterValue) (\s@Parameter' {} a -> s {parameterValue = a} :: Parameter)++-- | Indicates the source of the parameter value.+parameter_source :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)+parameter_source = Lens.lens (\Parameter' {source} -> source) (\s@Parameter' {} a -> s {source = a} :: Parameter)++instance Data.FromXML Parameter where+  parseXML x =+    Parameter'+      Prelude.<$> (x Data..@? "AllowedValues")+      Prelude.<*> (x Data..@? "ApplyMethod")+      Prelude.<*> (x Data..@? "ApplyType")+      Prelude.<*> (x Data..@? "DataType")+      Prelude.<*> (x Data..@? "Description")+      Prelude.<*> (x Data..@? "IsModifiable")+      Prelude.<*> (x Data..@? "MinimumEngineVersion")+      Prelude.<*> (x Data..@? "ParameterName")+      Prelude.<*> (x Data..@? "ParameterValue")+      Prelude.<*> (x Data..@? "Source")++instance Prelude.Hashable Parameter where+  hashWithSalt _salt Parameter' {..} =+    _salt+      `Prelude.hashWithSalt` allowedValues+      `Prelude.hashWithSalt` applyMethod+      `Prelude.hashWithSalt` applyType+      `Prelude.hashWithSalt` dataType+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` isModifiable+      `Prelude.hashWithSalt` minimumEngineVersion+      `Prelude.hashWithSalt` parameterName+      `Prelude.hashWithSalt` parameterValue+      `Prelude.hashWithSalt` source++instance Prelude.NFData Parameter where+  rnf Parameter' {..} =+    Prelude.rnf allowedValues+      `Prelude.seq` Prelude.rnf applyMethod+      `Prelude.seq` Prelude.rnf applyType+      `Prelude.seq` Prelude.rnf dataType+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf isModifiable+      `Prelude.seq` Prelude.rnf minimumEngineVersion+      `Prelude.seq` Prelude.rnf parameterName+      `Prelude.seq` Prelude.rnf parameterValue+      `Prelude.seq` Prelude.rnf source++instance Data.ToQuery Parameter where+  toQuery Parameter' {..} =+    Prelude.mconcat+      [ "AllowedValues" Data.=: allowedValues,+        "ApplyMethod" Data.=: applyMethod,+        "ApplyType" Data.=: applyType,+        "DataType" Data.=: dataType,+        "Description" Data.=: description,+        "IsModifiable" Data.=: isModifiable,+        "MinimumEngineVersion" Data.=: minimumEngineVersion,+        "ParameterName" Data.=: parameterName,+        "ParameterValue" Data.=: parameterValue,+        "Source" Data.=: source+      ]
+ gen/Amazonka/DocumentDB/Types/PendingCloudwatchLogsExports.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.Types.PendingCloudwatchLogsExports+-- 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.DocumentDB.Types.PendingCloudwatchLogsExports 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 list of the log types whose configuration is still pending. These log+-- types are in the process of being activated or deactivated.+--+-- /See:/ 'newPendingCloudwatchLogsExports' smart constructor.+data PendingCloudwatchLogsExports = PendingCloudwatchLogsExports'+  { -- | Log types that are in the process of being enabled. After they are+    -- enabled, these log types are exported to Amazon CloudWatch Logs.+    logTypesToDisable :: Prelude.Maybe [Prelude.Text],+    -- | Log types that are in the process of being deactivated. After they are+    -- deactivated, these log types aren\'t exported to CloudWatch Logs.+    logTypesToEnable :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PendingCloudwatchLogsExports' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logTypesToDisable', 'pendingCloudwatchLogsExports_logTypesToDisable' - Log types that are in the process of being enabled. After they are+-- enabled, these log types are exported to Amazon CloudWatch Logs.+--+-- 'logTypesToEnable', 'pendingCloudwatchLogsExports_logTypesToEnable' - Log types that are in the process of being deactivated. After they are+-- deactivated, these log types aren\'t exported to CloudWatch Logs.+newPendingCloudwatchLogsExports ::+  PendingCloudwatchLogsExports+newPendingCloudwatchLogsExports =+  PendingCloudwatchLogsExports'+    { logTypesToDisable =+        Prelude.Nothing,+      logTypesToEnable = Prelude.Nothing+    }++-- | Log types that are in the process of being enabled. After they are+-- enabled, these log types are exported to Amazon CloudWatch Logs.+pendingCloudwatchLogsExports_logTypesToDisable :: Lens.Lens' PendingCloudwatchLogsExports (Prelude.Maybe [Prelude.Text])+pendingCloudwatchLogsExports_logTypesToDisable = Lens.lens (\PendingCloudwatchLogsExports' {logTypesToDisable} -> logTypesToDisable) (\s@PendingCloudwatchLogsExports' {} a -> s {logTypesToDisable = a} :: PendingCloudwatchLogsExports) Prelude.. Lens.mapping Lens.coerced++-- | Log types that are in the process of being deactivated. After they are+-- deactivated, these log types aren\'t exported to CloudWatch Logs.+pendingCloudwatchLogsExports_logTypesToEnable :: Lens.Lens' PendingCloudwatchLogsExports (Prelude.Maybe [Prelude.Text])+pendingCloudwatchLogsExports_logTypesToEnable = Lens.lens (\PendingCloudwatchLogsExports' {logTypesToEnable} -> logTypesToEnable) (\s@PendingCloudwatchLogsExports' {} a -> s {logTypesToEnable = a} :: PendingCloudwatchLogsExports) Prelude.. Lens.mapping Lens.coerced++instance Data.FromXML PendingCloudwatchLogsExports where+  parseXML x =+    PendingCloudwatchLogsExports'+      Prelude.<$> ( x+                      Data..@? "LogTypesToDisable"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "member")+                  )+      Prelude.<*> ( x+                      Data..@? "LogTypesToEnable"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may (Data.parseXMLList "member")+                  )++instance+  Prelude.Hashable+    PendingCloudwatchLogsExports+  where+  hashWithSalt _salt PendingCloudwatchLogsExports' {..} =+    _salt+      `Prelude.hashWithSalt` logTypesToDisable+      `Prelude.hashWithSalt` logTypesToEnable++instance Prelude.NFData PendingCloudwatchLogsExports where+  rnf PendingCloudwatchLogsExports' {..} =+    Prelude.rnf logTypesToDisable+      `Prelude.seq` Prelude.rnf logTypesToEnable
+ gen/Amazonka/DocumentDB/Types/PendingMaintenanceAction.hs view
@@ -0,0 +1,155 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.Types.PendingMaintenanceAction+-- 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.DocumentDB.Types.PendingMaintenanceAction 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 information about a pending maintenance action for a resource.+--+-- /See:/ 'newPendingMaintenanceAction' smart constructor.+data PendingMaintenanceAction = PendingMaintenanceAction'+  { -- | The type of pending maintenance action that is available for the+    -- resource.+    action :: Prelude.Maybe Prelude.Text,+    -- | The date of the maintenance window when the action is applied. The+    -- maintenance action is applied to the resource during its first+    -- maintenance window after this date. If this date is specified, any+    -- @next-maintenance@ opt-in requests are ignored.+    autoAppliedAfterDate :: Prelude.Maybe Data.ISO8601,+    -- | The effective date when the pending maintenance action is applied to the+    -- resource.+    currentApplyDate :: Prelude.Maybe Data.ISO8601,+    -- | A description providing more detail about the maintenance action.+    description :: Prelude.Maybe Prelude.Text,+    -- | The date when the maintenance action is automatically applied. The+    -- maintenance action is applied to the resource on this date regardless of+    -- the maintenance window for the resource. If this date is specified, any+    -- @immediate@ opt-in requests are ignored.+    forcedApplyDate :: Prelude.Maybe Data.ISO8601,+    -- | Indicates the type of opt-in request that has been received for the+    -- resource.+    optInStatus :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PendingMaintenanceAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'action', 'pendingMaintenanceAction_action' - The type of pending maintenance action that is available for the+-- resource.+--+-- 'autoAppliedAfterDate', 'pendingMaintenanceAction_autoAppliedAfterDate' - The date of the maintenance window when the action is applied. The+-- maintenance action is applied to the resource during its first+-- maintenance window after this date. If this date is specified, any+-- @next-maintenance@ opt-in requests are ignored.+--+-- 'currentApplyDate', 'pendingMaintenanceAction_currentApplyDate' - The effective date when the pending maintenance action is applied to the+-- resource.+--+-- 'description', 'pendingMaintenanceAction_description' - A description providing more detail about the maintenance action.+--+-- 'forcedApplyDate', 'pendingMaintenanceAction_forcedApplyDate' - The date when the maintenance action is automatically applied. The+-- maintenance action is applied to the resource on this date regardless of+-- the maintenance window for the resource. If this date is specified, any+-- @immediate@ opt-in requests are ignored.+--+-- 'optInStatus', 'pendingMaintenanceAction_optInStatus' - Indicates the type of opt-in request that has been received for the+-- resource.+newPendingMaintenanceAction ::+  PendingMaintenanceAction+newPendingMaintenanceAction =+  PendingMaintenanceAction'+    { action = Prelude.Nothing,+      autoAppliedAfterDate = Prelude.Nothing,+      currentApplyDate = Prelude.Nothing,+      description = Prelude.Nothing,+      forcedApplyDate = Prelude.Nothing,+      optInStatus = Prelude.Nothing+    }++-- | The type of pending maintenance action that is available for the+-- resource.+pendingMaintenanceAction_action :: Lens.Lens' PendingMaintenanceAction (Prelude.Maybe Prelude.Text)+pendingMaintenanceAction_action = Lens.lens (\PendingMaintenanceAction' {action} -> action) (\s@PendingMaintenanceAction' {} a -> s {action = a} :: PendingMaintenanceAction)++-- | The date of the maintenance window when the action is applied. The+-- maintenance action is applied to the resource during its first+-- maintenance window after this date. If this date is specified, any+-- @next-maintenance@ opt-in requests are ignored.+pendingMaintenanceAction_autoAppliedAfterDate :: Lens.Lens' PendingMaintenanceAction (Prelude.Maybe Prelude.UTCTime)+pendingMaintenanceAction_autoAppliedAfterDate = Lens.lens (\PendingMaintenanceAction' {autoAppliedAfterDate} -> autoAppliedAfterDate) (\s@PendingMaintenanceAction' {} a -> s {autoAppliedAfterDate = a} :: PendingMaintenanceAction) Prelude.. Lens.mapping Data._Time++-- | The effective date when the pending maintenance action is applied to the+-- resource.+pendingMaintenanceAction_currentApplyDate :: Lens.Lens' PendingMaintenanceAction (Prelude.Maybe Prelude.UTCTime)+pendingMaintenanceAction_currentApplyDate = Lens.lens (\PendingMaintenanceAction' {currentApplyDate} -> currentApplyDate) (\s@PendingMaintenanceAction' {} a -> s {currentApplyDate = a} :: PendingMaintenanceAction) Prelude.. Lens.mapping Data._Time++-- | A description providing more detail about the maintenance action.+pendingMaintenanceAction_description :: Lens.Lens' PendingMaintenanceAction (Prelude.Maybe Prelude.Text)+pendingMaintenanceAction_description = Lens.lens (\PendingMaintenanceAction' {description} -> description) (\s@PendingMaintenanceAction' {} a -> s {description = a} :: PendingMaintenanceAction)++-- | The date when the maintenance action is automatically applied. The+-- maintenance action is applied to the resource on this date regardless of+-- the maintenance window for the resource. If this date is specified, any+-- @immediate@ opt-in requests are ignored.+pendingMaintenanceAction_forcedApplyDate :: Lens.Lens' PendingMaintenanceAction (Prelude.Maybe Prelude.UTCTime)+pendingMaintenanceAction_forcedApplyDate = Lens.lens (\PendingMaintenanceAction' {forcedApplyDate} -> forcedApplyDate) (\s@PendingMaintenanceAction' {} a -> s {forcedApplyDate = a} :: PendingMaintenanceAction) Prelude.. Lens.mapping Data._Time++-- | Indicates the type of opt-in request that has been received for the+-- resource.+pendingMaintenanceAction_optInStatus :: Lens.Lens' PendingMaintenanceAction (Prelude.Maybe Prelude.Text)+pendingMaintenanceAction_optInStatus = Lens.lens (\PendingMaintenanceAction' {optInStatus} -> optInStatus) (\s@PendingMaintenanceAction' {} a -> s {optInStatus = a} :: PendingMaintenanceAction)++instance Data.FromXML PendingMaintenanceAction where+  parseXML x =+    PendingMaintenanceAction'+      Prelude.<$> (x Data..@? "Action")+      Prelude.<*> (x Data..@? "AutoAppliedAfterDate")+      Prelude.<*> (x Data..@? "CurrentApplyDate")+      Prelude.<*> (x Data..@? "Description")+      Prelude.<*> (x Data..@? "ForcedApplyDate")+      Prelude.<*> (x Data..@? "OptInStatus")++instance Prelude.Hashable PendingMaintenanceAction where+  hashWithSalt _salt PendingMaintenanceAction' {..} =+    _salt+      `Prelude.hashWithSalt` action+      `Prelude.hashWithSalt` autoAppliedAfterDate+      `Prelude.hashWithSalt` currentApplyDate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` forcedApplyDate+      `Prelude.hashWithSalt` optInStatus++instance Prelude.NFData PendingMaintenanceAction where+  rnf PendingMaintenanceAction' {..} =+    Prelude.rnf action+      `Prelude.seq` Prelude.rnf autoAppliedAfterDate+      `Prelude.seq` Prelude.rnf currentApplyDate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf forcedApplyDate+      `Prelude.seq` Prelude.rnf optInStatus
+ gen/Amazonka/DocumentDB/Types/PendingModifiedValues.hs view
@@ -0,0 +1,263 @@+{-# 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.DocumentDB.Types.PendingModifiedValues+-- 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.DocumentDB.Types.PendingModifiedValues where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types.PendingCloudwatchLogsExports+import qualified Amazonka.Prelude as Prelude++-- | One or more modified settings for an instance. These modified settings+-- have been requested, but haven\'t been applied yet.+--+-- /See:/ 'newPendingModifiedValues' smart constructor.+data PendingModifiedValues = PendingModifiedValues'+  { -- | Contains the new @AllocatedStorage@ size for then instance that will be+    -- applied or is currently being applied.+    allocatedStorage :: Prelude.Maybe Prelude.Int,+    -- | Specifies the pending number of days for which automated backups are+    -- retained.+    backupRetentionPeriod :: Prelude.Maybe Prelude.Int,+    -- | Specifies the identifier of the certificate authority (CA) certificate+    -- for the DB instance.+    cACertificateIdentifier :: Prelude.Maybe Prelude.Text,+    -- | Contains the new @DBInstanceClass@ for the instance that will be applied+    -- or is currently being applied.+    dbInstanceClass :: Prelude.Maybe Prelude.Text,+    -- | Contains the new @DBInstanceIdentifier@ for the instance that will be+    -- applied or is currently being applied.+    dbInstanceIdentifier :: Prelude.Maybe Prelude.Text,+    -- | The new subnet group for the instance.+    dbSubnetGroupName :: Prelude.Maybe Prelude.Text,+    -- | Indicates the database engine version.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | Specifies the new Provisioned IOPS value for the instance that will be+    -- applied or is currently being applied.+    iops :: Prelude.Maybe Prelude.Int,+    -- | The license model for the instance.+    --+    -- Valid values: @license-included@, @bring-your-own-license@,+    -- @general-public-license@+    licenseModel :: Prelude.Maybe Prelude.Text,+    -- | Contains the pending or currently in-progress change of the master+    -- credentials for the instance.+    masterUserPassword :: Prelude.Maybe Prelude.Text,+    -- | Indicates that the Single-AZ instance is to change to a Multi-AZ+    -- deployment.+    multiAZ :: Prelude.Maybe Prelude.Bool,+    -- | A list of the log types whose configuration is still pending. These log+    -- types are in the process of being activated or deactivated.+    pendingCloudwatchLogsExports :: Prelude.Maybe PendingCloudwatchLogsExports,+    -- | Specifies the pending port for the instance.+    port :: Prelude.Maybe Prelude.Int,+    -- | Specifies the storage type to be associated with the instance.+    storageType :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PendingModifiedValues' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allocatedStorage', 'pendingModifiedValues_allocatedStorage' - Contains the new @AllocatedStorage@ size for then instance that will be+-- applied or is currently being applied.+--+-- 'backupRetentionPeriod', 'pendingModifiedValues_backupRetentionPeriod' - Specifies the pending number of days for which automated backups are+-- retained.+--+-- 'cACertificateIdentifier', 'pendingModifiedValues_cACertificateIdentifier' - Specifies the identifier of the certificate authority (CA) certificate+-- for the DB instance.+--+-- 'dbInstanceClass', 'pendingModifiedValues_dbInstanceClass' - Contains the new @DBInstanceClass@ for the instance that will be applied+-- or is currently being applied.+--+-- 'dbInstanceIdentifier', 'pendingModifiedValues_dbInstanceIdentifier' - Contains the new @DBInstanceIdentifier@ for the instance that will be+-- applied or is currently being applied.+--+-- 'dbSubnetGroupName', 'pendingModifiedValues_dbSubnetGroupName' - The new subnet group for the instance.+--+-- 'engineVersion', 'pendingModifiedValues_engineVersion' - Indicates the database engine version.+--+-- 'iops', 'pendingModifiedValues_iops' - Specifies the new Provisioned IOPS value for the instance that will be+-- applied or is currently being applied.+--+-- 'licenseModel', 'pendingModifiedValues_licenseModel' - The license model for the instance.+--+-- Valid values: @license-included@, @bring-your-own-license@,+-- @general-public-license@+--+-- 'masterUserPassword', 'pendingModifiedValues_masterUserPassword' - Contains the pending or currently in-progress change of the master+-- credentials for the instance.+--+-- 'multiAZ', 'pendingModifiedValues_multiAZ' - Indicates that the Single-AZ instance is to change to a Multi-AZ+-- deployment.+--+-- 'pendingCloudwatchLogsExports', 'pendingModifiedValues_pendingCloudwatchLogsExports' - A list of the log types whose configuration is still pending. These log+-- types are in the process of being activated or deactivated.+--+-- 'port', 'pendingModifiedValues_port' - Specifies the pending port for the instance.+--+-- 'storageType', 'pendingModifiedValues_storageType' - Specifies the storage type to be associated with the instance.+newPendingModifiedValues ::+  PendingModifiedValues+newPendingModifiedValues =+  PendingModifiedValues'+    { allocatedStorage =+        Prelude.Nothing,+      backupRetentionPeriod = Prelude.Nothing,+      cACertificateIdentifier = Prelude.Nothing,+      dbInstanceClass = Prelude.Nothing,+      dbInstanceIdentifier = Prelude.Nothing,+      dbSubnetGroupName = Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      iops = Prelude.Nothing,+      licenseModel = Prelude.Nothing,+      masterUserPassword = Prelude.Nothing,+      multiAZ = Prelude.Nothing,+      pendingCloudwatchLogsExports = Prelude.Nothing,+      port = Prelude.Nothing,+      storageType = Prelude.Nothing+    }++-- | Contains the new @AllocatedStorage@ size for then instance that will be+-- applied or is currently being applied.+pendingModifiedValues_allocatedStorage :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Int)+pendingModifiedValues_allocatedStorage = Lens.lens (\PendingModifiedValues' {allocatedStorage} -> allocatedStorage) (\s@PendingModifiedValues' {} a -> s {allocatedStorage = a} :: PendingModifiedValues)++-- | Specifies the pending number of days for which automated backups are+-- retained.+pendingModifiedValues_backupRetentionPeriod :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Int)+pendingModifiedValues_backupRetentionPeriod = Lens.lens (\PendingModifiedValues' {backupRetentionPeriod} -> backupRetentionPeriod) (\s@PendingModifiedValues' {} a -> s {backupRetentionPeriod = a} :: PendingModifiedValues)++-- | Specifies the identifier of the certificate authority (CA) certificate+-- for the DB instance.+pendingModifiedValues_cACertificateIdentifier :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Text)+pendingModifiedValues_cACertificateIdentifier = Lens.lens (\PendingModifiedValues' {cACertificateIdentifier} -> cACertificateIdentifier) (\s@PendingModifiedValues' {} a -> s {cACertificateIdentifier = a} :: PendingModifiedValues)++-- | Contains the new @DBInstanceClass@ for the instance that will be applied+-- or is currently being applied.+pendingModifiedValues_dbInstanceClass :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Text)+pendingModifiedValues_dbInstanceClass = Lens.lens (\PendingModifiedValues' {dbInstanceClass} -> dbInstanceClass) (\s@PendingModifiedValues' {} a -> s {dbInstanceClass = a} :: PendingModifiedValues)++-- | Contains the new @DBInstanceIdentifier@ for the instance that will be+-- applied or is currently being applied.+pendingModifiedValues_dbInstanceIdentifier :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Text)+pendingModifiedValues_dbInstanceIdentifier = Lens.lens (\PendingModifiedValues' {dbInstanceIdentifier} -> dbInstanceIdentifier) (\s@PendingModifiedValues' {} a -> s {dbInstanceIdentifier = a} :: PendingModifiedValues)++-- | The new subnet group for the instance.+pendingModifiedValues_dbSubnetGroupName :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Text)+pendingModifiedValues_dbSubnetGroupName = Lens.lens (\PendingModifiedValues' {dbSubnetGroupName} -> dbSubnetGroupName) (\s@PendingModifiedValues' {} a -> s {dbSubnetGroupName = a} :: PendingModifiedValues)++-- | Indicates the database engine version.+pendingModifiedValues_engineVersion :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Text)+pendingModifiedValues_engineVersion = Lens.lens (\PendingModifiedValues' {engineVersion} -> engineVersion) (\s@PendingModifiedValues' {} a -> s {engineVersion = a} :: PendingModifiedValues)++-- | Specifies the new Provisioned IOPS value for the instance that will be+-- applied or is currently being applied.+pendingModifiedValues_iops :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Int)+pendingModifiedValues_iops = Lens.lens (\PendingModifiedValues' {iops} -> iops) (\s@PendingModifiedValues' {} a -> s {iops = a} :: PendingModifiedValues)++-- | The license model for the instance.+--+-- Valid values: @license-included@, @bring-your-own-license@,+-- @general-public-license@+pendingModifiedValues_licenseModel :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Text)+pendingModifiedValues_licenseModel = Lens.lens (\PendingModifiedValues' {licenseModel} -> licenseModel) (\s@PendingModifiedValues' {} a -> s {licenseModel = a} :: PendingModifiedValues)++-- | Contains the pending or currently in-progress change of the master+-- credentials for the instance.+pendingModifiedValues_masterUserPassword :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Text)+pendingModifiedValues_masterUserPassword = Lens.lens (\PendingModifiedValues' {masterUserPassword} -> masterUserPassword) (\s@PendingModifiedValues' {} a -> s {masterUserPassword = a} :: PendingModifiedValues)++-- | Indicates that the Single-AZ instance is to change to a Multi-AZ+-- deployment.+pendingModifiedValues_multiAZ :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Bool)+pendingModifiedValues_multiAZ = Lens.lens (\PendingModifiedValues' {multiAZ} -> multiAZ) (\s@PendingModifiedValues' {} a -> s {multiAZ = a} :: PendingModifiedValues)++-- | A list of the log types whose configuration is still pending. These log+-- types are in the process of being activated or deactivated.+pendingModifiedValues_pendingCloudwatchLogsExports :: Lens.Lens' PendingModifiedValues (Prelude.Maybe PendingCloudwatchLogsExports)+pendingModifiedValues_pendingCloudwatchLogsExports = Lens.lens (\PendingModifiedValues' {pendingCloudwatchLogsExports} -> pendingCloudwatchLogsExports) (\s@PendingModifiedValues' {} a -> s {pendingCloudwatchLogsExports = a} :: PendingModifiedValues)++-- | Specifies the pending port for the instance.+pendingModifiedValues_port :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Int)+pendingModifiedValues_port = Lens.lens (\PendingModifiedValues' {port} -> port) (\s@PendingModifiedValues' {} a -> s {port = a} :: PendingModifiedValues)++-- | Specifies the storage type to be associated with the instance.+pendingModifiedValues_storageType :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Text)+pendingModifiedValues_storageType = Lens.lens (\PendingModifiedValues' {storageType} -> storageType) (\s@PendingModifiedValues' {} a -> s {storageType = a} :: PendingModifiedValues)++instance Data.FromXML PendingModifiedValues where+  parseXML x =+    PendingModifiedValues'+      Prelude.<$> (x Data..@? "AllocatedStorage")+      Prelude.<*> (x Data..@? "BackupRetentionPeriod")+      Prelude.<*> (x Data..@? "CACertificateIdentifier")+      Prelude.<*> (x Data..@? "DBInstanceClass")+      Prelude.<*> (x Data..@? "DBInstanceIdentifier")+      Prelude.<*> (x Data..@? "DBSubnetGroupName")+      Prelude.<*> (x Data..@? "EngineVersion")+      Prelude.<*> (x Data..@? "Iops")+      Prelude.<*> (x Data..@? "LicenseModel")+      Prelude.<*> (x Data..@? "MasterUserPassword")+      Prelude.<*> (x Data..@? "MultiAZ")+      Prelude.<*> (x Data..@? "PendingCloudwatchLogsExports")+      Prelude.<*> (x Data..@? "Port")+      Prelude.<*> (x Data..@? "StorageType")++instance Prelude.Hashable PendingModifiedValues where+  hashWithSalt _salt PendingModifiedValues' {..} =+    _salt+      `Prelude.hashWithSalt` allocatedStorage+      `Prelude.hashWithSalt` backupRetentionPeriod+      `Prelude.hashWithSalt` cACertificateIdentifier+      `Prelude.hashWithSalt` dbInstanceClass+      `Prelude.hashWithSalt` dbInstanceIdentifier+      `Prelude.hashWithSalt` dbSubnetGroupName+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` iops+      `Prelude.hashWithSalt` licenseModel+      `Prelude.hashWithSalt` masterUserPassword+      `Prelude.hashWithSalt` multiAZ+      `Prelude.hashWithSalt` pendingCloudwatchLogsExports+      `Prelude.hashWithSalt` port+      `Prelude.hashWithSalt` storageType++instance Prelude.NFData PendingModifiedValues where+  rnf PendingModifiedValues' {..} =+    Prelude.rnf allocatedStorage+      `Prelude.seq` Prelude.rnf backupRetentionPeriod+      `Prelude.seq` Prelude.rnf cACertificateIdentifier+      `Prelude.seq` Prelude.rnf dbInstanceClass+      `Prelude.seq` Prelude.rnf dbInstanceIdentifier+      `Prelude.seq` Prelude.rnf dbSubnetGroupName+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf iops+      `Prelude.seq` Prelude.rnf licenseModel+      `Prelude.seq` Prelude.rnf masterUserPassword+      `Prelude.seq` Prelude.rnf multiAZ+      `Prelude.seq` Prelude.rnf pendingCloudwatchLogsExports+      `Prelude.seq` Prelude.rnf port+      `Prelude.seq` Prelude.rnf storageType
+ gen/Amazonka/DocumentDB/Types/ResourcePendingMaintenanceActions.hs view
@@ -0,0 +1,104 @@+{-# 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.DocumentDB.Types.ResourcePendingMaintenanceActions+-- 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.DocumentDB.Types.ResourcePendingMaintenanceActions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.Types.PendingMaintenanceAction+import qualified Amazonka.Prelude as Prelude++-- | Represents the output of ApplyPendingMaintenanceAction.+--+-- /See:/ 'newResourcePendingMaintenanceActions' smart constructor.+data ResourcePendingMaintenanceActions = ResourcePendingMaintenanceActions'+  { -- | A list that provides details about the pending maintenance actions for+    -- the resource.+    pendingMaintenanceActionDetails :: Prelude.Maybe [PendingMaintenanceAction],+    -- | The Amazon Resource Name (ARN) of the resource that has pending+    -- maintenance actions.+    resourceIdentifier :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourcePendingMaintenanceActions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'pendingMaintenanceActionDetails', 'resourcePendingMaintenanceActions_pendingMaintenanceActionDetails' - A list that provides details about the pending maintenance actions for+-- the resource.+--+-- 'resourceIdentifier', 'resourcePendingMaintenanceActions_resourceIdentifier' - The Amazon Resource Name (ARN) of the resource that has pending+-- maintenance actions.+newResourcePendingMaintenanceActions ::+  ResourcePendingMaintenanceActions+newResourcePendingMaintenanceActions =+  ResourcePendingMaintenanceActions'+    { pendingMaintenanceActionDetails =+        Prelude.Nothing,+      resourceIdentifier = Prelude.Nothing+    }++-- | A list that provides details about the pending maintenance actions for+-- the resource.+resourcePendingMaintenanceActions_pendingMaintenanceActionDetails :: Lens.Lens' ResourcePendingMaintenanceActions (Prelude.Maybe [PendingMaintenanceAction])+resourcePendingMaintenanceActions_pendingMaintenanceActionDetails = Lens.lens (\ResourcePendingMaintenanceActions' {pendingMaintenanceActionDetails} -> pendingMaintenanceActionDetails) (\s@ResourcePendingMaintenanceActions' {} a -> s {pendingMaintenanceActionDetails = a} :: ResourcePendingMaintenanceActions) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the resource that has pending+-- maintenance actions.+resourcePendingMaintenanceActions_resourceIdentifier :: Lens.Lens' ResourcePendingMaintenanceActions (Prelude.Maybe Prelude.Text)+resourcePendingMaintenanceActions_resourceIdentifier = Lens.lens (\ResourcePendingMaintenanceActions' {resourceIdentifier} -> resourceIdentifier) (\s@ResourcePendingMaintenanceActions' {} a -> s {resourceIdentifier = a} :: ResourcePendingMaintenanceActions)++instance+  Data.FromXML+    ResourcePendingMaintenanceActions+  where+  parseXML x =+    ResourcePendingMaintenanceActions'+      Prelude.<$> ( x+                      Data..@? "PendingMaintenanceActionDetails"+                      Core..!@ Prelude.mempty+                      Prelude.>>= Core.may+                        (Data.parseXMLList "PendingMaintenanceAction")+                  )+      Prelude.<*> (x Data..@? "ResourceIdentifier")++instance+  Prelude.Hashable+    ResourcePendingMaintenanceActions+  where+  hashWithSalt+    _salt+    ResourcePendingMaintenanceActions' {..} =+      _salt+        `Prelude.hashWithSalt` pendingMaintenanceActionDetails+        `Prelude.hashWithSalt` resourceIdentifier++instance+  Prelude.NFData+    ResourcePendingMaintenanceActions+  where+  rnf ResourcePendingMaintenanceActions' {..} =+    Prelude.rnf pendingMaintenanceActionDetails+      `Prelude.seq` Prelude.rnf resourceIdentifier
+ gen/Amazonka/DocumentDB/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.DocumentDB.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.DocumentDB.Types.SourceType+  ( SourceType+      ( ..,+        SourceType_Db_cluster,+        SourceType_Db_cluster_snapshot,+        SourceType_Db_instance,+        SourceType_Db_parameter_group,+        SourceType_Db_security_group,+        SourceType_Db_snapshot+      ),+  )+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_Db_cluster :: SourceType+pattern SourceType_Db_cluster = SourceType' "db-cluster"++pattern SourceType_Db_cluster_snapshot :: SourceType+pattern SourceType_Db_cluster_snapshot = SourceType' "db-cluster-snapshot"++pattern SourceType_Db_instance :: SourceType+pattern SourceType_Db_instance = SourceType' "db-instance"++pattern SourceType_Db_parameter_group :: SourceType+pattern SourceType_Db_parameter_group = SourceType' "db-parameter-group"++pattern SourceType_Db_security_group :: SourceType+pattern SourceType_Db_security_group = SourceType' "db-security-group"++pattern SourceType_Db_snapshot :: SourceType+pattern SourceType_Db_snapshot = SourceType' "db-snapshot"++{-# COMPLETE+  SourceType_Db_cluster,+  SourceType_Db_cluster_snapshot,+  SourceType_Db_instance,+  SourceType_Db_parameter_group,+  SourceType_Db_security_group,+  SourceType_Db_snapshot,+  SourceType'+  #-}
+ gen/Amazonka/DocumentDB/Types/Subnet.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.DocumentDB.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.DocumentDB.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.DocumentDB.Types.AvailabilityZone+import qualified Amazonka.Prelude as Prelude++-- | Detailed information about a subnet.+--+-- /See:/ 'newSubnet' smart constructor.+data Subnet = Subnet'+  { -- | Specifies the Availability Zone for the subnet.+    subnetAvailabilityZone :: Prelude.Maybe AvailabilityZone,+    -- | Specifies the identifier of the subnet.+    subnetIdentifier :: Prelude.Maybe Prelude.Text,+    -- | Specifies the status of the subnet.+    subnetStatus :: 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:+--+-- 'subnetAvailabilityZone', 'subnet_subnetAvailabilityZone' - Specifies the Availability Zone for the subnet.+--+-- 'subnetIdentifier', 'subnet_subnetIdentifier' - Specifies the identifier of the subnet.+--+-- 'subnetStatus', 'subnet_subnetStatus' - Specifies the status of the subnet.+newSubnet ::+  Subnet+newSubnet =+  Subnet'+    { subnetAvailabilityZone = Prelude.Nothing,+      subnetIdentifier = Prelude.Nothing,+      subnetStatus = Prelude.Nothing+    }++-- | Specifies the Availability Zone for the subnet.+subnet_subnetAvailabilityZone :: Lens.Lens' Subnet (Prelude.Maybe AvailabilityZone)+subnet_subnetAvailabilityZone = Lens.lens (\Subnet' {subnetAvailabilityZone} -> subnetAvailabilityZone) (\s@Subnet' {} a -> s {subnetAvailabilityZone = a} :: Subnet)++-- | Specifies the identifier of the subnet.+subnet_subnetIdentifier :: Lens.Lens' Subnet (Prelude.Maybe Prelude.Text)+subnet_subnetIdentifier = Lens.lens (\Subnet' {subnetIdentifier} -> subnetIdentifier) (\s@Subnet' {} a -> s {subnetIdentifier = a} :: Subnet)++-- | Specifies the status of the subnet.+subnet_subnetStatus :: Lens.Lens' Subnet (Prelude.Maybe Prelude.Text)+subnet_subnetStatus = Lens.lens (\Subnet' {subnetStatus} -> subnetStatus) (\s@Subnet' {} a -> s {subnetStatus = a} :: Subnet)++instance Data.FromXML Subnet where+  parseXML x =+    Subnet'+      Prelude.<$> (x Data..@? "SubnetAvailabilityZone")+      Prelude.<*> (x Data..@? "SubnetIdentifier")+      Prelude.<*> (x Data..@? "SubnetStatus")++instance Prelude.Hashable Subnet where+  hashWithSalt _salt Subnet' {..} =+    _salt+      `Prelude.hashWithSalt` subnetAvailabilityZone+      `Prelude.hashWithSalt` subnetIdentifier+      `Prelude.hashWithSalt` subnetStatus++instance Prelude.NFData Subnet where+  rnf Subnet' {..} =+    Prelude.rnf subnetAvailabilityZone+      `Prelude.seq` Prelude.rnf subnetIdentifier+      `Prelude.seq` Prelude.rnf subnetStatus
+ gen/Amazonka/DocumentDB/Types/Tag.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.DocumentDB.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.DocumentDB.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++-- | Metadata assigned to an Amazon DocumentDB resource consisting of a+-- key-value pair.+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+  { -- | The required name of the tag. The string value can be from 1 to 128+    -- Unicode characters in length and can\'t be prefixed with \"@aws:@\" or+    -- \"@rds:@\". The string can contain only the set of Unicode letters,+    -- digits, white space, \'_\', \'.\', \'\/\', \'=\', \'+\', \'-\' (Java+    -- regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:\/=+\\\\-]*)$\").+    key :: Prelude.Maybe Prelude.Text,+    -- | The optional value of the tag. The string value can be from 1 to 256+    -- Unicode characters in length and can\'t be prefixed with \"@aws:@\" or+    -- \"@rds:@\". The string can contain only the set of Unicode letters,+    -- digits, white space, \'_\', \'.\', \'\/\', \'=\', \'+\', \'-\' (Java+    -- regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:\/=+\\\\-]*)$\").+    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 required name of the tag. The string value can be from 1 to 128+-- Unicode characters in length and can\'t be prefixed with \"@aws:@\" or+-- \"@rds:@\". The string can contain only the set of Unicode letters,+-- digits, white space, \'_\', \'.\', \'\/\', \'=\', \'+\', \'-\' (Java+-- regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:\/=+\\\\-]*)$\").+--+-- 'value', 'tag_value' - The optional value of the tag. The string value can be from 1 to 256+-- Unicode characters in length and can\'t be prefixed with \"@aws:@\" or+-- \"@rds:@\". The string can contain only the set of Unicode letters,+-- digits, white space, \'_\', \'.\', \'\/\', \'=\', \'+\', \'-\' (Java+-- regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:\/=+\\\\-]*)$\").+newTag ::+  Tag+newTag =+  Tag'+    { key = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The required name of the tag. The string value can be from 1 to 128+-- Unicode characters in length and can\'t be prefixed with \"@aws:@\" or+-- \"@rds:@\". The string can contain only the set of Unicode letters,+-- digits, white space, \'_\', \'.\', \'\/\', \'=\', \'+\', \'-\' (Java+-- regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:\/=+\\\\-]*)$\").+tag_key :: Lens.Lens' Tag (Prelude.Maybe Prelude.Text)+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)++-- | The optional value of the tag. The string value can be from 1 to 256+-- Unicode characters in length and can\'t be prefixed with \"@aws:@\" or+-- \"@rds:@\". The string can contain only the set of Unicode letters,+-- digits, white space, \'_\', \'.\', \'\/\', \'=\', \'+\', \'-\' (Java+-- regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:\/=+\\\\-]*)$\").+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.FromXML Tag where+  parseXML 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.ToQuery Tag where+  toQuery Tag' {..} =+    Prelude.mconcat+      ["Key" Data.=: key, "Value" Data.=: value]
+ gen/Amazonka/DocumentDB/Types/UpgradeTarget.hs view
@@ -0,0 +1,122 @@+{-# 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.DocumentDB.Types.UpgradeTarget+-- 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.DocumentDB.Types.UpgradeTarget where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The version of the database engine that an instance can be upgraded to.+--+-- /See:/ 'newUpgradeTarget' smart constructor.+data UpgradeTarget = UpgradeTarget'+  { -- | A value that indicates whether the target version is applied to any+    -- source DB instances that have @AutoMinorVersionUpgrade@ set to @true@.+    autoUpgrade :: Prelude.Maybe Prelude.Bool,+    -- | The version of the database engine that an instance can be upgraded to.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the upgrade target database engine.+    engine :: Prelude.Maybe Prelude.Text,+    -- | The version number of the upgrade target database engine.+    engineVersion :: Prelude.Maybe Prelude.Text,+    -- | A value that indicates whether a database engine is upgraded to a major+    -- version.+    isMajorVersionUpgrade :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpgradeTarget' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoUpgrade', 'upgradeTarget_autoUpgrade' - A value that indicates whether the target version is applied to any+-- source DB instances that have @AutoMinorVersionUpgrade@ set to @true@.+--+-- 'description', 'upgradeTarget_description' - The version of the database engine that an instance can be upgraded to.+--+-- 'engine', 'upgradeTarget_engine' - The name of the upgrade target database engine.+--+-- 'engineVersion', 'upgradeTarget_engineVersion' - The version number of the upgrade target database engine.+--+-- 'isMajorVersionUpgrade', 'upgradeTarget_isMajorVersionUpgrade' - A value that indicates whether a database engine is upgraded to a major+-- version.+newUpgradeTarget ::+  UpgradeTarget+newUpgradeTarget =+  UpgradeTarget'+    { autoUpgrade = Prelude.Nothing,+      description = Prelude.Nothing,+      engine = Prelude.Nothing,+      engineVersion = Prelude.Nothing,+      isMajorVersionUpgrade = Prelude.Nothing+    }++-- | A value that indicates whether the target version is applied to any+-- source DB instances that have @AutoMinorVersionUpgrade@ set to @true@.+upgradeTarget_autoUpgrade :: Lens.Lens' UpgradeTarget (Prelude.Maybe Prelude.Bool)+upgradeTarget_autoUpgrade = Lens.lens (\UpgradeTarget' {autoUpgrade} -> autoUpgrade) (\s@UpgradeTarget' {} a -> s {autoUpgrade = a} :: UpgradeTarget)++-- | The version of the database engine that an instance can be upgraded to.+upgradeTarget_description :: Lens.Lens' UpgradeTarget (Prelude.Maybe Prelude.Text)+upgradeTarget_description = Lens.lens (\UpgradeTarget' {description} -> description) (\s@UpgradeTarget' {} a -> s {description = a} :: UpgradeTarget)++-- | The name of the upgrade target database engine.+upgradeTarget_engine :: Lens.Lens' UpgradeTarget (Prelude.Maybe Prelude.Text)+upgradeTarget_engine = Lens.lens (\UpgradeTarget' {engine} -> engine) (\s@UpgradeTarget' {} a -> s {engine = a} :: UpgradeTarget)++-- | The version number of the upgrade target database engine.+upgradeTarget_engineVersion :: Lens.Lens' UpgradeTarget (Prelude.Maybe Prelude.Text)+upgradeTarget_engineVersion = Lens.lens (\UpgradeTarget' {engineVersion} -> engineVersion) (\s@UpgradeTarget' {} a -> s {engineVersion = a} :: UpgradeTarget)++-- | A value that indicates whether a database engine is upgraded to a major+-- version.+upgradeTarget_isMajorVersionUpgrade :: Lens.Lens' UpgradeTarget (Prelude.Maybe Prelude.Bool)+upgradeTarget_isMajorVersionUpgrade = Lens.lens (\UpgradeTarget' {isMajorVersionUpgrade} -> isMajorVersionUpgrade) (\s@UpgradeTarget' {} a -> s {isMajorVersionUpgrade = a} :: UpgradeTarget)++instance Data.FromXML UpgradeTarget where+  parseXML x =+    UpgradeTarget'+      Prelude.<$> (x Data..@? "AutoUpgrade")+      Prelude.<*> (x Data..@? "Description")+      Prelude.<*> (x Data..@? "Engine")+      Prelude.<*> (x Data..@? "EngineVersion")+      Prelude.<*> (x Data..@? "IsMajorVersionUpgrade")++instance Prelude.Hashable UpgradeTarget where+  hashWithSalt _salt UpgradeTarget' {..} =+    _salt+      `Prelude.hashWithSalt` autoUpgrade+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` engine+      `Prelude.hashWithSalt` engineVersion+      `Prelude.hashWithSalt` isMajorVersionUpgrade++instance Prelude.NFData UpgradeTarget where+  rnf UpgradeTarget' {..} =+    Prelude.rnf autoUpgrade+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf engine+      `Prelude.seq` Prelude.rnf engineVersion+      `Prelude.seq` Prelude.rnf isMajorVersionUpgrade
+ gen/Amazonka/DocumentDB/Types/VpcSecurityGroupMembership.hs view
@@ -0,0 +1,82 @@+{-# 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.DocumentDB.Types.VpcSecurityGroupMembership+-- 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.DocumentDB.Types.VpcSecurityGroupMembership 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 as a response element for queries on virtual private cloud (VPC)+-- security group membership.+--+-- /See:/ 'newVpcSecurityGroupMembership' smart constructor.+data VpcSecurityGroupMembership = VpcSecurityGroupMembership'+  { -- | The status of the VPC security group.+    status :: Prelude.Maybe Prelude.Text,+    -- | The name of the VPC security group.+    vpcSecurityGroupId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VpcSecurityGroupMembership' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'status', 'vpcSecurityGroupMembership_status' - The status of the VPC security group.+--+-- 'vpcSecurityGroupId', 'vpcSecurityGroupMembership_vpcSecurityGroupId' - The name of the VPC security group.+newVpcSecurityGroupMembership ::+  VpcSecurityGroupMembership+newVpcSecurityGroupMembership =+  VpcSecurityGroupMembership'+    { status =+        Prelude.Nothing,+      vpcSecurityGroupId = Prelude.Nothing+    }++-- | The status of the VPC security group.+vpcSecurityGroupMembership_status :: Lens.Lens' VpcSecurityGroupMembership (Prelude.Maybe Prelude.Text)+vpcSecurityGroupMembership_status = Lens.lens (\VpcSecurityGroupMembership' {status} -> status) (\s@VpcSecurityGroupMembership' {} a -> s {status = a} :: VpcSecurityGroupMembership)++-- | The name of the VPC security group.+vpcSecurityGroupMembership_vpcSecurityGroupId :: Lens.Lens' VpcSecurityGroupMembership (Prelude.Maybe Prelude.Text)+vpcSecurityGroupMembership_vpcSecurityGroupId = Lens.lens (\VpcSecurityGroupMembership' {vpcSecurityGroupId} -> vpcSecurityGroupId) (\s@VpcSecurityGroupMembership' {} a -> s {vpcSecurityGroupId = a} :: VpcSecurityGroupMembership)++instance Data.FromXML VpcSecurityGroupMembership where+  parseXML x =+    VpcSecurityGroupMembership'+      Prelude.<$> (x Data..@? "Status")+      Prelude.<*> (x Data..@? "VpcSecurityGroupId")++instance Prelude.Hashable VpcSecurityGroupMembership where+  hashWithSalt _salt VpcSecurityGroupMembership' {..} =+    _salt+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` vpcSecurityGroupId++instance Prelude.NFData VpcSecurityGroupMembership where+  rnf VpcSecurityGroupMembership' {..} =+    Prelude.rnf status+      `Prelude.seq` Prelude.rnf vpcSecurityGroupId
+ gen/Amazonka/DocumentDB/Waiters.hs view
@@ -0,0 +1,193 @@+{-# 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.DocumentDB.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.DocumentDB.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DocumentDB.DescribeDBInstances+import Amazonka.DocumentDB.Lens+import Amazonka.DocumentDB.Types+import qualified Amazonka.Prelude as Prelude++-- | Polls 'Amazonka.DocumentDB.DescribeDBInstances' every 30 seconds until a successful state is reached. An error is returned after 60 failed checks.+newDBInstanceAvailable :: Core.Wait DescribeDBInstances+newDBInstanceAvailable =+  Core.Wait+    { Core.name = "DBInstanceAvailable",+      Core.attempts = 60,+      Core.delay = 30,+      Core.acceptors =+        [ Core.matchAll+            "available"+            Core.AcceptSuccess+            ( Lens.folding+                ( Lens.concatOf+                    ( describeDBInstancesResponse_dbInstances+                        Prelude.. Lens._Just+                    )+                )+                Prelude.. dbInstance_dbInstanceStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAny+            "deleted"+            Core.AcceptFailure+            ( Lens.folding+                ( Lens.concatOf+                    ( describeDBInstancesResponse_dbInstances+                        Prelude.. Lens._Just+                    )+                )+                Prelude.. dbInstance_dbInstanceStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAny+            "deleting"+            Core.AcceptFailure+            ( Lens.folding+                ( Lens.concatOf+                    ( describeDBInstancesResponse_dbInstances+                        Prelude.. Lens._Just+                    )+                )+                Prelude.. dbInstance_dbInstanceStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAny+            "failed"+            Core.AcceptFailure+            ( Lens.folding+                ( Lens.concatOf+                    ( describeDBInstancesResponse_dbInstances+                        Prelude.. Lens._Just+                    )+                )+                Prelude.. dbInstance_dbInstanceStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAny+            "incompatible-restore"+            Core.AcceptFailure+            ( Lens.folding+                ( Lens.concatOf+                    ( describeDBInstancesResponse_dbInstances+                        Prelude.. Lens._Just+                    )+                )+                Prelude.. dbInstance_dbInstanceStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAny+            "incompatible-parameters"+            Core.AcceptFailure+            ( Lens.folding+                ( Lens.concatOf+                    ( describeDBInstancesResponse_dbInstances+                        Prelude.. Lens._Just+                    )+                )+                Prelude.. dbInstance_dbInstanceStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.DocumentDB.DescribeDBInstances' every 30 seconds until a successful state is reached. An error is returned after 60 failed checks.+newDBInstanceDeleted :: Core.Wait DescribeDBInstances+newDBInstanceDeleted =+  Core.Wait+    { Core.name = "DBInstanceDeleted",+      Core.attempts = 60,+      Core.delay = 30,+      Core.acceptors =+        [ Core.matchAll+            "deleted"+            Core.AcceptSuccess+            ( Lens.folding+                ( Lens.concatOf+                    ( describeDBInstancesResponse_dbInstances+                        Prelude.. Lens._Just+                    )+                )+                Prelude.. dbInstance_dbInstanceStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchError+            "DBInstanceNotFound"+            Core.AcceptSuccess,+          Core.matchAny+            "creating"+            Core.AcceptFailure+            ( Lens.folding+                ( Lens.concatOf+                    ( describeDBInstancesResponse_dbInstances+                        Prelude.. Lens._Just+                    )+                )+                Prelude.. dbInstance_dbInstanceStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAny+            "modifying"+            Core.AcceptFailure+            ( Lens.folding+                ( Lens.concatOf+                    ( describeDBInstancesResponse_dbInstances+                        Prelude.. Lens._Just+                    )+                )+                Prelude.. dbInstance_dbInstanceStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAny+            "rebooting"+            Core.AcceptFailure+            ( Lens.folding+                ( Lens.concatOf+                    ( describeDBInstancesResponse_dbInstances+                        Prelude.. Lens._Just+                    )+                )+                Prelude.. dbInstance_dbInstanceStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAny+            "resetting-master-credentials"+            Core.AcceptFailure+            ( Lens.folding+                ( Lens.concatOf+                    ( describeDBInstancesResponse_dbInstances+                        Prelude.. Lens._Just+                    )+                )+                Prelude.. dbInstance_dbInstanceStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }
+ 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.DocumentDB+import Test.Amazonka.DocumentDB.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "DocumentDB"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/DocumentDB.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.DocumentDB+-- 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.DocumentDB+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/DocumentDB/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.DocumentDB.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.DocumentDB.Internal where
+ test/Test/Amazonka/Gen/DocumentDB.hs view
@@ -0,0 +1,1098 @@+{-# 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.DocumentDB+-- 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.DocumentDB where++import Amazonka.DocumentDB+import qualified Data.Proxy as Proxy+import Test.Amazonka.DocumentDB.Internal+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestAddSourceIdentifierToSubscription $+--             newAddSourceIdentifierToSubscription+--+--         , requestAddTagsToResource $+--             newAddTagsToResource+--+--         , requestApplyPendingMaintenanceAction $+--             newApplyPendingMaintenanceAction+--+--         , requestCopyDBClusterParameterGroup $+--             newCopyDBClusterParameterGroup+--+--         , requestCopyDBClusterSnapshot $+--             newCopyDBClusterSnapshot+--+--         , requestCreateDBCluster $+--             newCreateDBCluster+--+--         , requestCreateDBClusterParameterGroup $+--             newCreateDBClusterParameterGroup+--+--         , requestCreateDBClusterSnapshot $+--             newCreateDBClusterSnapshot+--+--         , requestCreateDBInstance $+--             newCreateDBInstance+--+--         , requestCreateDBSubnetGroup $+--             newCreateDBSubnetGroup+--+--         , requestCreateEventSubscription $+--             newCreateEventSubscription+--+--         , requestCreateGlobalCluster $+--             newCreateGlobalCluster+--+--         , requestDeleteDBCluster $+--             newDeleteDBCluster+--+--         , requestDeleteDBClusterParameterGroup $+--             newDeleteDBClusterParameterGroup+--+--         , requestDeleteDBClusterSnapshot $+--             newDeleteDBClusterSnapshot+--+--         , requestDeleteDBInstance $+--             newDeleteDBInstance+--+--         , requestDeleteDBSubnetGroup $+--             newDeleteDBSubnetGroup+--+--         , requestDeleteEventSubscription $+--             newDeleteEventSubscription+--+--         , requestDeleteGlobalCluster $+--             newDeleteGlobalCluster+--+--         , requestDescribeCertificates $+--             newDescribeCertificates+--+--         , requestDescribeDBClusterParameterGroups $+--             newDescribeDBClusterParameterGroups+--+--         , requestDescribeDBClusterParameters $+--             newDescribeDBClusterParameters+--+--         , requestDescribeDBClusterSnapshotAttributes $+--             newDescribeDBClusterSnapshotAttributes+--+--         , requestDescribeDBClusterSnapshots $+--             newDescribeDBClusterSnapshots+--+--         , requestDescribeDBClusters $+--             newDescribeDBClusters+--+--         , requestDescribeDBEngineVersions $+--             newDescribeDBEngineVersions+--+--         , requestDescribeDBInstances $+--             newDescribeDBInstances+--+--         , requestDescribeDBSubnetGroups $+--             newDescribeDBSubnetGroups+--+--         , requestDescribeEngineDefaultClusterParameters $+--             newDescribeEngineDefaultClusterParameters+--+--         , requestDescribeEventCategories $+--             newDescribeEventCategories+--+--         , requestDescribeEventSubscriptions $+--             newDescribeEventSubscriptions+--+--         , requestDescribeEvents $+--             newDescribeEvents+--+--         , requestDescribeGlobalClusters $+--             newDescribeGlobalClusters+--+--         , requestDescribeOrderableDBInstanceOptions $+--             newDescribeOrderableDBInstanceOptions+--+--         , requestDescribePendingMaintenanceActions $+--             newDescribePendingMaintenanceActions+--+--         , requestFailoverDBCluster $+--             newFailoverDBCluster+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestModifyDBCluster $+--             newModifyDBCluster+--+--         , requestModifyDBClusterParameterGroup $+--             newModifyDBClusterParameterGroup+--+--         , requestModifyDBClusterSnapshotAttribute $+--             newModifyDBClusterSnapshotAttribute+--+--         , requestModifyDBInstance $+--             newModifyDBInstance+--+--         , requestModifyDBSubnetGroup $+--             newModifyDBSubnetGroup+--+--         , requestModifyEventSubscription $+--             newModifyEventSubscription+--+--         , requestModifyGlobalCluster $+--             newModifyGlobalCluster+--+--         , requestRebootDBInstance $+--             newRebootDBInstance+--+--         , requestRemoveFromGlobalCluster $+--             newRemoveFromGlobalCluster+--+--         , requestRemoveSourceIdentifierFromSubscription $+--             newRemoveSourceIdentifierFromSubscription+--+--         , requestRemoveTagsFromResource $+--             newRemoveTagsFromResource+--+--         , requestResetDBClusterParameterGroup $+--             newResetDBClusterParameterGroup+--+--         , requestRestoreDBClusterFromSnapshot $+--             newRestoreDBClusterFromSnapshot+--+--         , requestRestoreDBClusterToPointInTime $+--             newRestoreDBClusterToPointInTime+--+--         , requestStartDBCluster $+--             newStartDBCluster+--+--         , requestStopDBCluster $+--             newStopDBCluster+--+--           ]++--     , testGroup "response"+--         [ responseAddSourceIdentifierToSubscription $+--             newAddSourceIdentifierToSubscriptionResponse+--+--         , responseAddTagsToResource $+--             newAddTagsToResourceResponse+--+--         , responseApplyPendingMaintenanceAction $+--             newApplyPendingMaintenanceActionResponse+--+--         , responseCopyDBClusterParameterGroup $+--             newCopyDBClusterParameterGroupResponse+--+--         , responseCopyDBClusterSnapshot $+--             newCopyDBClusterSnapshotResponse+--+--         , responseCreateDBCluster $+--             newCreateDBClusterResponse+--+--         , responseCreateDBClusterParameterGroup $+--             newCreateDBClusterParameterGroupResponse+--+--         , responseCreateDBClusterSnapshot $+--             newCreateDBClusterSnapshotResponse+--+--         , responseCreateDBInstance $+--             newCreateDBInstanceResponse+--+--         , responseCreateDBSubnetGroup $+--             newCreateDBSubnetGroupResponse+--+--         , responseCreateEventSubscription $+--             newCreateEventSubscriptionResponse+--+--         , responseCreateGlobalCluster $+--             newCreateGlobalClusterResponse+--+--         , responseDeleteDBCluster $+--             newDeleteDBClusterResponse+--+--         , responseDeleteDBClusterParameterGroup $+--             newDeleteDBClusterParameterGroupResponse+--+--         , responseDeleteDBClusterSnapshot $+--             newDeleteDBClusterSnapshotResponse+--+--         , responseDeleteDBInstance $+--             newDeleteDBInstanceResponse+--+--         , responseDeleteDBSubnetGroup $+--             newDeleteDBSubnetGroupResponse+--+--         , responseDeleteEventSubscription $+--             newDeleteEventSubscriptionResponse+--+--         , responseDeleteGlobalCluster $+--             newDeleteGlobalClusterResponse+--+--         , responseDescribeCertificates $+--             newDescribeCertificatesResponse+--+--         , responseDescribeDBClusterParameterGroups $+--             newDescribeDBClusterParameterGroupsResponse+--+--         , responseDescribeDBClusterParameters $+--             newDescribeDBClusterParametersResponse+--+--         , responseDescribeDBClusterSnapshotAttributes $+--             newDescribeDBClusterSnapshotAttributesResponse+--+--         , responseDescribeDBClusterSnapshots $+--             newDescribeDBClusterSnapshotsResponse+--+--         , responseDescribeDBClusters $+--             newDescribeDBClustersResponse+--+--         , responseDescribeDBEngineVersions $+--             newDescribeDBEngineVersionsResponse+--+--         , responseDescribeDBInstances $+--             newDescribeDBInstancesResponse+--+--         , responseDescribeDBSubnetGroups $+--             newDescribeDBSubnetGroupsResponse+--+--         , responseDescribeEngineDefaultClusterParameters $+--             newDescribeEngineDefaultClusterParametersResponse+--+--         , responseDescribeEventCategories $+--             newDescribeEventCategoriesResponse+--+--         , responseDescribeEventSubscriptions $+--             newDescribeEventSubscriptionsResponse+--+--         , responseDescribeEvents $+--             newDescribeEventsResponse+--+--         , responseDescribeGlobalClusters $+--             newDescribeGlobalClustersResponse+--+--         , responseDescribeOrderableDBInstanceOptions $+--             newDescribeOrderableDBInstanceOptionsResponse+--+--         , responseDescribePendingMaintenanceActions $+--             newDescribePendingMaintenanceActionsResponse+--+--         , responseFailoverDBCluster $+--             newFailoverDBClusterResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseModifyDBCluster $+--             newModifyDBClusterResponse+--+--         , responseModifyDBClusterParameterGroup $+--             newDBClusterParameterGroupNameMessage+--+--         , responseModifyDBClusterSnapshotAttribute $+--             newModifyDBClusterSnapshotAttributeResponse+--+--         , responseModifyDBInstance $+--             newModifyDBInstanceResponse+--+--         , responseModifyDBSubnetGroup $+--             newModifyDBSubnetGroupResponse+--+--         , responseModifyEventSubscription $+--             newModifyEventSubscriptionResponse+--+--         , responseModifyGlobalCluster $+--             newModifyGlobalClusterResponse+--+--         , responseRebootDBInstance $+--             newRebootDBInstanceResponse+--+--         , responseRemoveFromGlobalCluster $+--             newRemoveFromGlobalClusterResponse+--+--         , responseRemoveSourceIdentifierFromSubscription $+--             newRemoveSourceIdentifierFromSubscriptionResponse+--+--         , responseRemoveTagsFromResource $+--             newRemoveTagsFromResourceResponse+--+--         , responseResetDBClusterParameterGroup $+--             newDBClusterParameterGroupNameMessage+--+--         , responseRestoreDBClusterFromSnapshot $+--             newRestoreDBClusterFromSnapshotResponse+--+--         , responseRestoreDBClusterToPointInTime $+--             newRestoreDBClusterToPointInTimeResponse+--+--         , responseStartDBCluster $+--             newStartDBClusterResponse+--+--         , responseStopDBCluster $+--             newStopDBClusterResponse+--+--           ]+--     ]++-- Requests++requestAddSourceIdentifierToSubscription :: AddSourceIdentifierToSubscription -> TestTree+requestAddSourceIdentifierToSubscription =+  req+    "AddSourceIdentifierToSubscription"+    "fixture/AddSourceIdentifierToSubscription.yaml"++requestAddTagsToResource :: AddTagsToResource -> TestTree+requestAddTagsToResource =+  req+    "AddTagsToResource"+    "fixture/AddTagsToResource.yaml"++requestApplyPendingMaintenanceAction :: ApplyPendingMaintenanceAction -> TestTree+requestApplyPendingMaintenanceAction =+  req+    "ApplyPendingMaintenanceAction"+    "fixture/ApplyPendingMaintenanceAction.yaml"++requestCopyDBClusterParameterGroup :: CopyDBClusterParameterGroup -> TestTree+requestCopyDBClusterParameterGroup =+  req+    "CopyDBClusterParameterGroup"+    "fixture/CopyDBClusterParameterGroup.yaml"++requestCopyDBClusterSnapshot :: CopyDBClusterSnapshot -> TestTree+requestCopyDBClusterSnapshot =+  req+    "CopyDBClusterSnapshot"+    "fixture/CopyDBClusterSnapshot.yaml"++requestCreateDBCluster :: CreateDBCluster -> TestTree+requestCreateDBCluster =+  req+    "CreateDBCluster"+    "fixture/CreateDBCluster.yaml"++requestCreateDBClusterParameterGroup :: CreateDBClusterParameterGroup -> TestTree+requestCreateDBClusterParameterGroup =+  req+    "CreateDBClusterParameterGroup"+    "fixture/CreateDBClusterParameterGroup.yaml"++requestCreateDBClusterSnapshot :: CreateDBClusterSnapshot -> TestTree+requestCreateDBClusterSnapshot =+  req+    "CreateDBClusterSnapshot"+    "fixture/CreateDBClusterSnapshot.yaml"++requestCreateDBInstance :: CreateDBInstance -> TestTree+requestCreateDBInstance =+  req+    "CreateDBInstance"+    "fixture/CreateDBInstance.yaml"++requestCreateDBSubnetGroup :: CreateDBSubnetGroup -> TestTree+requestCreateDBSubnetGroup =+  req+    "CreateDBSubnetGroup"+    "fixture/CreateDBSubnetGroup.yaml"++requestCreateEventSubscription :: CreateEventSubscription -> TestTree+requestCreateEventSubscription =+  req+    "CreateEventSubscription"+    "fixture/CreateEventSubscription.yaml"++requestCreateGlobalCluster :: CreateGlobalCluster -> TestTree+requestCreateGlobalCluster =+  req+    "CreateGlobalCluster"+    "fixture/CreateGlobalCluster.yaml"++requestDeleteDBCluster :: DeleteDBCluster -> TestTree+requestDeleteDBCluster =+  req+    "DeleteDBCluster"+    "fixture/DeleteDBCluster.yaml"++requestDeleteDBClusterParameterGroup :: DeleteDBClusterParameterGroup -> TestTree+requestDeleteDBClusterParameterGroup =+  req+    "DeleteDBClusterParameterGroup"+    "fixture/DeleteDBClusterParameterGroup.yaml"++requestDeleteDBClusterSnapshot :: DeleteDBClusterSnapshot -> TestTree+requestDeleteDBClusterSnapshot =+  req+    "DeleteDBClusterSnapshot"+    "fixture/DeleteDBClusterSnapshot.yaml"++requestDeleteDBInstance :: DeleteDBInstance -> TestTree+requestDeleteDBInstance =+  req+    "DeleteDBInstance"+    "fixture/DeleteDBInstance.yaml"++requestDeleteDBSubnetGroup :: DeleteDBSubnetGroup -> TestTree+requestDeleteDBSubnetGroup =+  req+    "DeleteDBSubnetGroup"+    "fixture/DeleteDBSubnetGroup.yaml"++requestDeleteEventSubscription :: DeleteEventSubscription -> TestTree+requestDeleteEventSubscription =+  req+    "DeleteEventSubscription"+    "fixture/DeleteEventSubscription.yaml"++requestDeleteGlobalCluster :: DeleteGlobalCluster -> TestTree+requestDeleteGlobalCluster =+  req+    "DeleteGlobalCluster"+    "fixture/DeleteGlobalCluster.yaml"++requestDescribeCertificates :: DescribeCertificates -> TestTree+requestDescribeCertificates =+  req+    "DescribeCertificates"+    "fixture/DescribeCertificates.yaml"++requestDescribeDBClusterParameterGroups :: DescribeDBClusterParameterGroups -> TestTree+requestDescribeDBClusterParameterGroups =+  req+    "DescribeDBClusterParameterGroups"+    "fixture/DescribeDBClusterParameterGroups.yaml"++requestDescribeDBClusterParameters :: DescribeDBClusterParameters -> TestTree+requestDescribeDBClusterParameters =+  req+    "DescribeDBClusterParameters"+    "fixture/DescribeDBClusterParameters.yaml"++requestDescribeDBClusterSnapshotAttributes :: DescribeDBClusterSnapshotAttributes -> TestTree+requestDescribeDBClusterSnapshotAttributes =+  req+    "DescribeDBClusterSnapshotAttributes"+    "fixture/DescribeDBClusterSnapshotAttributes.yaml"++requestDescribeDBClusterSnapshots :: DescribeDBClusterSnapshots -> TestTree+requestDescribeDBClusterSnapshots =+  req+    "DescribeDBClusterSnapshots"+    "fixture/DescribeDBClusterSnapshots.yaml"++requestDescribeDBClusters :: DescribeDBClusters -> TestTree+requestDescribeDBClusters =+  req+    "DescribeDBClusters"+    "fixture/DescribeDBClusters.yaml"++requestDescribeDBEngineVersions :: DescribeDBEngineVersions -> TestTree+requestDescribeDBEngineVersions =+  req+    "DescribeDBEngineVersions"+    "fixture/DescribeDBEngineVersions.yaml"++requestDescribeDBInstances :: DescribeDBInstances -> TestTree+requestDescribeDBInstances =+  req+    "DescribeDBInstances"+    "fixture/DescribeDBInstances.yaml"++requestDescribeDBSubnetGroups :: DescribeDBSubnetGroups -> TestTree+requestDescribeDBSubnetGroups =+  req+    "DescribeDBSubnetGroups"+    "fixture/DescribeDBSubnetGroups.yaml"++requestDescribeEngineDefaultClusterParameters :: DescribeEngineDefaultClusterParameters -> TestTree+requestDescribeEngineDefaultClusterParameters =+  req+    "DescribeEngineDefaultClusterParameters"+    "fixture/DescribeEngineDefaultClusterParameters.yaml"++requestDescribeEventCategories :: DescribeEventCategories -> TestTree+requestDescribeEventCategories =+  req+    "DescribeEventCategories"+    "fixture/DescribeEventCategories.yaml"++requestDescribeEventSubscriptions :: DescribeEventSubscriptions -> TestTree+requestDescribeEventSubscriptions =+  req+    "DescribeEventSubscriptions"+    "fixture/DescribeEventSubscriptions.yaml"++requestDescribeEvents :: DescribeEvents -> TestTree+requestDescribeEvents =+  req+    "DescribeEvents"+    "fixture/DescribeEvents.yaml"++requestDescribeGlobalClusters :: DescribeGlobalClusters -> TestTree+requestDescribeGlobalClusters =+  req+    "DescribeGlobalClusters"+    "fixture/DescribeGlobalClusters.yaml"++requestDescribeOrderableDBInstanceOptions :: DescribeOrderableDBInstanceOptions -> TestTree+requestDescribeOrderableDBInstanceOptions =+  req+    "DescribeOrderableDBInstanceOptions"+    "fixture/DescribeOrderableDBInstanceOptions.yaml"++requestDescribePendingMaintenanceActions :: DescribePendingMaintenanceActions -> TestTree+requestDescribePendingMaintenanceActions =+  req+    "DescribePendingMaintenanceActions"+    "fixture/DescribePendingMaintenanceActions.yaml"++requestFailoverDBCluster :: FailoverDBCluster -> TestTree+requestFailoverDBCluster =+  req+    "FailoverDBCluster"+    "fixture/FailoverDBCluster.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestModifyDBCluster :: ModifyDBCluster -> TestTree+requestModifyDBCluster =+  req+    "ModifyDBCluster"+    "fixture/ModifyDBCluster.yaml"++requestModifyDBClusterParameterGroup :: ModifyDBClusterParameterGroup -> TestTree+requestModifyDBClusterParameterGroup =+  req+    "ModifyDBClusterParameterGroup"+    "fixture/ModifyDBClusterParameterGroup.yaml"++requestModifyDBClusterSnapshotAttribute :: ModifyDBClusterSnapshotAttribute -> TestTree+requestModifyDBClusterSnapshotAttribute =+  req+    "ModifyDBClusterSnapshotAttribute"+    "fixture/ModifyDBClusterSnapshotAttribute.yaml"++requestModifyDBInstance :: ModifyDBInstance -> TestTree+requestModifyDBInstance =+  req+    "ModifyDBInstance"+    "fixture/ModifyDBInstance.yaml"++requestModifyDBSubnetGroup :: ModifyDBSubnetGroup -> TestTree+requestModifyDBSubnetGroup =+  req+    "ModifyDBSubnetGroup"+    "fixture/ModifyDBSubnetGroup.yaml"++requestModifyEventSubscription :: ModifyEventSubscription -> TestTree+requestModifyEventSubscription =+  req+    "ModifyEventSubscription"+    "fixture/ModifyEventSubscription.yaml"++requestModifyGlobalCluster :: ModifyGlobalCluster -> TestTree+requestModifyGlobalCluster =+  req+    "ModifyGlobalCluster"+    "fixture/ModifyGlobalCluster.yaml"++requestRebootDBInstance :: RebootDBInstance -> TestTree+requestRebootDBInstance =+  req+    "RebootDBInstance"+    "fixture/RebootDBInstance.yaml"++requestRemoveFromGlobalCluster :: RemoveFromGlobalCluster -> TestTree+requestRemoveFromGlobalCluster =+  req+    "RemoveFromGlobalCluster"+    "fixture/RemoveFromGlobalCluster.yaml"++requestRemoveSourceIdentifierFromSubscription :: RemoveSourceIdentifierFromSubscription -> TestTree+requestRemoveSourceIdentifierFromSubscription =+  req+    "RemoveSourceIdentifierFromSubscription"+    "fixture/RemoveSourceIdentifierFromSubscription.yaml"++requestRemoveTagsFromResource :: RemoveTagsFromResource -> TestTree+requestRemoveTagsFromResource =+  req+    "RemoveTagsFromResource"+    "fixture/RemoveTagsFromResource.yaml"++requestResetDBClusterParameterGroup :: ResetDBClusterParameterGroup -> TestTree+requestResetDBClusterParameterGroup =+  req+    "ResetDBClusterParameterGroup"+    "fixture/ResetDBClusterParameterGroup.yaml"++requestRestoreDBClusterFromSnapshot :: RestoreDBClusterFromSnapshot -> TestTree+requestRestoreDBClusterFromSnapshot =+  req+    "RestoreDBClusterFromSnapshot"+    "fixture/RestoreDBClusterFromSnapshot.yaml"++requestRestoreDBClusterToPointInTime :: RestoreDBClusterToPointInTime -> TestTree+requestRestoreDBClusterToPointInTime =+  req+    "RestoreDBClusterToPointInTime"+    "fixture/RestoreDBClusterToPointInTime.yaml"++requestStartDBCluster :: StartDBCluster -> TestTree+requestStartDBCluster =+  req+    "StartDBCluster"+    "fixture/StartDBCluster.yaml"++requestStopDBCluster :: StopDBCluster -> TestTree+requestStopDBCluster =+  req+    "StopDBCluster"+    "fixture/StopDBCluster.yaml"++-- Responses++responseAddSourceIdentifierToSubscription :: AddSourceIdentifierToSubscriptionResponse -> TestTree+responseAddSourceIdentifierToSubscription =+  res+    "AddSourceIdentifierToSubscriptionResponse"+    "fixture/AddSourceIdentifierToSubscriptionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AddSourceIdentifierToSubscription)++responseAddTagsToResource :: AddTagsToResourceResponse -> TestTree+responseAddTagsToResource =+  res+    "AddTagsToResourceResponse"+    "fixture/AddTagsToResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AddTagsToResource)++responseApplyPendingMaintenanceAction :: ApplyPendingMaintenanceActionResponse -> TestTree+responseApplyPendingMaintenanceAction =+  res+    "ApplyPendingMaintenanceActionResponse"+    "fixture/ApplyPendingMaintenanceActionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ApplyPendingMaintenanceAction)++responseCopyDBClusterParameterGroup :: CopyDBClusterParameterGroupResponse -> TestTree+responseCopyDBClusterParameterGroup =+  res+    "CopyDBClusterParameterGroupResponse"+    "fixture/CopyDBClusterParameterGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CopyDBClusterParameterGroup)++responseCopyDBClusterSnapshot :: CopyDBClusterSnapshotResponse -> TestTree+responseCopyDBClusterSnapshot =+  res+    "CopyDBClusterSnapshotResponse"+    "fixture/CopyDBClusterSnapshotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CopyDBClusterSnapshot)++responseCreateDBCluster :: CreateDBClusterResponse -> TestTree+responseCreateDBCluster =+  res+    "CreateDBClusterResponse"+    "fixture/CreateDBClusterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDBCluster)++responseCreateDBClusterParameterGroup :: CreateDBClusterParameterGroupResponse -> TestTree+responseCreateDBClusterParameterGroup =+  res+    "CreateDBClusterParameterGroupResponse"+    "fixture/CreateDBClusterParameterGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDBClusterParameterGroup)++responseCreateDBClusterSnapshot :: CreateDBClusterSnapshotResponse -> TestTree+responseCreateDBClusterSnapshot =+  res+    "CreateDBClusterSnapshotResponse"+    "fixture/CreateDBClusterSnapshotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDBClusterSnapshot)++responseCreateDBInstance :: CreateDBInstanceResponse -> TestTree+responseCreateDBInstance =+  res+    "CreateDBInstanceResponse"+    "fixture/CreateDBInstanceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDBInstance)++responseCreateDBSubnetGroup :: CreateDBSubnetGroupResponse -> TestTree+responseCreateDBSubnetGroup =+  res+    "CreateDBSubnetGroupResponse"+    "fixture/CreateDBSubnetGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDBSubnetGroup)++responseCreateEventSubscription :: CreateEventSubscriptionResponse -> TestTree+responseCreateEventSubscription =+  res+    "CreateEventSubscriptionResponse"+    "fixture/CreateEventSubscriptionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateEventSubscription)++responseCreateGlobalCluster :: CreateGlobalClusterResponse -> TestTree+responseCreateGlobalCluster =+  res+    "CreateGlobalClusterResponse"+    "fixture/CreateGlobalClusterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateGlobalCluster)++responseDeleteDBCluster :: DeleteDBClusterResponse -> TestTree+responseDeleteDBCluster =+  res+    "DeleteDBClusterResponse"+    "fixture/DeleteDBClusterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDBCluster)++responseDeleteDBClusterParameterGroup :: DeleteDBClusterParameterGroupResponse -> TestTree+responseDeleteDBClusterParameterGroup =+  res+    "DeleteDBClusterParameterGroupResponse"+    "fixture/DeleteDBClusterParameterGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDBClusterParameterGroup)++responseDeleteDBClusterSnapshot :: DeleteDBClusterSnapshotResponse -> TestTree+responseDeleteDBClusterSnapshot =+  res+    "DeleteDBClusterSnapshotResponse"+    "fixture/DeleteDBClusterSnapshotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDBClusterSnapshot)++responseDeleteDBInstance :: DeleteDBInstanceResponse -> TestTree+responseDeleteDBInstance =+  res+    "DeleteDBInstanceResponse"+    "fixture/DeleteDBInstanceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDBInstance)++responseDeleteDBSubnetGroup :: DeleteDBSubnetGroupResponse -> TestTree+responseDeleteDBSubnetGroup =+  res+    "DeleteDBSubnetGroupResponse"+    "fixture/DeleteDBSubnetGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDBSubnetGroup)++responseDeleteEventSubscription :: DeleteEventSubscriptionResponse -> TestTree+responseDeleteEventSubscription =+  res+    "DeleteEventSubscriptionResponse"+    "fixture/DeleteEventSubscriptionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteEventSubscription)++responseDeleteGlobalCluster :: DeleteGlobalClusterResponse -> TestTree+responseDeleteGlobalCluster =+  res+    "DeleteGlobalClusterResponse"+    "fixture/DeleteGlobalClusterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteGlobalCluster)++responseDescribeCertificates :: DescribeCertificatesResponse -> TestTree+responseDescribeCertificates =+  res+    "DescribeCertificatesResponse"+    "fixture/DescribeCertificatesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeCertificates)++responseDescribeDBClusterParameterGroups :: DescribeDBClusterParameterGroupsResponse -> TestTree+responseDescribeDBClusterParameterGroups =+  res+    "DescribeDBClusterParameterGroupsResponse"+    "fixture/DescribeDBClusterParameterGroupsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDBClusterParameterGroups)++responseDescribeDBClusterParameters :: DescribeDBClusterParametersResponse -> TestTree+responseDescribeDBClusterParameters =+  res+    "DescribeDBClusterParametersResponse"+    "fixture/DescribeDBClusterParametersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDBClusterParameters)++responseDescribeDBClusterSnapshotAttributes :: DescribeDBClusterSnapshotAttributesResponse -> TestTree+responseDescribeDBClusterSnapshotAttributes =+  res+    "DescribeDBClusterSnapshotAttributesResponse"+    "fixture/DescribeDBClusterSnapshotAttributesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDBClusterSnapshotAttributes)++responseDescribeDBClusterSnapshots :: DescribeDBClusterSnapshotsResponse -> TestTree+responseDescribeDBClusterSnapshots =+  res+    "DescribeDBClusterSnapshotsResponse"+    "fixture/DescribeDBClusterSnapshotsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDBClusterSnapshots)++responseDescribeDBClusters :: DescribeDBClustersResponse -> TestTree+responseDescribeDBClusters =+  res+    "DescribeDBClustersResponse"+    "fixture/DescribeDBClustersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDBClusters)++responseDescribeDBEngineVersions :: DescribeDBEngineVersionsResponse -> TestTree+responseDescribeDBEngineVersions =+  res+    "DescribeDBEngineVersionsResponse"+    "fixture/DescribeDBEngineVersionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDBEngineVersions)++responseDescribeDBInstances :: DescribeDBInstancesResponse -> TestTree+responseDescribeDBInstances =+  res+    "DescribeDBInstancesResponse"+    "fixture/DescribeDBInstancesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDBInstances)++responseDescribeDBSubnetGroups :: DescribeDBSubnetGroupsResponse -> TestTree+responseDescribeDBSubnetGroups =+  res+    "DescribeDBSubnetGroupsResponse"+    "fixture/DescribeDBSubnetGroupsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDBSubnetGroups)++responseDescribeEngineDefaultClusterParameters :: DescribeEngineDefaultClusterParametersResponse -> TestTree+responseDescribeEngineDefaultClusterParameters =+  res+    "DescribeEngineDefaultClusterParametersResponse"+    "fixture/DescribeEngineDefaultClusterParametersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeEngineDefaultClusterParameters)++responseDescribeEventCategories :: DescribeEventCategoriesResponse -> TestTree+responseDescribeEventCategories =+  res+    "DescribeEventCategoriesResponse"+    "fixture/DescribeEventCategoriesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeEventCategories)++responseDescribeEventSubscriptions :: DescribeEventSubscriptionsResponse -> TestTree+responseDescribeEventSubscriptions =+  res+    "DescribeEventSubscriptionsResponse"+    "fixture/DescribeEventSubscriptionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeEventSubscriptions)++responseDescribeEvents :: DescribeEventsResponse -> TestTree+responseDescribeEvents =+  res+    "DescribeEventsResponse"+    "fixture/DescribeEventsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeEvents)++responseDescribeGlobalClusters :: DescribeGlobalClustersResponse -> TestTree+responseDescribeGlobalClusters =+  res+    "DescribeGlobalClustersResponse"+    "fixture/DescribeGlobalClustersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeGlobalClusters)++responseDescribeOrderableDBInstanceOptions :: DescribeOrderableDBInstanceOptionsResponse -> TestTree+responseDescribeOrderableDBInstanceOptions =+  res+    "DescribeOrderableDBInstanceOptionsResponse"+    "fixture/DescribeOrderableDBInstanceOptionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeOrderableDBInstanceOptions)++responseDescribePendingMaintenanceActions :: DescribePendingMaintenanceActionsResponse -> TestTree+responseDescribePendingMaintenanceActions =+  res+    "DescribePendingMaintenanceActionsResponse"+    "fixture/DescribePendingMaintenanceActionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribePendingMaintenanceActions)++responseFailoverDBCluster :: FailoverDBClusterResponse -> TestTree+responseFailoverDBCluster =+  res+    "FailoverDBClusterResponse"+    "fixture/FailoverDBClusterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy FailoverDBCluster)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseModifyDBCluster :: ModifyDBClusterResponse -> TestTree+responseModifyDBCluster =+  res+    "ModifyDBClusterResponse"+    "fixture/ModifyDBClusterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ModifyDBCluster)++responseModifyDBClusterParameterGroup :: DBClusterParameterGroupNameMessage -> TestTree+responseModifyDBClusterParameterGroup =+  res+    "ModifyDBClusterParameterGroupResponse"+    "fixture/ModifyDBClusterParameterGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ModifyDBClusterParameterGroup)++responseModifyDBClusterSnapshotAttribute :: ModifyDBClusterSnapshotAttributeResponse -> TestTree+responseModifyDBClusterSnapshotAttribute =+  res+    "ModifyDBClusterSnapshotAttributeResponse"+    "fixture/ModifyDBClusterSnapshotAttributeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ModifyDBClusterSnapshotAttribute)++responseModifyDBInstance :: ModifyDBInstanceResponse -> TestTree+responseModifyDBInstance =+  res+    "ModifyDBInstanceResponse"+    "fixture/ModifyDBInstanceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ModifyDBInstance)++responseModifyDBSubnetGroup :: ModifyDBSubnetGroupResponse -> TestTree+responseModifyDBSubnetGroup =+  res+    "ModifyDBSubnetGroupResponse"+    "fixture/ModifyDBSubnetGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ModifyDBSubnetGroup)++responseModifyEventSubscription :: ModifyEventSubscriptionResponse -> TestTree+responseModifyEventSubscription =+  res+    "ModifyEventSubscriptionResponse"+    "fixture/ModifyEventSubscriptionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ModifyEventSubscription)++responseModifyGlobalCluster :: ModifyGlobalClusterResponse -> TestTree+responseModifyGlobalCluster =+  res+    "ModifyGlobalClusterResponse"+    "fixture/ModifyGlobalClusterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ModifyGlobalCluster)++responseRebootDBInstance :: RebootDBInstanceResponse -> TestTree+responseRebootDBInstance =+  res+    "RebootDBInstanceResponse"+    "fixture/RebootDBInstanceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RebootDBInstance)++responseRemoveFromGlobalCluster :: RemoveFromGlobalClusterResponse -> TestTree+responseRemoveFromGlobalCluster =+  res+    "RemoveFromGlobalClusterResponse"+    "fixture/RemoveFromGlobalClusterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RemoveFromGlobalCluster)++responseRemoveSourceIdentifierFromSubscription :: RemoveSourceIdentifierFromSubscriptionResponse -> TestTree+responseRemoveSourceIdentifierFromSubscription =+  res+    "RemoveSourceIdentifierFromSubscriptionResponse"+    "fixture/RemoveSourceIdentifierFromSubscriptionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RemoveSourceIdentifierFromSubscription)++responseRemoveTagsFromResource :: RemoveTagsFromResourceResponse -> TestTree+responseRemoveTagsFromResource =+  res+    "RemoveTagsFromResourceResponse"+    "fixture/RemoveTagsFromResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RemoveTagsFromResource)++responseResetDBClusterParameterGroup :: DBClusterParameterGroupNameMessage -> TestTree+responseResetDBClusterParameterGroup =+  res+    "ResetDBClusterParameterGroupResponse"+    "fixture/ResetDBClusterParameterGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ResetDBClusterParameterGroup)++responseRestoreDBClusterFromSnapshot :: RestoreDBClusterFromSnapshotResponse -> TestTree+responseRestoreDBClusterFromSnapshot =+  res+    "RestoreDBClusterFromSnapshotResponse"+    "fixture/RestoreDBClusterFromSnapshotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RestoreDBClusterFromSnapshot)++responseRestoreDBClusterToPointInTime :: RestoreDBClusterToPointInTimeResponse -> TestTree+responseRestoreDBClusterToPointInTime =+  res+    "RestoreDBClusterToPointInTimeResponse"+    "fixture/RestoreDBClusterToPointInTimeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RestoreDBClusterToPointInTime)++responseStartDBCluster :: StartDBClusterResponse -> TestTree+responseStartDBCluster =+  res+    "StartDBClusterResponse"+    "fixture/StartDBClusterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartDBCluster)++responseStopDBCluster :: StopDBClusterResponse -> TestTree+responseStopDBCluster =+  res+    "StopDBClusterResponse"+    "fixture/StopDBClusterResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StopDBCluster)