diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -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.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,44 @@
+# Amazon Neptune 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-neptune)
+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.Neptune](http://hackage.haskell.org/package/amazonka-neptune/docs/Amazonka-Neptune.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-neptune` 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.
diff --git a/amazonka-neptune.cabal b/amazonka-neptune.cabal
new file mode 100644
--- /dev/null
+++ b/amazonka-neptune.cabal
@@ -0,0 +1,202 @@
+cabal-version:      2.2
+name:               amazonka-neptune
+version:            2.0
+synopsis:           Amazon Neptune 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.Neptune.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.Neptune" 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-neptune
+
+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.Neptune
+    Amazonka.Neptune.AddRoleToDBCluster
+    Amazonka.Neptune.AddSourceIdentifierToSubscription
+    Amazonka.Neptune.AddTagsToResource
+    Amazonka.Neptune.ApplyPendingMaintenanceAction
+    Amazonka.Neptune.CopyDBClusterParameterGroup
+    Amazonka.Neptune.CopyDBClusterSnapshot
+    Amazonka.Neptune.CopyDBParameterGroup
+    Amazonka.Neptune.CreateDBCluster
+    Amazonka.Neptune.CreateDBClusterEndpoint
+    Amazonka.Neptune.CreateDBClusterParameterGroup
+    Amazonka.Neptune.CreateDBClusterSnapshot
+    Amazonka.Neptune.CreateDBInstance
+    Amazonka.Neptune.CreateDBParameterGroup
+    Amazonka.Neptune.CreateDBSubnetGroup
+    Amazonka.Neptune.CreateEventSubscription
+    Amazonka.Neptune.CreateGlobalCluster
+    Amazonka.Neptune.DeleteDBCluster
+    Amazonka.Neptune.DeleteDBClusterEndpoint
+    Amazonka.Neptune.DeleteDBClusterParameterGroup
+    Amazonka.Neptune.DeleteDBClusterSnapshot
+    Amazonka.Neptune.DeleteDBInstance
+    Amazonka.Neptune.DeleteDBParameterGroup
+    Amazonka.Neptune.DeleteDBSubnetGroup
+    Amazonka.Neptune.DeleteEventSubscription
+    Amazonka.Neptune.DeleteGlobalCluster
+    Amazonka.Neptune.DescribeDBClusterEndpoints
+    Amazonka.Neptune.DescribeDBClusterParameterGroups
+    Amazonka.Neptune.DescribeDBClusterParameters
+    Amazonka.Neptune.DescribeDBClusters
+    Amazonka.Neptune.DescribeDBClusterSnapshotAttributes
+    Amazonka.Neptune.DescribeDBClusterSnapshots
+    Amazonka.Neptune.DescribeDBEngineVersions
+    Amazonka.Neptune.DescribeDBInstances
+    Amazonka.Neptune.DescribeDBParameterGroups
+    Amazonka.Neptune.DescribeDBParameters
+    Amazonka.Neptune.DescribeDBSubnetGroups
+    Amazonka.Neptune.DescribeEngineDefaultClusterParameters
+    Amazonka.Neptune.DescribeEngineDefaultParameters
+    Amazonka.Neptune.DescribeEventCategories
+    Amazonka.Neptune.DescribeEvents
+    Amazonka.Neptune.DescribeEventSubscriptions
+    Amazonka.Neptune.DescribeGlobalClusters
+    Amazonka.Neptune.DescribeOrderableDBInstanceOptions
+    Amazonka.Neptune.DescribePendingMaintenanceActions
+    Amazonka.Neptune.DescribeValidDBInstanceModifications
+    Amazonka.Neptune.FailoverDBCluster
+    Amazonka.Neptune.FailoverGlobalCluster
+    Amazonka.Neptune.Lens
+    Amazonka.Neptune.ListTagsForResource
+    Amazonka.Neptune.ModifyDBCluster
+    Amazonka.Neptune.ModifyDBClusterEndpoint
+    Amazonka.Neptune.ModifyDBClusterParameterGroup
+    Amazonka.Neptune.ModifyDBClusterSnapshotAttribute
+    Amazonka.Neptune.ModifyDBInstance
+    Amazonka.Neptune.ModifyDBParameterGroup
+    Amazonka.Neptune.ModifyDBSubnetGroup
+    Amazonka.Neptune.ModifyEventSubscription
+    Amazonka.Neptune.ModifyGlobalCluster
+    Amazonka.Neptune.PromoteReadReplicaDBCluster
+    Amazonka.Neptune.RebootDBInstance
+    Amazonka.Neptune.RemoveFromGlobalCluster
+    Amazonka.Neptune.RemoveRoleFromDBCluster
+    Amazonka.Neptune.RemoveSourceIdentifierFromSubscription
+    Amazonka.Neptune.RemoveTagsFromResource
+    Amazonka.Neptune.ResetDBClusterParameterGroup
+    Amazonka.Neptune.ResetDBParameterGroup
+    Amazonka.Neptune.RestoreDBClusterFromSnapshot
+    Amazonka.Neptune.RestoreDBClusterToPointInTime
+    Amazonka.Neptune.StartDBCluster
+    Amazonka.Neptune.StopDBCluster
+    Amazonka.Neptune.Types
+    Amazonka.Neptune.Types.ApplyMethod
+    Amazonka.Neptune.Types.AvailabilityZone
+    Amazonka.Neptune.Types.CharacterSet
+    Amazonka.Neptune.Types.CloudwatchLogsExportConfiguration
+    Amazonka.Neptune.Types.DBCluster
+    Amazonka.Neptune.Types.DBClusterEndpoint
+    Amazonka.Neptune.Types.DBClusterMember
+    Amazonka.Neptune.Types.DBClusterOptionGroupStatus
+    Amazonka.Neptune.Types.DBClusterParameterGroup
+    Amazonka.Neptune.Types.DBClusterParameterGroupNameMessage
+    Amazonka.Neptune.Types.DBClusterRole
+    Amazonka.Neptune.Types.DBClusterSnapshot
+    Amazonka.Neptune.Types.DBClusterSnapshotAttribute
+    Amazonka.Neptune.Types.DBClusterSnapshotAttributesResult
+    Amazonka.Neptune.Types.DBEngineVersion
+    Amazonka.Neptune.Types.DBInstance
+    Amazonka.Neptune.Types.DBInstanceStatusInfo
+    Amazonka.Neptune.Types.DBParameterGroup
+    Amazonka.Neptune.Types.DBParameterGroupNameMessage
+    Amazonka.Neptune.Types.DBParameterGroupStatus
+    Amazonka.Neptune.Types.DBSecurityGroupMembership
+    Amazonka.Neptune.Types.DBSubnetGroup
+    Amazonka.Neptune.Types.DomainMembership
+    Amazonka.Neptune.Types.DoubleRange
+    Amazonka.Neptune.Types.Endpoint
+    Amazonka.Neptune.Types.EngineDefaults
+    Amazonka.Neptune.Types.Event
+    Amazonka.Neptune.Types.EventCategoriesMap
+    Amazonka.Neptune.Types.EventSubscription
+    Amazonka.Neptune.Types.Filter
+    Amazonka.Neptune.Types.GlobalCluster
+    Amazonka.Neptune.Types.GlobalClusterMember
+    Amazonka.Neptune.Types.OptionGroupMembership
+    Amazonka.Neptune.Types.OrderableDBInstanceOption
+    Amazonka.Neptune.Types.Parameter
+    Amazonka.Neptune.Types.PendingCloudwatchLogsExports
+    Amazonka.Neptune.Types.PendingMaintenanceAction
+    Amazonka.Neptune.Types.PendingModifiedValues
+    Amazonka.Neptune.Types.Range
+    Amazonka.Neptune.Types.ResourcePendingMaintenanceActions
+    Amazonka.Neptune.Types.ServerlessV2ScalingConfiguration
+    Amazonka.Neptune.Types.ServerlessV2ScalingConfigurationInfo
+    Amazonka.Neptune.Types.SourceType
+    Amazonka.Neptune.Types.Subnet
+    Amazonka.Neptune.Types.Tag
+    Amazonka.Neptune.Types.Timezone
+    Amazonka.Neptune.Types.UpgradeTarget
+    Amazonka.Neptune.Types.ValidDBInstanceModificationsMessage
+    Amazonka.Neptune.Types.ValidStorageOptions
+    Amazonka.Neptune.Types.VpcSecurityGroupMembership
+    Amazonka.Neptune.Waiters
+
+  build-depends:
+    , amazonka-core  >=2.0  && <2.1
+    , base           >=4.12 && <5
+
+test-suite amazonka-neptune-test
+  type:             exitcode-stdio-1.0
+  default-language: Haskell2010
+  hs-source-dirs:   test
+  main-is:          Main.hs
+  ghc-options:      -Wall -threaded
+
+  -- This section is encoded by the template and any modules added by
+  -- hand outside these namespaces will not correctly be added to the
+  -- distribution package.
+  other-modules:
+    Test.Amazonka.Gen.Neptune
+    Test.Amazonka.Neptune
+    Test.Amazonka.Neptune.Internal
+
+  build-depends:
+    , amazonka-core         >=2.0 && <2.1
+    , amazonka-neptune
+    , amazonka-test         >=2.0 && <2.1
+    , base
+    , bytestring
+    , case-insensitive
+    , tasty
+    , tasty-hunit
+    , text
+    , time
+    , unordered-containers
diff --git a/fixture/AddRoleToDBCluster.yaml b/fixture/AddRoleToDBCluster.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/AddRoleToDBCluster.yaml
@@ -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:
+  ''
diff --git a/fixture/AddRoleToDBClusterResponse.proto b/fixture/AddRoleToDBClusterResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/AddRoleToDBClusterResponse.proto
diff --git a/fixture/AddSourceIdentifierToSubscription.yaml b/fixture/AddSourceIdentifierToSubscription.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/AddSourceIdentifierToSubscription.yaml
@@ -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:
+  ''
diff --git a/fixture/AddSourceIdentifierToSubscriptionResponse.proto b/fixture/AddSourceIdentifierToSubscriptionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/AddSourceIdentifierToSubscriptionResponse.proto
diff --git a/fixture/AddTagsToResource.yaml b/fixture/AddTagsToResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/AddTagsToResource.yaml
@@ -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:
+  ''
diff --git a/fixture/AddTagsToResourceResponse.proto b/fixture/AddTagsToResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/AddTagsToResourceResponse.proto
diff --git a/fixture/ApplyPendingMaintenanceAction.yaml b/fixture/ApplyPendingMaintenanceAction.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ApplyPendingMaintenanceAction.yaml
@@ -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:
+  ''
diff --git a/fixture/ApplyPendingMaintenanceActionResponse.proto b/fixture/ApplyPendingMaintenanceActionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ApplyPendingMaintenanceActionResponse.proto
diff --git a/fixture/CopyDBClusterParameterGroup.yaml b/fixture/CopyDBClusterParameterGroup.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CopyDBClusterParameterGroup.yaml
@@ -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:
+  ''
diff --git a/fixture/CopyDBClusterParameterGroupResponse.proto b/fixture/CopyDBClusterParameterGroupResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CopyDBClusterParameterGroupResponse.proto
diff --git a/fixture/CopyDBClusterSnapshot.yaml b/fixture/CopyDBClusterSnapshot.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CopyDBClusterSnapshot.yaml
@@ -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:
+  ''
diff --git a/fixture/CopyDBClusterSnapshotResponse.proto b/fixture/CopyDBClusterSnapshotResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CopyDBClusterSnapshotResponse.proto
diff --git a/fixture/CopyDBParameterGroup.yaml b/fixture/CopyDBParameterGroup.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CopyDBParameterGroup.yaml
@@ -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:
+  ''
diff --git a/fixture/CopyDBParameterGroupResponse.proto b/fixture/CopyDBParameterGroupResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CopyDBParameterGroupResponse.proto
diff --git a/fixture/CreateDBCluster.yaml b/fixture/CreateDBCluster.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateDBCluster.yaml
@@ -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:
+  ''
diff --git a/fixture/CreateDBClusterEndpoint.yaml b/fixture/CreateDBClusterEndpoint.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateDBClusterEndpoint.yaml
@@ -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:
+  ''
diff --git a/fixture/CreateDBClusterEndpointResponse.proto b/fixture/CreateDBClusterEndpointResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateDBClusterEndpointResponse.proto
diff --git a/fixture/CreateDBClusterParameterGroup.yaml b/fixture/CreateDBClusterParameterGroup.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateDBClusterParameterGroup.yaml
@@ -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:
+  ''
diff --git a/fixture/CreateDBClusterParameterGroupResponse.proto b/fixture/CreateDBClusterParameterGroupResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateDBClusterParameterGroupResponse.proto
diff --git a/fixture/CreateDBClusterResponse.proto b/fixture/CreateDBClusterResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateDBClusterResponse.proto
diff --git a/fixture/CreateDBClusterSnapshot.yaml b/fixture/CreateDBClusterSnapshot.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateDBClusterSnapshot.yaml
@@ -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:
+  ''
diff --git a/fixture/CreateDBClusterSnapshotResponse.proto b/fixture/CreateDBClusterSnapshotResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateDBClusterSnapshotResponse.proto
diff --git a/fixture/CreateDBInstance.yaml b/fixture/CreateDBInstance.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateDBInstance.yaml
@@ -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:
+  ''
diff --git a/fixture/CreateDBInstanceResponse.proto b/fixture/CreateDBInstanceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateDBInstanceResponse.proto
diff --git a/fixture/CreateDBParameterGroup.yaml b/fixture/CreateDBParameterGroup.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateDBParameterGroup.yaml
@@ -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:
+  ''
diff --git a/fixture/CreateDBParameterGroupResponse.proto b/fixture/CreateDBParameterGroupResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateDBParameterGroupResponse.proto
diff --git a/fixture/CreateDBSubnetGroup.yaml b/fixture/CreateDBSubnetGroup.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateDBSubnetGroup.yaml
@@ -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:
+  ''
diff --git a/fixture/CreateDBSubnetGroupResponse.proto b/fixture/CreateDBSubnetGroupResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateDBSubnetGroupResponse.proto
diff --git a/fixture/CreateEventSubscription.yaml b/fixture/CreateEventSubscription.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateEventSubscription.yaml
@@ -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:
+  ''
diff --git a/fixture/CreateEventSubscriptionResponse.proto b/fixture/CreateEventSubscriptionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateEventSubscriptionResponse.proto
diff --git a/fixture/CreateGlobalCluster.yaml b/fixture/CreateGlobalCluster.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateGlobalCluster.yaml
@@ -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:
+  ''
diff --git a/fixture/CreateGlobalClusterResponse.proto b/fixture/CreateGlobalClusterResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateGlobalClusterResponse.proto
diff --git a/fixture/DeleteDBCluster.yaml b/fixture/DeleteDBCluster.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteDBCluster.yaml
@@ -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:
+  ''
diff --git a/fixture/DeleteDBClusterEndpoint.yaml b/fixture/DeleteDBClusterEndpoint.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteDBClusterEndpoint.yaml
@@ -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:
+  ''
diff --git a/fixture/DeleteDBClusterEndpointResponse.proto b/fixture/DeleteDBClusterEndpointResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteDBClusterEndpointResponse.proto
diff --git a/fixture/DeleteDBClusterParameterGroup.yaml b/fixture/DeleteDBClusterParameterGroup.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteDBClusterParameterGroup.yaml
@@ -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:
+  ''
diff --git a/fixture/DeleteDBClusterParameterGroupResponse.proto b/fixture/DeleteDBClusterParameterGroupResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteDBClusterParameterGroupResponse.proto
diff --git a/fixture/DeleteDBClusterResponse.proto b/fixture/DeleteDBClusterResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteDBClusterResponse.proto
diff --git a/fixture/DeleteDBClusterSnapshot.yaml b/fixture/DeleteDBClusterSnapshot.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteDBClusterSnapshot.yaml
@@ -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:
+  ''
diff --git a/fixture/DeleteDBClusterSnapshotResponse.proto b/fixture/DeleteDBClusterSnapshotResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteDBClusterSnapshotResponse.proto
diff --git a/fixture/DeleteDBInstance.yaml b/fixture/DeleteDBInstance.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteDBInstance.yaml
@@ -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:
+  ''
diff --git a/fixture/DeleteDBInstanceResponse.proto b/fixture/DeleteDBInstanceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteDBInstanceResponse.proto
diff --git a/fixture/DeleteDBParameterGroup.yaml b/fixture/DeleteDBParameterGroup.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteDBParameterGroup.yaml
@@ -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:
+  ''
diff --git a/fixture/DeleteDBParameterGroupResponse.proto b/fixture/DeleteDBParameterGroupResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteDBParameterGroupResponse.proto
diff --git a/fixture/DeleteDBSubnetGroup.yaml b/fixture/DeleteDBSubnetGroup.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteDBSubnetGroup.yaml
@@ -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:
+  ''
diff --git a/fixture/DeleteDBSubnetGroupResponse.proto b/fixture/DeleteDBSubnetGroupResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteDBSubnetGroupResponse.proto
diff --git a/fixture/DeleteEventSubscription.yaml b/fixture/DeleteEventSubscription.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteEventSubscription.yaml
@@ -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:
+  ''
diff --git a/fixture/DeleteEventSubscriptionResponse.proto b/fixture/DeleteEventSubscriptionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteEventSubscriptionResponse.proto
diff --git a/fixture/DeleteGlobalCluster.yaml b/fixture/DeleteGlobalCluster.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteGlobalCluster.yaml
@@ -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:
+  ''
diff --git a/fixture/DeleteGlobalClusterResponse.proto b/fixture/DeleteGlobalClusterResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteGlobalClusterResponse.proto
diff --git a/fixture/DescribeDBClusterEndpoints.yaml b/fixture/DescribeDBClusterEndpoints.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBClusterEndpoints.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeDBClusterEndpointsResponse.proto b/fixture/DescribeDBClusterEndpointsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBClusterEndpointsResponse.proto
diff --git a/fixture/DescribeDBClusterParameterGroups.yaml b/fixture/DescribeDBClusterParameterGroups.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBClusterParameterGroups.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeDBClusterParameterGroupsResponse.proto b/fixture/DescribeDBClusterParameterGroupsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBClusterParameterGroupsResponse.proto
diff --git a/fixture/DescribeDBClusterParameters.yaml b/fixture/DescribeDBClusterParameters.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBClusterParameters.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeDBClusterParametersResponse.proto b/fixture/DescribeDBClusterParametersResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBClusterParametersResponse.proto
diff --git a/fixture/DescribeDBClusterSnapshotAttributes.yaml b/fixture/DescribeDBClusterSnapshotAttributes.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBClusterSnapshotAttributes.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeDBClusterSnapshotAttributesResponse.proto b/fixture/DescribeDBClusterSnapshotAttributesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBClusterSnapshotAttributesResponse.proto
diff --git a/fixture/DescribeDBClusterSnapshots.yaml b/fixture/DescribeDBClusterSnapshots.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBClusterSnapshots.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeDBClusterSnapshotsResponse.proto b/fixture/DescribeDBClusterSnapshotsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBClusterSnapshotsResponse.proto
diff --git a/fixture/DescribeDBClusters.yaml b/fixture/DescribeDBClusters.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBClusters.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeDBClustersResponse.proto b/fixture/DescribeDBClustersResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBClustersResponse.proto
diff --git a/fixture/DescribeDBEngineVersions.yaml b/fixture/DescribeDBEngineVersions.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBEngineVersions.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeDBEngineVersionsResponse.proto b/fixture/DescribeDBEngineVersionsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBEngineVersionsResponse.proto
diff --git a/fixture/DescribeDBInstances.yaml b/fixture/DescribeDBInstances.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBInstances.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeDBInstancesResponse.proto b/fixture/DescribeDBInstancesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBInstancesResponse.proto
diff --git a/fixture/DescribeDBParameterGroups.yaml b/fixture/DescribeDBParameterGroups.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBParameterGroups.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeDBParameterGroupsResponse.proto b/fixture/DescribeDBParameterGroupsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBParameterGroupsResponse.proto
diff --git a/fixture/DescribeDBParameters.yaml b/fixture/DescribeDBParameters.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBParameters.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeDBParametersResponse.proto b/fixture/DescribeDBParametersResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBParametersResponse.proto
diff --git a/fixture/DescribeDBSubnetGroups.yaml b/fixture/DescribeDBSubnetGroups.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBSubnetGroups.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeDBSubnetGroupsResponse.proto b/fixture/DescribeDBSubnetGroupsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeDBSubnetGroupsResponse.proto
diff --git a/fixture/DescribeEngineDefaultClusterParameters.yaml b/fixture/DescribeEngineDefaultClusterParameters.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeEngineDefaultClusterParameters.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeEngineDefaultClusterParametersResponse.proto b/fixture/DescribeEngineDefaultClusterParametersResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeEngineDefaultClusterParametersResponse.proto
diff --git a/fixture/DescribeEngineDefaultParameters.yaml b/fixture/DescribeEngineDefaultParameters.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeEngineDefaultParameters.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeEngineDefaultParametersResponse.proto b/fixture/DescribeEngineDefaultParametersResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeEngineDefaultParametersResponse.proto
diff --git a/fixture/DescribeEventCategories.yaml b/fixture/DescribeEventCategories.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeEventCategories.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeEventCategoriesResponse.proto b/fixture/DescribeEventCategoriesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeEventCategoriesResponse.proto
diff --git a/fixture/DescribeEventSubscriptions.yaml b/fixture/DescribeEventSubscriptions.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeEventSubscriptions.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeEventSubscriptionsResponse.proto b/fixture/DescribeEventSubscriptionsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeEventSubscriptionsResponse.proto
diff --git a/fixture/DescribeEvents.yaml b/fixture/DescribeEvents.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeEvents.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeEventsResponse.proto b/fixture/DescribeEventsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeEventsResponse.proto
diff --git a/fixture/DescribeGlobalClusters.yaml b/fixture/DescribeGlobalClusters.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeGlobalClusters.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeGlobalClustersResponse.proto b/fixture/DescribeGlobalClustersResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeGlobalClustersResponse.proto
diff --git a/fixture/DescribeOrderableDBInstanceOptions.yaml b/fixture/DescribeOrderableDBInstanceOptions.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeOrderableDBInstanceOptions.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeOrderableDBInstanceOptionsResponse.proto b/fixture/DescribeOrderableDBInstanceOptionsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeOrderableDBInstanceOptionsResponse.proto
diff --git a/fixture/DescribePendingMaintenanceActions.yaml b/fixture/DescribePendingMaintenanceActions.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribePendingMaintenanceActions.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribePendingMaintenanceActionsResponse.proto b/fixture/DescribePendingMaintenanceActionsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribePendingMaintenanceActionsResponse.proto
diff --git a/fixture/DescribeValidDBInstanceModifications.yaml b/fixture/DescribeValidDBInstanceModifications.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeValidDBInstanceModifications.yaml
@@ -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:
+  ''
diff --git a/fixture/DescribeValidDBInstanceModificationsResponse.proto b/fixture/DescribeValidDBInstanceModificationsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeValidDBInstanceModificationsResponse.proto
diff --git a/fixture/FailoverDBCluster.yaml b/fixture/FailoverDBCluster.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/FailoverDBCluster.yaml
@@ -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:
+  ''
diff --git a/fixture/FailoverDBClusterResponse.proto b/fixture/FailoverDBClusterResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/FailoverDBClusterResponse.proto
diff --git a/fixture/FailoverGlobalCluster.yaml b/fixture/FailoverGlobalCluster.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/FailoverGlobalCluster.yaml
@@ -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:
+  ''
diff --git a/fixture/FailoverGlobalClusterResponse.proto b/fixture/FailoverGlobalClusterResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/FailoverGlobalClusterResponse.proto
diff --git a/fixture/ListTagsForResource.yaml b/fixture/ListTagsForResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListTagsForResource.yaml
@@ -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:
+  ''
diff --git a/fixture/ListTagsForResourceResponse.proto b/fixture/ListTagsForResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListTagsForResourceResponse.proto
diff --git a/fixture/ModifyDBCluster.yaml b/fixture/ModifyDBCluster.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyDBCluster.yaml
@@ -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:
+  ''
diff --git a/fixture/ModifyDBClusterEndpoint.yaml b/fixture/ModifyDBClusterEndpoint.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyDBClusterEndpoint.yaml
@@ -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:
+  ''
diff --git a/fixture/ModifyDBClusterEndpointResponse.proto b/fixture/ModifyDBClusterEndpointResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyDBClusterEndpointResponse.proto
diff --git a/fixture/ModifyDBClusterParameterGroup.yaml b/fixture/ModifyDBClusterParameterGroup.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyDBClusterParameterGroup.yaml
@@ -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:
+  ''
diff --git a/fixture/ModifyDBClusterParameterGroupResponse.proto b/fixture/ModifyDBClusterParameterGroupResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyDBClusterParameterGroupResponse.proto
diff --git a/fixture/ModifyDBClusterResponse.proto b/fixture/ModifyDBClusterResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyDBClusterResponse.proto
diff --git a/fixture/ModifyDBClusterSnapshotAttribute.yaml b/fixture/ModifyDBClusterSnapshotAttribute.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyDBClusterSnapshotAttribute.yaml
@@ -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:
+  ''
diff --git a/fixture/ModifyDBClusterSnapshotAttributeResponse.proto b/fixture/ModifyDBClusterSnapshotAttributeResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyDBClusterSnapshotAttributeResponse.proto
diff --git a/fixture/ModifyDBInstance.yaml b/fixture/ModifyDBInstance.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyDBInstance.yaml
@@ -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:
+  ''
diff --git a/fixture/ModifyDBInstanceResponse.proto b/fixture/ModifyDBInstanceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyDBInstanceResponse.proto
diff --git a/fixture/ModifyDBParameterGroup.yaml b/fixture/ModifyDBParameterGroup.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyDBParameterGroup.yaml
@@ -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:
+  ''
diff --git a/fixture/ModifyDBParameterGroupResponse.proto b/fixture/ModifyDBParameterGroupResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyDBParameterGroupResponse.proto
diff --git a/fixture/ModifyDBSubnetGroup.yaml b/fixture/ModifyDBSubnetGroup.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyDBSubnetGroup.yaml
@@ -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:
+  ''
diff --git a/fixture/ModifyDBSubnetGroupResponse.proto b/fixture/ModifyDBSubnetGroupResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyDBSubnetGroupResponse.proto
diff --git a/fixture/ModifyEventSubscription.yaml b/fixture/ModifyEventSubscription.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyEventSubscription.yaml
@@ -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:
+  ''
diff --git a/fixture/ModifyEventSubscriptionResponse.proto b/fixture/ModifyEventSubscriptionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyEventSubscriptionResponse.proto
diff --git a/fixture/ModifyGlobalCluster.yaml b/fixture/ModifyGlobalCluster.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyGlobalCluster.yaml
@@ -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:
+  ''
diff --git a/fixture/ModifyGlobalClusterResponse.proto b/fixture/ModifyGlobalClusterResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ModifyGlobalClusterResponse.proto
diff --git a/fixture/PromoteReadReplicaDBCluster.yaml b/fixture/PromoteReadReplicaDBCluster.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/PromoteReadReplicaDBCluster.yaml
@@ -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:
+  ''
diff --git a/fixture/PromoteReadReplicaDBClusterResponse.proto b/fixture/PromoteReadReplicaDBClusterResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/PromoteReadReplicaDBClusterResponse.proto
diff --git a/fixture/RebootDBInstance.yaml b/fixture/RebootDBInstance.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/RebootDBInstance.yaml
@@ -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:
+  ''
diff --git a/fixture/RebootDBInstanceResponse.proto b/fixture/RebootDBInstanceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/RebootDBInstanceResponse.proto
diff --git a/fixture/RemoveFromGlobalCluster.yaml b/fixture/RemoveFromGlobalCluster.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/RemoveFromGlobalCluster.yaml
@@ -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:
+  ''
diff --git a/fixture/RemoveFromGlobalClusterResponse.proto b/fixture/RemoveFromGlobalClusterResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/RemoveFromGlobalClusterResponse.proto
diff --git a/fixture/RemoveRoleFromDBCluster.yaml b/fixture/RemoveRoleFromDBCluster.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/RemoveRoleFromDBCluster.yaml
@@ -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:
+  ''
diff --git a/fixture/RemoveRoleFromDBClusterResponse.proto b/fixture/RemoveRoleFromDBClusterResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/RemoveRoleFromDBClusterResponse.proto
diff --git a/fixture/RemoveSourceIdentifierFromSubscription.yaml b/fixture/RemoveSourceIdentifierFromSubscription.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/RemoveSourceIdentifierFromSubscription.yaml
@@ -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:
+  ''
diff --git a/fixture/RemoveSourceIdentifierFromSubscriptionResponse.proto b/fixture/RemoveSourceIdentifierFromSubscriptionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/RemoveSourceIdentifierFromSubscriptionResponse.proto
diff --git a/fixture/RemoveTagsFromResource.yaml b/fixture/RemoveTagsFromResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/RemoveTagsFromResource.yaml
@@ -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:
+  ''
diff --git a/fixture/RemoveTagsFromResourceResponse.proto b/fixture/RemoveTagsFromResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/RemoveTagsFromResourceResponse.proto
diff --git a/fixture/ResetDBClusterParameterGroup.yaml b/fixture/ResetDBClusterParameterGroup.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ResetDBClusterParameterGroup.yaml
@@ -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:
+  ''
diff --git a/fixture/ResetDBClusterParameterGroupResponse.proto b/fixture/ResetDBClusterParameterGroupResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ResetDBClusterParameterGroupResponse.proto
diff --git a/fixture/ResetDBParameterGroup.yaml b/fixture/ResetDBParameterGroup.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ResetDBParameterGroup.yaml
@@ -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:
+  ''
diff --git a/fixture/ResetDBParameterGroupResponse.proto b/fixture/ResetDBParameterGroupResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ResetDBParameterGroupResponse.proto
diff --git a/fixture/RestoreDBClusterFromSnapshot.yaml b/fixture/RestoreDBClusterFromSnapshot.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/RestoreDBClusterFromSnapshot.yaml
@@ -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:
+  ''
diff --git a/fixture/RestoreDBClusterFromSnapshotResponse.proto b/fixture/RestoreDBClusterFromSnapshotResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/RestoreDBClusterFromSnapshotResponse.proto
diff --git a/fixture/RestoreDBClusterToPointInTime.yaml b/fixture/RestoreDBClusterToPointInTime.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/RestoreDBClusterToPointInTime.yaml
@@ -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:
+  ''
diff --git a/fixture/RestoreDBClusterToPointInTimeResponse.proto b/fixture/RestoreDBClusterToPointInTimeResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/RestoreDBClusterToPointInTimeResponse.proto
diff --git a/fixture/StartDBCluster.yaml b/fixture/StartDBCluster.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/StartDBCluster.yaml
@@ -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:
+  ''
diff --git a/fixture/StartDBClusterResponse.proto b/fixture/StartDBClusterResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/StartDBClusterResponse.proto
diff --git a/fixture/StopDBCluster.yaml b/fixture/StopDBCluster.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/StopDBCluster.yaml
@@ -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:
+  ''
diff --git a/fixture/StopDBClusterResponse.proto b/fixture/StopDBClusterResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/StopDBClusterResponse.proto
diff --git a/gen/Amazonka/Neptune.hs b/gen/Amazonka/Neptune.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune.hs
@@ -0,0 +1,971 @@
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Amazonka.Neptune
+-- 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 Neptune
+--
+-- Amazon Neptune is a fast, reliable, fully-managed graph database service
+-- that makes it easy to build and run applications that work with highly
+-- connected datasets. The core of Amazon Neptune is a purpose-built,
+-- high-performance graph database engine optimized for storing billions of
+-- relationships and querying the graph with milliseconds latency. Amazon
+-- Neptune supports popular graph models Property Graph and W3C\'s RDF, and
+-- their respective query languages Apache TinkerPop Gremlin and SPARQL,
+-- allowing you to easily build queries that efficiently navigate highly
+-- connected datasets. Neptune powers graph use cases such as
+-- recommendation engines, fraud detection, knowledge graphs, drug
+-- discovery, and network security.
+--
+-- This interface reference for Amazon Neptune contains documentation for a
+-- programming or command line interface you can use to manage Amazon
+-- Neptune. Note that Amazon Neptune is asynchronous, which means that some
+-- interfaces might require techniques such as polling or callback
+-- functions to determine when a command has been applied. In this
+-- reference, the parameter descriptions indicate whether a command is
+-- applied immediately, on the next instance reboot, or during the
+-- maintenance window. The reference structure is as follows, and we list
+-- following some related topics from the user guide.
+module Amazonka.Neptune
+  ( -- * Service Configuration
+    defaultService,
+
+    -- * Errors
+    -- $errors
+
+    -- ** AuthorizationNotFoundFault
+    _AuthorizationNotFoundFault,
+
+    -- ** CertificateNotFoundFault
+    _CertificateNotFoundFault,
+
+    -- ** DBClusterAlreadyExistsFault
+    _DBClusterAlreadyExistsFault,
+
+    -- ** DBClusterEndpointAlreadyExistsFault
+    _DBClusterEndpointAlreadyExistsFault,
+
+    -- ** DBClusterEndpointNotFoundFault
+    _DBClusterEndpointNotFoundFault,
+
+    -- ** DBClusterEndpointQuotaExceededFault
+    _DBClusterEndpointQuotaExceededFault,
+
+    -- ** DBClusterNotFoundFault
+    _DBClusterNotFoundFault,
+
+    -- ** DBClusterParameterGroupNotFoundFault
+    _DBClusterParameterGroupNotFoundFault,
+
+    -- ** DBClusterQuotaExceededFault
+    _DBClusterQuotaExceededFault,
+
+    -- ** DBClusterRoleAlreadyExistsFault
+    _DBClusterRoleAlreadyExistsFault,
+
+    -- ** DBClusterRoleNotFoundFault
+    _DBClusterRoleNotFoundFault,
+
+    -- ** DBClusterRoleQuotaExceededFault
+    _DBClusterRoleQuotaExceededFault,
+
+    -- ** 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,
+
+    -- ** DomainNotFoundFault
+    _DomainNotFoundFault,
+
+    -- ** EventSubscriptionQuotaExceededFault
+    _EventSubscriptionQuotaExceededFault,
+
+    -- ** GlobalClusterAlreadyExistsFault
+    _GlobalClusterAlreadyExistsFault,
+
+    -- ** GlobalClusterNotFoundFault
+    _GlobalClusterNotFoundFault,
+
+    -- ** GlobalClusterQuotaExceededFault
+    _GlobalClusterQuotaExceededFault,
+
+    -- ** InstanceQuotaExceededFault
+    _InstanceQuotaExceededFault,
+
+    -- ** InsufficientDBClusterCapacityFault
+    _InsufficientDBClusterCapacityFault,
+
+    -- ** InsufficientDBInstanceCapacityFault
+    _InsufficientDBInstanceCapacityFault,
+
+    -- ** InsufficientStorageClusterCapacityFault
+    _InsufficientStorageClusterCapacityFault,
+
+    -- ** InvalidDBClusterEndpointStateFault
+    _InvalidDBClusterEndpointStateFault,
+
+    -- ** 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,
+
+    -- ** OptionGroupNotFoundFault
+    _OptionGroupNotFoundFault,
+
+    -- ** ProvisionedIopsNotAvailableInAZFault
+    _ProvisionedIopsNotAvailableInAZFault,
+
+    -- ** 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
+
+    -- ** AddRoleToDBCluster
+    AddRoleToDBCluster (AddRoleToDBCluster'),
+    newAddRoleToDBCluster,
+    AddRoleToDBClusterResponse (AddRoleToDBClusterResponse'),
+    newAddRoleToDBClusterResponse,
+
+    -- ** 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,
+
+    -- ** CopyDBParameterGroup
+    CopyDBParameterGroup (CopyDBParameterGroup'),
+    newCopyDBParameterGroup,
+    CopyDBParameterGroupResponse (CopyDBParameterGroupResponse'),
+    newCopyDBParameterGroupResponse,
+
+    -- ** CreateDBCluster
+    CreateDBCluster (CreateDBCluster'),
+    newCreateDBCluster,
+    CreateDBClusterResponse (CreateDBClusterResponse'),
+    newCreateDBClusterResponse,
+
+    -- ** CreateDBClusterEndpoint
+    CreateDBClusterEndpoint (CreateDBClusterEndpoint'),
+    newCreateDBClusterEndpoint,
+    CreateDBClusterEndpointResponse (CreateDBClusterEndpointResponse'),
+    newCreateDBClusterEndpointResponse,
+
+    -- ** CreateDBClusterParameterGroup
+    CreateDBClusterParameterGroup (CreateDBClusterParameterGroup'),
+    newCreateDBClusterParameterGroup,
+    CreateDBClusterParameterGroupResponse (CreateDBClusterParameterGroupResponse'),
+    newCreateDBClusterParameterGroupResponse,
+
+    -- ** CreateDBClusterSnapshot
+    CreateDBClusterSnapshot (CreateDBClusterSnapshot'),
+    newCreateDBClusterSnapshot,
+    CreateDBClusterSnapshotResponse (CreateDBClusterSnapshotResponse'),
+    newCreateDBClusterSnapshotResponse,
+
+    -- ** CreateDBInstance
+    CreateDBInstance (CreateDBInstance'),
+    newCreateDBInstance,
+    CreateDBInstanceResponse (CreateDBInstanceResponse'),
+    newCreateDBInstanceResponse,
+
+    -- ** CreateDBParameterGroup
+    CreateDBParameterGroup (CreateDBParameterGroup'),
+    newCreateDBParameterGroup,
+    CreateDBParameterGroupResponse (CreateDBParameterGroupResponse'),
+    newCreateDBParameterGroupResponse,
+
+    -- ** 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,
+
+    -- ** DeleteDBClusterEndpoint
+    DeleteDBClusterEndpoint (DeleteDBClusterEndpoint'),
+    newDeleteDBClusterEndpoint,
+    DeleteDBClusterEndpointResponse (DeleteDBClusterEndpointResponse'),
+    newDeleteDBClusterEndpointResponse,
+
+    -- ** DeleteDBClusterParameterGroup
+    DeleteDBClusterParameterGroup (DeleteDBClusterParameterGroup'),
+    newDeleteDBClusterParameterGroup,
+    DeleteDBClusterParameterGroupResponse (DeleteDBClusterParameterGroupResponse'),
+    newDeleteDBClusterParameterGroupResponse,
+
+    -- ** DeleteDBClusterSnapshot
+    DeleteDBClusterSnapshot (DeleteDBClusterSnapshot'),
+    newDeleteDBClusterSnapshot,
+    DeleteDBClusterSnapshotResponse (DeleteDBClusterSnapshotResponse'),
+    newDeleteDBClusterSnapshotResponse,
+
+    -- ** DeleteDBInstance
+    DeleteDBInstance (DeleteDBInstance'),
+    newDeleteDBInstance,
+    DeleteDBInstanceResponse (DeleteDBInstanceResponse'),
+    newDeleteDBInstanceResponse,
+
+    -- ** DeleteDBParameterGroup
+    DeleteDBParameterGroup (DeleteDBParameterGroup'),
+    newDeleteDBParameterGroup,
+    DeleteDBParameterGroupResponse (DeleteDBParameterGroupResponse'),
+    newDeleteDBParameterGroupResponse,
+
+    -- ** DeleteDBSubnetGroup
+    DeleteDBSubnetGroup (DeleteDBSubnetGroup'),
+    newDeleteDBSubnetGroup,
+    DeleteDBSubnetGroupResponse (DeleteDBSubnetGroupResponse'),
+    newDeleteDBSubnetGroupResponse,
+
+    -- ** DeleteEventSubscription
+    DeleteEventSubscription (DeleteEventSubscription'),
+    newDeleteEventSubscription,
+    DeleteEventSubscriptionResponse (DeleteEventSubscriptionResponse'),
+    newDeleteEventSubscriptionResponse,
+
+    -- ** DeleteGlobalCluster
+    DeleteGlobalCluster (DeleteGlobalCluster'),
+    newDeleteGlobalCluster,
+    DeleteGlobalClusterResponse (DeleteGlobalClusterResponse'),
+    newDeleteGlobalClusterResponse,
+
+    -- ** DescribeDBClusterEndpoints (Paginated)
+    DescribeDBClusterEndpoints (DescribeDBClusterEndpoints'),
+    newDescribeDBClusterEndpoints,
+    DescribeDBClusterEndpointsResponse (DescribeDBClusterEndpointsResponse'),
+    newDescribeDBClusterEndpointsResponse,
+
+    -- ** 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,
+
+    -- ** DescribeDBParameterGroups (Paginated)
+    DescribeDBParameterGroups (DescribeDBParameterGroups'),
+    newDescribeDBParameterGroups,
+    DescribeDBParameterGroupsResponse (DescribeDBParameterGroupsResponse'),
+    newDescribeDBParameterGroupsResponse,
+
+    -- ** DescribeDBParameters (Paginated)
+    DescribeDBParameters (DescribeDBParameters'),
+    newDescribeDBParameters,
+    DescribeDBParametersResponse (DescribeDBParametersResponse'),
+    newDescribeDBParametersResponse,
+
+    -- ** DescribeDBSubnetGroups (Paginated)
+    DescribeDBSubnetGroups (DescribeDBSubnetGroups'),
+    newDescribeDBSubnetGroups,
+    DescribeDBSubnetGroupsResponse (DescribeDBSubnetGroupsResponse'),
+    newDescribeDBSubnetGroupsResponse,
+
+    -- ** DescribeEngineDefaultClusterParameters
+    DescribeEngineDefaultClusterParameters (DescribeEngineDefaultClusterParameters'),
+    newDescribeEngineDefaultClusterParameters,
+    DescribeEngineDefaultClusterParametersResponse (DescribeEngineDefaultClusterParametersResponse'),
+    newDescribeEngineDefaultClusterParametersResponse,
+
+    -- ** DescribeEngineDefaultParameters (Paginated)
+    DescribeEngineDefaultParameters (DescribeEngineDefaultParameters'),
+    newDescribeEngineDefaultParameters,
+    DescribeEngineDefaultParametersResponse (DescribeEngineDefaultParametersResponse'),
+    newDescribeEngineDefaultParametersResponse,
+
+    -- ** 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,
+
+    -- ** DescribeValidDBInstanceModifications
+    DescribeValidDBInstanceModifications (DescribeValidDBInstanceModifications'),
+    newDescribeValidDBInstanceModifications,
+    DescribeValidDBInstanceModificationsResponse (DescribeValidDBInstanceModificationsResponse'),
+    newDescribeValidDBInstanceModificationsResponse,
+
+    -- ** FailoverDBCluster
+    FailoverDBCluster (FailoverDBCluster'),
+    newFailoverDBCluster,
+    FailoverDBClusterResponse (FailoverDBClusterResponse'),
+    newFailoverDBClusterResponse,
+
+    -- ** FailoverGlobalCluster
+    FailoverGlobalCluster (FailoverGlobalCluster'),
+    newFailoverGlobalCluster,
+    FailoverGlobalClusterResponse (FailoverGlobalClusterResponse'),
+    newFailoverGlobalClusterResponse,
+
+    -- ** ListTagsForResource
+    ListTagsForResource (ListTagsForResource'),
+    newListTagsForResource,
+    ListTagsForResourceResponse (ListTagsForResourceResponse'),
+    newListTagsForResourceResponse,
+
+    -- ** ModifyDBCluster
+    ModifyDBCluster (ModifyDBCluster'),
+    newModifyDBCluster,
+    ModifyDBClusterResponse (ModifyDBClusterResponse'),
+    newModifyDBClusterResponse,
+
+    -- ** ModifyDBClusterEndpoint
+    ModifyDBClusterEndpoint (ModifyDBClusterEndpoint'),
+    newModifyDBClusterEndpoint,
+    ModifyDBClusterEndpointResponse (ModifyDBClusterEndpointResponse'),
+    newModifyDBClusterEndpointResponse,
+
+    -- ** ModifyDBClusterParameterGroup
+    ModifyDBClusterParameterGroup (ModifyDBClusterParameterGroup'),
+    newModifyDBClusterParameterGroup,
+    DBClusterParameterGroupNameMessage (DBClusterParameterGroupNameMessage'),
+    newDBClusterParameterGroupNameMessage,
+
+    -- ** ModifyDBClusterSnapshotAttribute
+    ModifyDBClusterSnapshotAttribute (ModifyDBClusterSnapshotAttribute'),
+    newModifyDBClusterSnapshotAttribute,
+    ModifyDBClusterSnapshotAttributeResponse (ModifyDBClusterSnapshotAttributeResponse'),
+    newModifyDBClusterSnapshotAttributeResponse,
+
+    -- ** ModifyDBInstance
+    ModifyDBInstance (ModifyDBInstance'),
+    newModifyDBInstance,
+    ModifyDBInstanceResponse (ModifyDBInstanceResponse'),
+    newModifyDBInstanceResponse,
+
+    -- ** ModifyDBParameterGroup
+    ModifyDBParameterGroup (ModifyDBParameterGroup'),
+    newModifyDBParameterGroup,
+    DBParameterGroupNameMessage (DBParameterGroupNameMessage'),
+    newDBParameterGroupNameMessage,
+
+    -- ** ModifyDBSubnetGroup
+    ModifyDBSubnetGroup (ModifyDBSubnetGroup'),
+    newModifyDBSubnetGroup,
+    ModifyDBSubnetGroupResponse (ModifyDBSubnetGroupResponse'),
+    newModifyDBSubnetGroupResponse,
+
+    -- ** ModifyEventSubscription
+    ModifyEventSubscription (ModifyEventSubscription'),
+    newModifyEventSubscription,
+    ModifyEventSubscriptionResponse (ModifyEventSubscriptionResponse'),
+    newModifyEventSubscriptionResponse,
+
+    -- ** ModifyGlobalCluster
+    ModifyGlobalCluster (ModifyGlobalCluster'),
+    newModifyGlobalCluster,
+    ModifyGlobalClusterResponse (ModifyGlobalClusterResponse'),
+    newModifyGlobalClusterResponse,
+
+    -- ** PromoteReadReplicaDBCluster
+    PromoteReadReplicaDBCluster (PromoteReadReplicaDBCluster'),
+    newPromoteReadReplicaDBCluster,
+    PromoteReadReplicaDBClusterResponse (PromoteReadReplicaDBClusterResponse'),
+    newPromoteReadReplicaDBClusterResponse,
+
+    -- ** RebootDBInstance
+    RebootDBInstance (RebootDBInstance'),
+    newRebootDBInstance,
+    RebootDBInstanceResponse (RebootDBInstanceResponse'),
+    newRebootDBInstanceResponse,
+
+    -- ** RemoveFromGlobalCluster
+    RemoveFromGlobalCluster (RemoveFromGlobalCluster'),
+    newRemoveFromGlobalCluster,
+    RemoveFromGlobalClusterResponse (RemoveFromGlobalClusterResponse'),
+    newRemoveFromGlobalClusterResponse,
+
+    -- ** RemoveRoleFromDBCluster
+    RemoveRoleFromDBCluster (RemoveRoleFromDBCluster'),
+    newRemoveRoleFromDBCluster,
+    RemoveRoleFromDBClusterResponse (RemoveRoleFromDBClusterResponse'),
+    newRemoveRoleFromDBClusterResponse,
+
+    -- ** RemoveSourceIdentifierFromSubscription
+    RemoveSourceIdentifierFromSubscription (RemoveSourceIdentifierFromSubscription'),
+    newRemoveSourceIdentifierFromSubscription,
+    RemoveSourceIdentifierFromSubscriptionResponse (RemoveSourceIdentifierFromSubscriptionResponse'),
+    newRemoveSourceIdentifierFromSubscriptionResponse,
+
+    -- ** RemoveTagsFromResource
+    RemoveTagsFromResource (RemoveTagsFromResource'),
+    newRemoveTagsFromResource,
+    RemoveTagsFromResourceResponse (RemoveTagsFromResourceResponse'),
+    newRemoveTagsFromResourceResponse,
+
+    -- ** ResetDBClusterParameterGroup
+    ResetDBClusterParameterGroup (ResetDBClusterParameterGroup'),
+    newResetDBClusterParameterGroup,
+    DBClusterParameterGroupNameMessage (DBClusterParameterGroupNameMessage'),
+    newDBClusterParameterGroupNameMessage,
+
+    -- ** ResetDBParameterGroup
+    ResetDBParameterGroup (ResetDBParameterGroup'),
+    newResetDBParameterGroup,
+    DBParameterGroupNameMessage (DBParameterGroupNameMessage'),
+    newDBParameterGroupNameMessage,
+
+    -- ** 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,
+
+    -- ** CharacterSet
+    CharacterSet (CharacterSet'),
+    newCharacterSet,
+
+    -- ** CloudwatchLogsExportConfiguration
+    CloudwatchLogsExportConfiguration (CloudwatchLogsExportConfiguration'),
+    newCloudwatchLogsExportConfiguration,
+
+    -- ** DBCluster
+    DBCluster (DBCluster'),
+    newDBCluster,
+
+    -- ** DBClusterEndpoint
+    DBClusterEndpoint (DBClusterEndpoint'),
+    newDBClusterEndpoint,
+
+    -- ** DBClusterMember
+    DBClusterMember (DBClusterMember'),
+    newDBClusterMember,
+
+    -- ** DBClusterOptionGroupStatus
+    DBClusterOptionGroupStatus (DBClusterOptionGroupStatus'),
+    newDBClusterOptionGroupStatus,
+
+    -- ** 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,
+
+    -- ** DBParameterGroup
+    DBParameterGroup (DBParameterGroup'),
+    newDBParameterGroup,
+
+    -- ** DBParameterGroupNameMessage
+    DBParameterGroupNameMessage (DBParameterGroupNameMessage'),
+    newDBParameterGroupNameMessage,
+
+    -- ** DBParameterGroupStatus
+    DBParameterGroupStatus (DBParameterGroupStatus'),
+    newDBParameterGroupStatus,
+
+    -- ** DBSecurityGroupMembership
+    DBSecurityGroupMembership (DBSecurityGroupMembership'),
+    newDBSecurityGroupMembership,
+
+    -- ** DBSubnetGroup
+    DBSubnetGroup (DBSubnetGroup'),
+    newDBSubnetGroup,
+
+    -- ** DomainMembership
+    DomainMembership (DomainMembership'),
+    newDomainMembership,
+
+    -- ** DoubleRange
+    DoubleRange (DoubleRange'),
+    newDoubleRange,
+
+    -- ** 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,
+
+    -- ** OptionGroupMembership
+    OptionGroupMembership (OptionGroupMembership'),
+    newOptionGroupMembership,
+
+    -- ** OrderableDBInstanceOption
+    OrderableDBInstanceOption (OrderableDBInstanceOption'),
+    newOrderableDBInstanceOption,
+
+    -- ** Parameter
+    Parameter (Parameter'),
+    newParameter,
+
+    -- ** PendingCloudwatchLogsExports
+    PendingCloudwatchLogsExports (PendingCloudwatchLogsExports'),
+    newPendingCloudwatchLogsExports,
+
+    -- ** PendingMaintenanceAction
+    PendingMaintenanceAction (PendingMaintenanceAction'),
+    newPendingMaintenanceAction,
+
+    -- ** PendingModifiedValues
+    PendingModifiedValues (PendingModifiedValues'),
+    newPendingModifiedValues,
+
+    -- ** Range
+    Range (Range'),
+    newRange,
+
+    -- ** ResourcePendingMaintenanceActions
+    ResourcePendingMaintenanceActions (ResourcePendingMaintenanceActions'),
+    newResourcePendingMaintenanceActions,
+
+    -- ** ServerlessV2ScalingConfiguration
+    ServerlessV2ScalingConfiguration (ServerlessV2ScalingConfiguration'),
+    newServerlessV2ScalingConfiguration,
+
+    -- ** ServerlessV2ScalingConfigurationInfo
+    ServerlessV2ScalingConfigurationInfo (ServerlessV2ScalingConfigurationInfo'),
+    newServerlessV2ScalingConfigurationInfo,
+
+    -- ** Subnet
+    Subnet (Subnet'),
+    newSubnet,
+
+    -- ** Tag
+    Tag (Tag'),
+    newTag,
+
+    -- ** Timezone
+    Timezone (Timezone'),
+    newTimezone,
+
+    -- ** UpgradeTarget
+    UpgradeTarget (UpgradeTarget'),
+    newUpgradeTarget,
+
+    -- ** ValidDBInstanceModificationsMessage
+    ValidDBInstanceModificationsMessage (ValidDBInstanceModificationsMessage'),
+    newValidDBInstanceModificationsMessage,
+
+    -- ** ValidStorageOptions
+    ValidStorageOptions (ValidStorageOptions'),
+    newValidStorageOptions,
+
+    -- ** VpcSecurityGroupMembership
+    VpcSecurityGroupMembership (VpcSecurityGroupMembership'),
+    newVpcSecurityGroupMembership,
+  )
+where
+
+import Amazonka.Neptune.AddRoleToDBCluster
+import Amazonka.Neptune.AddSourceIdentifierToSubscription
+import Amazonka.Neptune.AddTagsToResource
+import Amazonka.Neptune.ApplyPendingMaintenanceAction
+import Amazonka.Neptune.CopyDBClusterParameterGroup
+import Amazonka.Neptune.CopyDBClusterSnapshot
+import Amazonka.Neptune.CopyDBParameterGroup
+import Amazonka.Neptune.CreateDBCluster
+import Amazonka.Neptune.CreateDBClusterEndpoint
+import Amazonka.Neptune.CreateDBClusterParameterGroup
+import Amazonka.Neptune.CreateDBClusterSnapshot
+import Amazonka.Neptune.CreateDBInstance
+import Amazonka.Neptune.CreateDBParameterGroup
+import Amazonka.Neptune.CreateDBSubnetGroup
+import Amazonka.Neptune.CreateEventSubscription
+import Amazonka.Neptune.CreateGlobalCluster
+import Amazonka.Neptune.DeleteDBCluster
+import Amazonka.Neptune.DeleteDBClusterEndpoint
+import Amazonka.Neptune.DeleteDBClusterParameterGroup
+import Amazonka.Neptune.DeleteDBClusterSnapshot
+import Amazonka.Neptune.DeleteDBInstance
+import Amazonka.Neptune.DeleteDBParameterGroup
+import Amazonka.Neptune.DeleteDBSubnetGroup
+import Amazonka.Neptune.DeleteEventSubscription
+import Amazonka.Neptune.DeleteGlobalCluster
+import Amazonka.Neptune.DescribeDBClusterEndpoints
+import Amazonka.Neptune.DescribeDBClusterParameterGroups
+import Amazonka.Neptune.DescribeDBClusterParameters
+import Amazonka.Neptune.DescribeDBClusterSnapshotAttributes
+import Amazonka.Neptune.DescribeDBClusterSnapshots
+import Amazonka.Neptune.DescribeDBClusters
+import Amazonka.Neptune.DescribeDBEngineVersions
+import Amazonka.Neptune.DescribeDBInstances
+import Amazonka.Neptune.DescribeDBParameterGroups
+import Amazonka.Neptune.DescribeDBParameters
+import Amazonka.Neptune.DescribeDBSubnetGroups
+import Amazonka.Neptune.DescribeEngineDefaultClusterParameters
+import Amazonka.Neptune.DescribeEngineDefaultParameters
+import Amazonka.Neptune.DescribeEventCategories
+import Amazonka.Neptune.DescribeEventSubscriptions
+import Amazonka.Neptune.DescribeEvents
+import Amazonka.Neptune.DescribeGlobalClusters
+import Amazonka.Neptune.DescribeOrderableDBInstanceOptions
+import Amazonka.Neptune.DescribePendingMaintenanceActions
+import Amazonka.Neptune.DescribeValidDBInstanceModifications
+import Amazonka.Neptune.FailoverDBCluster
+import Amazonka.Neptune.FailoverGlobalCluster
+import Amazonka.Neptune.Lens
+import Amazonka.Neptune.ListTagsForResource
+import Amazonka.Neptune.ModifyDBCluster
+import Amazonka.Neptune.ModifyDBClusterEndpoint
+import Amazonka.Neptune.ModifyDBClusterParameterGroup
+import Amazonka.Neptune.ModifyDBClusterSnapshotAttribute
+import Amazonka.Neptune.ModifyDBInstance
+import Amazonka.Neptune.ModifyDBParameterGroup
+import Amazonka.Neptune.ModifyDBSubnetGroup
+import Amazonka.Neptune.ModifyEventSubscription
+import Amazonka.Neptune.ModifyGlobalCluster
+import Amazonka.Neptune.PromoteReadReplicaDBCluster
+import Amazonka.Neptune.RebootDBInstance
+import Amazonka.Neptune.RemoveFromGlobalCluster
+import Amazonka.Neptune.RemoveRoleFromDBCluster
+import Amazonka.Neptune.RemoveSourceIdentifierFromSubscription
+import Amazonka.Neptune.RemoveTagsFromResource
+import Amazonka.Neptune.ResetDBClusterParameterGroup
+import Amazonka.Neptune.ResetDBParameterGroup
+import Amazonka.Neptune.RestoreDBClusterFromSnapshot
+import Amazonka.Neptune.RestoreDBClusterToPointInTime
+import Amazonka.Neptune.StartDBCluster
+import Amazonka.Neptune.StopDBCluster
+import Amazonka.Neptune.Types
+import Amazonka.Neptune.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 'Neptune'.
+
+-- $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.
diff --git a/gen/Amazonka/Neptune/AddRoleToDBCluster.hs b/gen/Amazonka/Neptune/AddRoleToDBCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/AddRoleToDBCluster.hs
@@ -0,0 +1,166 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.AddRoleToDBCluster
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Associates an Identity and Access Management (IAM) role with an Neptune
+-- DB cluster.
+module Amazonka.Neptune.AddRoleToDBCluster
+  ( -- * Creating a Request
+    AddRoleToDBCluster (..),
+    newAddRoleToDBCluster,
+
+    -- * Request Lenses
+    addRoleToDBCluster_featureName,
+    addRoleToDBCluster_dbClusterIdentifier,
+    addRoleToDBCluster_roleArn,
+
+    -- * Destructuring the Response
+    AddRoleToDBClusterResponse (..),
+    newAddRoleToDBClusterResponse,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newAddRoleToDBCluster' smart constructor.
+data AddRoleToDBCluster = AddRoleToDBCluster'
+  { -- | The name of the feature for the Neptune DB cluster that the IAM role is
+    -- to be associated with. For the list of supported feature names, see
+    -- <neptune/latest/userguide/api-other-apis.html#DBEngineVersion DBEngineVersion>.
+    featureName :: Prelude.Maybe Prelude.Text,
+    -- | The name of the DB cluster to associate the IAM role with.
+    dbClusterIdentifier :: Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the IAM role to associate with the
+    -- Neptune DB cluster, for example
+    -- @arn:aws:iam::123456789012:role\/NeptuneAccessRole@.
+    roleArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AddRoleToDBCluster' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'featureName', 'addRoleToDBCluster_featureName' - The name of the feature for the Neptune DB cluster that the IAM role is
+-- to be associated with. For the list of supported feature names, see
+-- <neptune/latest/userguide/api-other-apis.html#DBEngineVersion DBEngineVersion>.
+--
+-- 'dbClusterIdentifier', 'addRoleToDBCluster_dbClusterIdentifier' - The name of the DB cluster to associate the IAM role with.
+--
+-- 'roleArn', 'addRoleToDBCluster_roleArn' - The Amazon Resource Name (ARN) of the IAM role to associate with the
+-- Neptune DB cluster, for example
+-- @arn:aws:iam::123456789012:role\/NeptuneAccessRole@.
+newAddRoleToDBCluster ::
+  -- | 'dbClusterIdentifier'
+  Prelude.Text ->
+  -- | 'roleArn'
+  Prelude.Text ->
+  AddRoleToDBCluster
+newAddRoleToDBCluster pDBClusterIdentifier_ pRoleArn_ =
+  AddRoleToDBCluster'
+    { featureName = Prelude.Nothing,
+      dbClusterIdentifier = pDBClusterIdentifier_,
+      roleArn = pRoleArn_
+    }
+
+-- | The name of the feature for the Neptune DB cluster that the IAM role is
+-- to be associated with. For the list of supported feature names, see
+-- <neptune/latest/userguide/api-other-apis.html#DBEngineVersion DBEngineVersion>.
+addRoleToDBCluster_featureName :: Lens.Lens' AddRoleToDBCluster (Prelude.Maybe Prelude.Text)
+addRoleToDBCluster_featureName = Lens.lens (\AddRoleToDBCluster' {featureName} -> featureName) (\s@AddRoleToDBCluster' {} a -> s {featureName = a} :: AddRoleToDBCluster)
+
+-- | The name of the DB cluster to associate the IAM role with.
+addRoleToDBCluster_dbClusterIdentifier :: Lens.Lens' AddRoleToDBCluster Prelude.Text
+addRoleToDBCluster_dbClusterIdentifier = Lens.lens (\AddRoleToDBCluster' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@AddRoleToDBCluster' {} a -> s {dbClusterIdentifier = a} :: AddRoleToDBCluster)
+
+-- | The Amazon Resource Name (ARN) of the IAM role to associate with the
+-- Neptune DB cluster, for example
+-- @arn:aws:iam::123456789012:role\/NeptuneAccessRole@.
+addRoleToDBCluster_roleArn :: Lens.Lens' AddRoleToDBCluster Prelude.Text
+addRoleToDBCluster_roleArn = Lens.lens (\AddRoleToDBCluster' {roleArn} -> roleArn) (\s@AddRoleToDBCluster' {} a -> s {roleArn = a} :: AddRoleToDBCluster)
+
+instance Core.AWSRequest AddRoleToDBCluster where
+  type
+    AWSResponse AddRoleToDBCluster =
+      AddRoleToDBClusterResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveNull AddRoleToDBClusterResponse'
+
+instance Prelude.Hashable AddRoleToDBCluster where
+  hashWithSalt _salt AddRoleToDBCluster' {..} =
+    _salt
+      `Prelude.hashWithSalt` featureName
+      `Prelude.hashWithSalt` dbClusterIdentifier
+      `Prelude.hashWithSalt` roleArn
+
+instance Prelude.NFData AddRoleToDBCluster where
+  rnf AddRoleToDBCluster' {..} =
+    Prelude.rnf featureName
+      `Prelude.seq` Prelude.rnf dbClusterIdentifier
+      `Prelude.seq` Prelude.rnf roleArn
+
+instance Data.ToHeaders AddRoleToDBCluster where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath AddRoleToDBCluster where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery AddRoleToDBCluster where
+  toQuery AddRoleToDBCluster' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ("AddRoleToDBCluster" :: Prelude.ByteString),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "FeatureName" Data.=: featureName,
+        "DBClusterIdentifier" Data.=: dbClusterIdentifier,
+        "RoleArn" Data.=: roleArn
+      ]
+
+-- | /See:/ 'newAddRoleToDBClusterResponse' smart constructor.
+data AddRoleToDBClusterResponse = AddRoleToDBClusterResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AddRoleToDBClusterResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newAddRoleToDBClusterResponse ::
+  AddRoleToDBClusterResponse
+newAddRoleToDBClusterResponse =
+  AddRoleToDBClusterResponse'
+
+instance Prelude.NFData AddRoleToDBClusterResponse where
+  rnf _ = ()
diff --git a/gen/Amazonka/Neptune/AddSourceIdentifierToSubscription.hs b/gen/Amazonka/Neptune/AddSourceIdentifierToSubscription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/AddSourceIdentifierToSubscription.hs
@@ -0,0 +1,249 @@
+{-# 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.Neptune.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.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newAddSourceIdentifierToSubscription' smart constructor.
+data AddSourceIdentifierToSubscription = AddSourceIdentifierToSubscription'
+  { -- | The name of the event notification subscription you want to add a source
+    -- identifier to.
+    subscriptionName :: Prelude.Text,
+    -- | The identifier of the event source to be added.
+    --
+    -- Constraints:
+    --
+    -- -   If the source type is a DB instance, then a @DBInstanceIdentifier@
+    --     must be supplied.
+    --
+    -- -   If the source type is a DB security group, a @DBSecurityGroupName@
+    --     must be supplied.
+    --
+    -- -   If the source type is a DB parameter group, a @DBParameterGroupName@
+    --     must be supplied.
+    --
+    -- -   If the source type is a DB snapshot, a @DBSnapshotIdentifier@ must
+    --     be supplied.
+    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 event notification subscription you want to add a source
+-- identifier to.
+--
+-- 'sourceIdentifier', 'addSourceIdentifierToSubscription_sourceIdentifier' - The identifier of the event source to be added.
+--
+-- Constraints:
+--
+-- -   If the source type is a DB instance, then a @DBInstanceIdentifier@
+--     must be supplied.
+--
+-- -   If the source type is a DB security group, a @DBSecurityGroupName@
+--     must be supplied.
+--
+-- -   If the source type is a DB parameter group, a @DBParameterGroupName@
+--     must be supplied.
+--
+-- -   If the source type is a DB snapshot, a @DBSnapshotIdentifier@ must
+--     be supplied.
+newAddSourceIdentifierToSubscription ::
+  -- | 'subscriptionName'
+  Prelude.Text ->
+  -- | 'sourceIdentifier'
+  Prelude.Text ->
+  AddSourceIdentifierToSubscription
+newAddSourceIdentifierToSubscription
+  pSubscriptionName_
+  pSourceIdentifier_ =
+    AddSourceIdentifierToSubscription'
+      { subscriptionName =
+          pSubscriptionName_,
+        sourceIdentifier = pSourceIdentifier_
+      }
+
+-- | The name of the event notification subscription 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.
+--
+-- Constraints:
+--
+-- -   If the source type is a DB instance, then a @DBInstanceIdentifier@
+--     must be supplied.
+--
+-- -   If the source type is a DB security group, a @DBSecurityGroupName@
+--     must be supplied.
+--
+-- -   If the source type is a DB parameter group, a @DBParameterGroupName@
+--     must be supplied.
+--
+-- -   If the source type is a DB snapshot, a @DBSnapshotIdentifier@ must
+--     be supplied.
+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
diff --git a/gen/Amazonka/Neptune/AddTagsToResource.hs b/gen/Amazonka/Neptune/AddTagsToResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/AddTagsToResource.hs
@@ -0,0 +1,147 @@
+{-# 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.Neptune.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 Neptune resource. These tags can also be
+-- used with cost allocation reporting to track cost associated with Amazon
+-- Neptune resources, or used in a Condition statement in an IAM policy for
+-- Amazon Neptune.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newAddTagsToResource' smart constructor.
+data AddTagsToResource = AddTagsToResource'
+  { -- | The Amazon Neptune resource that the tags are added to. This value is an
+    -- Amazon Resource Name (ARN). For information about creating an ARN, see
+    -- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing an Amazon Resource Name (ARN)>.
+    resourceName :: Prelude.Text,
+    -- | The tags to be assigned to the Amazon Neptune 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 Neptune resource that the tags are added to. This value is an
+-- Amazon Resource Name (ARN). For information about creating an ARN, see
+-- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing an Amazon Resource Name (ARN)>.
+--
+-- 'tags', 'addTagsToResource_tags' - The tags to be assigned to the Amazon Neptune resource.
+newAddTagsToResource ::
+  -- | 'resourceName'
+  Prelude.Text ->
+  AddTagsToResource
+newAddTagsToResource pResourceName_ =
+  AddTagsToResource'
+    { resourceName = pResourceName_,
+      tags = Prelude.mempty
+    }
+
+-- | The Amazon Neptune resource that the tags are added to. This value is an
+-- Amazon Resource Name (ARN). For information about creating an ARN, see
+-- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing an Amazon Resource Name (ARN)>.
+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 Neptune 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 _ = ()
diff --git a/gen/Amazonka/Neptune/ApplyPendingMaintenanceAction.hs b/gen/Amazonka/Neptune/ApplyPendingMaintenanceAction.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/ApplyPendingMaintenanceAction.hs
@@ -0,0 +1,254 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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 a DB
+-- instance).
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newApplyPendingMaintenanceAction' smart constructor.
+data ApplyPendingMaintenanceAction = ApplyPendingMaintenanceAction'
+  { -- | The Amazon Resource Name (ARN) of the resource that the pending
+    -- maintenance action applies to. For information about creating an ARN,
+    -- see
+    -- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing an Amazon Resource Name (ARN)>.
+    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. For information about creating an ARN,
+-- see
+-- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing an Amazon Resource Name (ARN)>.
+--
+-- '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. For information about creating an ARN,
+-- see
+-- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing an Amazon Resource Name (ARN)>.
+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
diff --git a/gen/Amazonka/Neptune/CopyDBClusterParameterGroup.hs b/gen/Amazonka/Neptune/CopyDBClusterParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/CopyDBClusterParameterGroup.hs
@@ -0,0 +1,301 @@
+{-# 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.Neptune.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 DB cluster parameter group.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCopyDBClusterParameterGroup' smart constructor.
+data CopyDBClusterParameterGroup = CopyDBClusterParameterGroup'
+  { -- | The tags to be assigned to the copied DB cluster parameter group.
+    tags :: Prelude.Maybe [Tag],
+    -- | The identifier or Amazon Resource Name (ARN) for the source DB cluster
+    -- parameter group. For information about creating an ARN, see
+    -- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing an Amazon Resource Name (ARN)>.
+    --
+    -- Constraints:
+    --
+    -- -   Must specify a valid DB cluster parameter group.
+    --
+    -- -   If the source DB cluster parameter group is in the same Amazon
+    --     Region as the copy, specify a valid DB parameter group identifier,
+    --     for example @my-db-cluster-param-group@, or a valid ARN.
+    --
+    -- -   If the source DB parameter group is in a different Amazon Region
+    --     than the copy, specify a valid DB cluster parameter group ARN, for
+    --     example
+    --     @arn:aws:rds:us-east-1:123456789012:cluster-pg:custom-cluster-group1@.
+    sourceDBClusterParameterGroupIdentifier :: Prelude.Text,
+    -- | The identifier for the copied DB cluster parameter group.
+    --
+    -- Constraints:
+    --
+    -- -   Cannot be null, empty, or blank
+    --
+    -- -   Must contain from 1 to 255 letters, numbers, or hyphens
+    --
+    -- -   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 DB 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 to be assigned to the copied DB cluster parameter group.
+--
+-- 'sourceDBClusterParameterGroupIdentifier', 'copyDBClusterParameterGroup_sourceDBClusterParameterGroupIdentifier' - The identifier or Amazon Resource Name (ARN) for the source DB cluster
+-- parameter group. For information about creating an ARN, see
+-- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing an Amazon Resource Name (ARN)>.
+--
+-- Constraints:
+--
+-- -   Must specify a valid DB cluster parameter group.
+--
+-- -   If the source DB cluster parameter group is in the same Amazon
+--     Region as the copy, specify a valid DB parameter group identifier,
+--     for example @my-db-cluster-param-group@, or a valid ARN.
+--
+-- -   If the source DB parameter group is in a different Amazon Region
+--     than the copy, specify a valid DB cluster parameter group ARN, for
+--     example
+--     @arn:aws:rds:us-east-1:123456789012:cluster-pg:custom-cluster-group1@.
+--
+-- 'targetDBClusterParameterGroupIdentifier', 'copyDBClusterParameterGroup_targetDBClusterParameterGroupIdentifier' - The identifier for the copied DB cluster parameter group.
+--
+-- Constraints:
+--
+-- -   Cannot be null, empty, or blank
+--
+-- -   Must contain from 1 to 255 letters, numbers, or hyphens
+--
+-- -   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 DB 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 to be assigned to the copied DB cluster 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 DB cluster
+-- parameter group. For information about creating an ARN, see
+-- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing an Amazon Resource Name (ARN)>.
+--
+-- Constraints:
+--
+-- -   Must specify a valid DB cluster parameter group.
+--
+-- -   If the source DB cluster parameter group is in the same Amazon
+--     Region as the copy, specify a valid DB parameter group identifier,
+--     for example @my-db-cluster-param-group@, or a valid ARN.
+--
+-- -   If the source DB parameter group is in a different Amazon Region
+--     than the copy, specify a valid DB cluster parameter group ARN, for
+--     example
+--     @arn:aws:rds:us-east-1:123456789012:cluster-pg:custom-cluster-group1@.
+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 DB cluster parameter group.
+--
+-- Constraints:
+--
+-- -   Cannot be null, empty, or blank
+--
+-- -   Must contain from 1 to 255 letters, numbers, or hyphens
+--
+-- -   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 DB 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
diff --git a/gen/Amazonka/Neptune/CopyDBClusterSnapshot.hs b/gen/Amazonka/Neptune/CopyDBClusterSnapshot.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/CopyDBClusterSnapshot.hs
@@ -0,0 +1,359 @@
+{-# 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.Neptune.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 DB cluster.
+--
+-- To copy a DB cluster snapshot from a shared manual DB cluster snapshot,
+-- @SourceDBClusterSnapshotIdentifier@ must be the Amazon Resource Name
+-- (ARN) of the shared DB cluster snapshot.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCopyDBClusterSnapshot' smart constructor.
+data CopyDBClusterSnapshot = CopyDBClusterSnapshot'
+  { -- | True to copy all tags from the source DB cluster snapshot to the target
+    -- DB cluster snapshot, and otherwise false. The default is false.
+    copyTags :: Prelude.Maybe Prelude.Bool,
+    -- | The Amazon Amazon KMS key ID for an encrypted DB 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 DB cluster snapshot from your Amazon 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 DB cluster snapshot is encrypted with the same KMS key
+    -- as the source DB cluster snapshot.
+    --
+    -- If you copy an encrypted DB cluster snapshot that is shared from another
+    -- Amazon account, then you must specify a value for @KmsKeyId@.
+    --
+    -- KMS encryption keys are specific to the Amazon Region that they are
+    -- created in, and you can\'t use encryption keys from one Amazon Region in
+    -- another Amazon Region.
+    --
+    -- You cannot encrypt an unencrypted DB cluster snapshot when you copy it.
+    -- If you try to copy an unencrypted DB cluster snapshot and specify a
+    -- value for the KmsKeyId parameter, an error is returned.
+    kmsKeyId :: Prelude.Maybe Prelude.Text,
+    -- | Not currently supported.
+    preSignedUrl :: Prelude.Maybe Prelude.Text,
+    -- | The tags to assign to the new DB cluster snapshot copy.
+    tags :: Prelude.Maybe [Tag],
+    -- | The identifier of the DB cluster snapshot to copy. This parameter is not
+    -- case-sensitive.
+    --
+    -- Constraints:
+    --
+    -- -   Must specify a valid system snapshot in the \"available\" state.
+    --
+    -- -   Specify a valid DB snapshot identifier.
+    --
+    -- Example: @my-cluster-snapshot1@
+    sourceDBClusterSnapshotIdentifier :: Prelude.Text,
+    -- | The identifier of the new DB cluster snapshot to create from the source
+    -- DB cluster snapshot. This parameter is not case-sensitive.
+    --
+    -- Constraints:
+    --
+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens.
+    --
+    -- -   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' - True to copy all tags from the source DB cluster snapshot to the target
+-- DB cluster snapshot, and otherwise false. The default is false.
+--
+-- 'kmsKeyId', 'copyDBClusterSnapshot_kmsKeyId' - The Amazon Amazon KMS key ID for an encrypted DB 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 DB cluster snapshot from your Amazon 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 DB cluster snapshot is encrypted with the same KMS key
+-- as the source DB cluster snapshot.
+--
+-- If you copy an encrypted DB cluster snapshot that is shared from another
+-- Amazon account, then you must specify a value for @KmsKeyId@.
+--
+-- KMS encryption keys are specific to the Amazon Region that they are
+-- created in, and you can\'t use encryption keys from one Amazon Region in
+-- another Amazon Region.
+--
+-- You cannot encrypt an unencrypted DB cluster snapshot when you copy it.
+-- If you try to copy an unencrypted DB cluster snapshot and specify a
+-- value for the KmsKeyId parameter, an error is returned.
+--
+-- 'preSignedUrl', 'copyDBClusterSnapshot_preSignedUrl' - Not currently supported.
+--
+-- 'tags', 'copyDBClusterSnapshot_tags' - The tags to assign to the new DB cluster snapshot copy.
+--
+-- 'sourceDBClusterSnapshotIdentifier', 'copyDBClusterSnapshot_sourceDBClusterSnapshotIdentifier' - The identifier of the DB cluster snapshot to copy. This parameter is not
+-- case-sensitive.
+--
+-- Constraints:
+--
+-- -   Must specify a valid system snapshot in the \"available\" state.
+--
+-- -   Specify a valid DB snapshot identifier.
+--
+-- Example: @my-cluster-snapshot1@
+--
+-- 'targetDBClusterSnapshotIdentifier', 'copyDBClusterSnapshot_targetDBClusterSnapshotIdentifier' - The identifier of the new DB cluster snapshot to create from the source
+-- DB cluster snapshot. This parameter is not case-sensitive.
+--
+-- Constraints:
+--
+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.
+--
+-- -   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_
+      }
+
+-- | True to copy all tags from the source DB cluster snapshot to the target
+-- DB 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 Amazon Amazon KMS key ID for an encrypted DB 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 DB cluster snapshot from your Amazon 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 DB cluster snapshot is encrypted with the same KMS key
+-- as the source DB cluster snapshot.
+--
+-- If you copy an encrypted DB cluster snapshot that is shared from another
+-- Amazon account, then you must specify a value for @KmsKeyId@.
+--
+-- KMS encryption keys are specific to the Amazon Region that they are
+-- created in, and you can\'t use encryption keys from one Amazon Region in
+-- another Amazon Region.
+--
+-- You cannot encrypt an unencrypted DB cluster snapshot when you copy it.
+-- If you try to copy an unencrypted DB 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)
+
+-- | Not currently supported.
+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 assign to the new DB cluster snapshot copy.
+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 DB cluster snapshot to copy. This parameter is not
+-- case-sensitive.
+--
+-- Constraints:
+--
+-- -   Must specify a valid system snapshot in the \"available\" state.
+--
+-- -   Specify a valid DB snapshot identifier.
+--
+-- 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 DB cluster snapshot to create from the source
+-- DB cluster snapshot. This parameter is not case-sensitive.
+--
+-- Constraints:
+--
+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.
+--
+-- -   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
diff --git a/gen/Amazonka/Neptune/CopyDBParameterGroup.hs b/gen/Amazonka/Neptune/CopyDBParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/CopyDBParameterGroup.hs
@@ -0,0 +1,277 @@
+{-# 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.Neptune.CopyDBParameterGroup
+-- 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 DB parameter group.
+module Amazonka.Neptune.CopyDBParameterGroup
+  ( -- * Creating a Request
+    CopyDBParameterGroup (..),
+    newCopyDBParameterGroup,
+
+    -- * Request Lenses
+    copyDBParameterGroup_tags,
+    copyDBParameterGroup_sourceDBParameterGroupIdentifier,
+    copyDBParameterGroup_targetDBParameterGroupIdentifier,
+    copyDBParameterGroup_targetDBParameterGroupDescription,
+
+    -- * Destructuring the Response
+    CopyDBParameterGroupResponse (..),
+    newCopyDBParameterGroupResponse,
+
+    -- * Response Lenses
+    copyDBParameterGroupResponse_dbParameterGroup,
+    copyDBParameterGroupResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCopyDBParameterGroup' smart constructor.
+data CopyDBParameterGroup = CopyDBParameterGroup'
+  { -- | The tags to be assigned to the copied DB parameter group.
+    tags :: Prelude.Maybe [Tag],
+    -- | The identifier or ARN for the source DB parameter group. For information
+    -- about creating an ARN, see
+    -- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing an Amazon Resource Name (ARN)>.
+    --
+    -- Constraints:
+    --
+    -- -   Must specify a valid DB parameter group.
+    --
+    -- -   Must specify a valid DB parameter group identifier, for example
+    --     @my-db-param-group@, or a valid ARN.
+    sourceDBParameterGroupIdentifier :: Prelude.Text,
+    -- | The identifier for the copied DB parameter group.
+    --
+    -- Constraints:
+    --
+    -- -   Cannot be null, empty, or blank.
+    --
+    -- -   Must contain from 1 to 255 letters, numbers, or hyphens.
+    --
+    -- -   First character must be a letter.
+    --
+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.
+    --
+    -- Example: @my-db-parameter-group@
+    targetDBParameterGroupIdentifier :: Prelude.Text,
+    -- | A description for the copied DB parameter group.
+    targetDBParameterGroupDescription :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CopyDBParameterGroup' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'copyDBParameterGroup_tags' - The tags to be assigned to the copied DB parameter group.
+--
+-- 'sourceDBParameterGroupIdentifier', 'copyDBParameterGroup_sourceDBParameterGroupIdentifier' - The identifier or ARN for the source DB parameter group. For information
+-- about creating an ARN, see
+-- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing an Amazon Resource Name (ARN)>.
+--
+-- Constraints:
+--
+-- -   Must specify a valid DB parameter group.
+--
+-- -   Must specify a valid DB parameter group identifier, for example
+--     @my-db-param-group@, or a valid ARN.
+--
+-- 'targetDBParameterGroupIdentifier', 'copyDBParameterGroup_targetDBParameterGroupIdentifier' - The identifier for the copied DB parameter group.
+--
+-- Constraints:
+--
+-- -   Cannot be null, empty, or blank.
+--
+-- -   Must contain from 1 to 255 letters, numbers, or hyphens.
+--
+-- -   First character must be a letter.
+--
+-- -   Cannot end with a hyphen or contain two consecutive hyphens.
+--
+-- Example: @my-db-parameter-group@
+--
+-- 'targetDBParameterGroupDescription', 'copyDBParameterGroup_targetDBParameterGroupDescription' - A description for the copied DB parameter group.
+newCopyDBParameterGroup ::
+  -- | 'sourceDBParameterGroupIdentifier'
+  Prelude.Text ->
+  -- | 'targetDBParameterGroupIdentifier'
+  Prelude.Text ->
+  -- | 'targetDBParameterGroupDescription'
+  Prelude.Text ->
+  CopyDBParameterGroup
+newCopyDBParameterGroup
+  pSourceDBParameterGroupIdentifier_
+  pTargetDBParameterGroupIdentifier_
+  pTargetDBParameterGroupDescription_ =
+    CopyDBParameterGroup'
+      { tags = Prelude.Nothing,
+        sourceDBParameterGroupIdentifier =
+          pSourceDBParameterGroupIdentifier_,
+        targetDBParameterGroupIdentifier =
+          pTargetDBParameterGroupIdentifier_,
+        targetDBParameterGroupDescription =
+          pTargetDBParameterGroupDescription_
+      }
+
+-- | The tags to be assigned to the copied DB parameter group.
+copyDBParameterGroup_tags :: Lens.Lens' CopyDBParameterGroup (Prelude.Maybe [Tag])
+copyDBParameterGroup_tags = Lens.lens (\CopyDBParameterGroup' {tags} -> tags) (\s@CopyDBParameterGroup' {} a -> s {tags = a} :: CopyDBParameterGroup) Prelude.. Lens.mapping Lens.coerced
+
+-- | The identifier or ARN for the source DB parameter group. For information
+-- about creating an ARN, see
+-- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing an Amazon Resource Name (ARN)>.
+--
+-- Constraints:
+--
+-- -   Must specify a valid DB parameter group.
+--
+-- -   Must specify a valid DB parameter group identifier, for example
+--     @my-db-param-group@, or a valid ARN.
+copyDBParameterGroup_sourceDBParameterGroupIdentifier :: Lens.Lens' CopyDBParameterGroup Prelude.Text
+copyDBParameterGroup_sourceDBParameterGroupIdentifier = Lens.lens (\CopyDBParameterGroup' {sourceDBParameterGroupIdentifier} -> sourceDBParameterGroupIdentifier) (\s@CopyDBParameterGroup' {} a -> s {sourceDBParameterGroupIdentifier = a} :: CopyDBParameterGroup)
+
+-- | The identifier for the copied DB parameter group.
+--
+-- Constraints:
+--
+-- -   Cannot be null, empty, or blank.
+--
+-- -   Must contain from 1 to 255 letters, numbers, or hyphens.
+--
+-- -   First character must be a letter.
+--
+-- -   Cannot end with a hyphen or contain two consecutive hyphens.
+--
+-- Example: @my-db-parameter-group@
+copyDBParameterGroup_targetDBParameterGroupIdentifier :: Lens.Lens' CopyDBParameterGroup Prelude.Text
+copyDBParameterGroup_targetDBParameterGroupIdentifier = Lens.lens (\CopyDBParameterGroup' {targetDBParameterGroupIdentifier} -> targetDBParameterGroupIdentifier) (\s@CopyDBParameterGroup' {} a -> s {targetDBParameterGroupIdentifier = a} :: CopyDBParameterGroup)
+
+-- | A description for the copied DB parameter group.
+copyDBParameterGroup_targetDBParameterGroupDescription :: Lens.Lens' CopyDBParameterGroup Prelude.Text
+copyDBParameterGroup_targetDBParameterGroupDescription = Lens.lens (\CopyDBParameterGroup' {targetDBParameterGroupDescription} -> targetDBParameterGroupDescription) (\s@CopyDBParameterGroup' {} a -> s {targetDBParameterGroupDescription = a} :: CopyDBParameterGroup)
+
+instance Core.AWSRequest CopyDBParameterGroup where
+  type
+    AWSResponse CopyDBParameterGroup =
+      CopyDBParameterGroupResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveXMLWrapper
+      "CopyDBParameterGroupResult"
+      ( \s h x ->
+          CopyDBParameterGroupResponse'
+            Prelude.<$> (x Data..@? "DBParameterGroup")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CopyDBParameterGroup where
+  hashWithSalt _salt CopyDBParameterGroup' {..} =
+    _salt
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` sourceDBParameterGroupIdentifier
+      `Prelude.hashWithSalt` targetDBParameterGroupIdentifier
+      `Prelude.hashWithSalt` targetDBParameterGroupDescription
+
+instance Prelude.NFData CopyDBParameterGroup where
+  rnf CopyDBParameterGroup' {..} =
+    Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf sourceDBParameterGroupIdentifier
+      `Prelude.seq` Prelude.rnf targetDBParameterGroupIdentifier
+      `Prelude.seq` Prelude.rnf targetDBParameterGroupDescription
+
+instance Data.ToHeaders CopyDBParameterGroup where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath CopyDBParameterGroup where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CopyDBParameterGroup where
+  toQuery CopyDBParameterGroup' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ("CopyDBParameterGroup" :: Prelude.ByteString),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "Tags"
+          Data.=: Data.toQuery
+            (Data.toQueryList "Tag" Prelude.<$> tags),
+        "SourceDBParameterGroupIdentifier"
+          Data.=: sourceDBParameterGroupIdentifier,
+        "TargetDBParameterGroupIdentifier"
+          Data.=: targetDBParameterGroupIdentifier,
+        "TargetDBParameterGroupDescription"
+          Data.=: targetDBParameterGroupDescription
+      ]
+
+-- | /See:/ 'newCopyDBParameterGroupResponse' smart constructor.
+data CopyDBParameterGroupResponse = CopyDBParameterGroupResponse'
+  { dbParameterGroup :: Prelude.Maybe DBParameterGroup,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CopyDBParameterGroupResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dbParameterGroup', 'copyDBParameterGroupResponse_dbParameterGroup' - Undocumented member.
+--
+-- 'httpStatus', 'copyDBParameterGroupResponse_httpStatus' - The response's http status code.
+newCopyDBParameterGroupResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CopyDBParameterGroupResponse
+newCopyDBParameterGroupResponse pHttpStatus_ =
+  CopyDBParameterGroupResponse'
+    { dbParameterGroup =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Undocumented member.
+copyDBParameterGroupResponse_dbParameterGroup :: Lens.Lens' CopyDBParameterGroupResponse (Prelude.Maybe DBParameterGroup)
+copyDBParameterGroupResponse_dbParameterGroup = Lens.lens (\CopyDBParameterGroupResponse' {dbParameterGroup} -> dbParameterGroup) (\s@CopyDBParameterGroupResponse' {} a -> s {dbParameterGroup = a} :: CopyDBParameterGroupResponse)
+
+-- | The response's http status code.
+copyDBParameterGroupResponse_httpStatus :: Lens.Lens' CopyDBParameterGroupResponse Prelude.Int
+copyDBParameterGroupResponse_httpStatus = Lens.lens (\CopyDBParameterGroupResponse' {httpStatus} -> httpStatus) (\s@CopyDBParameterGroupResponse' {} a -> s {httpStatus = a} :: CopyDBParameterGroupResponse)
+
+instance Prelude.NFData CopyDBParameterGroupResponse where
+  rnf CopyDBParameterGroupResponse' {..} =
+    Prelude.rnf dbParameterGroup
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/Neptune/CreateDBCluster.hs b/gen/Amazonka/Neptune/CreateDBCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/CreateDBCluster.hs
@@ -0,0 +1,858 @@
+{-# 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.Neptune.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 Neptune DB cluster.
+--
+-- You can use the @ReplicationSourceIdentifier@ parameter to create the DB
+-- cluster as a Read Replica of another DB cluster or Amazon Neptune DB
+-- instance.
+--
+-- Note that when you create a new cluster using @CreateDBCluster@
+-- directly, deletion protection is disabled by default (when you create a
+-- new production cluster in the console, deletion protection is enabled by
+-- default). You can only delete a DB cluster if its @DeletionProtection@
+-- field is set to @false@.
+module Amazonka.Neptune.CreateDBCluster
+  ( -- * Creating a Request
+    CreateDBCluster (..),
+    newCreateDBCluster,
+
+    -- * Request Lenses
+    createDBCluster_availabilityZones,
+    createDBCluster_backupRetentionPeriod,
+    createDBCluster_characterSetName,
+    createDBCluster_copyTagsToSnapshot,
+    createDBCluster_dbClusterParameterGroupName,
+    createDBCluster_dbSubnetGroupName,
+    createDBCluster_databaseName,
+    createDBCluster_deletionProtection,
+    createDBCluster_enableCloudwatchLogsExports,
+    createDBCluster_enableIAMDatabaseAuthentication,
+    createDBCluster_engineVersion,
+    createDBCluster_globalClusterIdentifier,
+    createDBCluster_kmsKeyId,
+    createDBCluster_masterUserPassword,
+    createDBCluster_masterUsername,
+    createDBCluster_optionGroupName,
+    createDBCluster_port,
+    createDBCluster_preSignedUrl,
+    createDBCluster_preferredBackupWindow,
+    createDBCluster_preferredMaintenanceWindow,
+    createDBCluster_replicationSourceIdentifier,
+    createDBCluster_serverlessV2ScalingConfiguration,
+    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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateDBCluster' smart constructor.
+data CreateDBCluster = CreateDBCluster'
+  { -- | A list of EC2 Availability Zones that instances in the DB 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,
+    -- | /(Not supported by Neptune)/
+    characterSetName :: Prelude.Maybe Prelude.Text,
+    -- | /If set to @true@, tags are copied to any snapshot of the DB cluster
+    -- that is created./
+    copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,
+    -- | The name of the DB cluster parameter group to associate with this DB
+    -- cluster. If this argument is omitted, the default is used.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, must match the name of an existing
+    --     DBClusterParameterGroup.
+    dbClusterParameterGroupName :: Prelude.Maybe Prelude.Text,
+    -- | A DB subnet group to associate with this DB cluster.
+    --
+    -- Constraints: Must match the name of an existing DBSubnetGroup. Must not
+    -- be default.
+    --
+    -- Example: @mySubnetgroup@
+    dbSubnetGroupName :: Prelude.Maybe Prelude.Text,
+    -- | The name for your database of up to 64 alpha-numeric characters. If you
+    -- do not provide a name, Amazon Neptune will not create a database in the
+    -- DB cluster you are creating.
+    databaseName :: Prelude.Maybe Prelude.Text,
+    -- | A value that indicates whether the DB cluster has deletion protection
+    -- enabled. The database can\'t be deleted when deletion protection is
+    -- enabled. By default, deletion protection is enabled.
+    deletionProtection :: Prelude.Maybe Prelude.Bool,
+    -- | The list of log types that need to be enabled for exporting to
+    -- CloudWatch Logs.
+    enableCloudwatchLogsExports :: Prelude.Maybe [Prelude.Text],
+    -- | If set to @true@, enables Amazon Identity and Access Management (IAM)
+    -- authentication for the entire DB cluster (this cannot be set at an
+    -- instance level).
+    --
+    -- Default: @false@.
+    enableIAMDatabaseAuthentication :: Prelude.Maybe Prelude.Bool,
+    -- | The version number of the database engine to use for the new DB cluster.
+    --
+    -- Example: @1.0.2.1@
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | The ID of the Neptune global database to which this new DB cluster
+    -- should be added.
+    globalClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon KMS key identifier for an encrypted DB cluster.
+    --
+    -- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
+    -- encryption key. If you are creating a DB cluster with the same Amazon
+    -- account that owns the KMS encryption key used to encrypt the new DB
+    -- cluster, then 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 @ReplicationSourceIdentifier@ identifies an encrypted source,
+    --     then Amazon Neptune will use the encryption key used to encrypt the
+    --     source. Otherwise, Amazon Neptune will use your default encryption
+    --     key.
+    --
+    -- -   If the @StorageEncrypted@ parameter is true and
+    --     @ReplicationSourceIdentifier@ is not specified, then Amazon Neptune
+    --     will use your default encryption key.
+    --
+    -- Amazon KMS creates the default encryption key for your Amazon account.
+    -- Your Amazon account has a different default encryption key for each
+    -- Amazon Region.
+    --
+    -- If you create a Read Replica of an encrypted DB cluster in another
+    -- Amazon Region, you must set @KmsKeyId@ to a KMS key ID that is valid in
+    -- the destination Amazon Region. This key is used to encrypt the Read
+    -- Replica in that Amazon Region.
+    kmsKeyId :: Prelude.Maybe Prelude.Text,
+    -- | Not supported by Neptune.
+    masterUserPassword :: Prelude.Maybe Prelude.Text,
+    -- | Not supported by Neptune.
+    masterUsername :: Prelude.Maybe Prelude.Text,
+    -- | /(Not supported by Neptune)/
+    optionGroupName :: Prelude.Maybe Prelude.Text,
+    -- | The port number on which the instances in the DB cluster accept
+    -- connections.
+    --
+    -- Default: @8182@
+    port :: Prelude.Maybe Prelude.Int,
+    -- | This parameter is 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 Region. To see the time blocks available,
+    -- see
+    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html Adjusting the Preferred Maintenance Window>
+    -- in the /Amazon Neptune User Guide./
+    --
+    -- 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 Region, occurring on a random day of the
+    -- week. To see the time blocks available, see
+    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html Adjusting the Preferred Maintenance Window>
+    -- in the /Amazon Neptune User Guide./
+    --
+    -- Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
+    --
+    -- Constraints: Minimum 30-minute window.
+    preferredMaintenanceWindow :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the source DB instance or DB cluster
+    -- if this DB cluster is created as a Read Replica.
+    replicationSourceIdentifier :: Prelude.Maybe Prelude.Text,
+    serverlessV2ScalingConfiguration :: Prelude.Maybe ServerlessV2ScalingConfiguration,
+    -- | Specifies whether the DB cluster is encrypted.
+    storageEncrypted :: Prelude.Maybe Prelude.Bool,
+    -- | The tags to assign to the new DB cluster.
+    tags :: Prelude.Maybe [Tag],
+    -- | A list of EC2 VPC security groups to associate with this DB cluster.
+    vpcSecurityGroupIds :: Prelude.Maybe [Prelude.Text],
+    -- | The DB cluster identifier. This parameter is stored as a lowercase
+    -- string.
+    --
+    -- Constraints:
+    --
+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens.
+    --
+    -- -   First character must be a letter.
+    --
+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.
+    --
+    -- Example: @my-cluster1@
+    dbClusterIdentifier :: Prelude.Text,
+    -- | The name of the database engine to be used for this DB cluster.
+    --
+    -- Valid Values: @neptune@
+    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 EC2 Availability Zones that instances in the DB 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
+--
+-- 'characterSetName', 'createDBCluster_characterSetName' - /(Not supported by Neptune)/
+--
+-- 'copyTagsToSnapshot', 'createDBCluster_copyTagsToSnapshot' - /If set to @true@, tags are copied to any snapshot of the DB cluster
+-- that is created./
+--
+-- 'dbClusterParameterGroupName', 'createDBCluster_dbClusterParameterGroupName' - The name of the DB cluster parameter group to associate with this DB
+-- cluster. If this argument is omitted, the default is used.
+--
+-- Constraints:
+--
+-- -   If supplied, must match the name of an existing
+--     DBClusterParameterGroup.
+--
+-- 'dbSubnetGroupName', 'createDBCluster_dbSubnetGroupName' - A DB subnet group to associate with this DB cluster.
+--
+-- Constraints: Must match the name of an existing DBSubnetGroup. Must not
+-- be default.
+--
+-- Example: @mySubnetgroup@
+--
+-- 'databaseName', 'createDBCluster_databaseName' - The name for your database of up to 64 alpha-numeric characters. If you
+-- do not provide a name, Amazon Neptune will not create a database in the
+-- DB cluster you are creating.
+--
+-- 'deletionProtection', 'createDBCluster_deletionProtection' - A value that indicates whether the DB cluster has deletion protection
+-- enabled. The database can\'t be deleted when deletion protection is
+-- enabled. By default, deletion protection is enabled.
+--
+-- 'enableCloudwatchLogsExports', 'createDBCluster_enableCloudwatchLogsExports' - The list of log types that need to be enabled for exporting to
+-- CloudWatch Logs.
+--
+-- 'enableIAMDatabaseAuthentication', 'createDBCluster_enableIAMDatabaseAuthentication' - If set to @true@, enables Amazon Identity and Access Management (IAM)
+-- authentication for the entire DB cluster (this cannot be set at an
+-- instance level).
+--
+-- Default: @false@.
+--
+-- 'engineVersion', 'createDBCluster_engineVersion' - The version number of the database engine to use for the new DB cluster.
+--
+-- Example: @1.0.2.1@
+--
+-- 'globalClusterIdentifier', 'createDBCluster_globalClusterIdentifier' - The ID of the Neptune global database to which this new DB cluster
+-- should be added.
+--
+-- 'kmsKeyId', 'createDBCluster_kmsKeyId' - The Amazon KMS key identifier for an encrypted DB cluster.
+--
+-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
+-- encryption key. If you are creating a DB cluster with the same Amazon
+-- account that owns the KMS encryption key used to encrypt the new DB
+-- cluster, then 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 @ReplicationSourceIdentifier@ identifies an encrypted source,
+--     then Amazon Neptune will use the encryption key used to encrypt the
+--     source. Otherwise, Amazon Neptune will use your default encryption
+--     key.
+--
+-- -   If the @StorageEncrypted@ parameter is true and
+--     @ReplicationSourceIdentifier@ is not specified, then Amazon Neptune
+--     will use your default encryption key.
+--
+-- Amazon KMS creates the default encryption key for your Amazon account.
+-- Your Amazon account has a different default encryption key for each
+-- Amazon Region.
+--
+-- If you create a Read Replica of an encrypted DB cluster in another
+-- Amazon Region, you must set @KmsKeyId@ to a KMS key ID that is valid in
+-- the destination Amazon Region. This key is used to encrypt the Read
+-- Replica in that Amazon Region.
+--
+-- 'masterUserPassword', 'createDBCluster_masterUserPassword' - Not supported by Neptune.
+--
+-- 'masterUsername', 'createDBCluster_masterUsername' - Not supported by Neptune.
+--
+-- 'optionGroupName', 'createDBCluster_optionGroupName' - /(Not supported by Neptune)/
+--
+-- 'port', 'createDBCluster_port' - The port number on which the instances in the DB cluster accept
+-- connections.
+--
+-- Default: @8182@
+--
+-- 'preSignedUrl', 'createDBCluster_preSignedUrl' - This parameter is 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 Region. To see the time blocks available,
+-- see
+-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html Adjusting the Preferred Maintenance Window>
+-- in the /Amazon Neptune User Guide./
+--
+-- 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 Region, occurring on a random day of the
+-- week. To see the time blocks available, see
+-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html Adjusting the Preferred Maintenance Window>
+-- in the /Amazon Neptune User Guide./
+--
+-- Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
+--
+-- Constraints: Minimum 30-minute window.
+--
+-- 'replicationSourceIdentifier', 'createDBCluster_replicationSourceIdentifier' - The Amazon Resource Name (ARN) of the source DB instance or DB cluster
+-- if this DB cluster is created as a Read Replica.
+--
+-- 'serverlessV2ScalingConfiguration', 'createDBCluster_serverlessV2ScalingConfiguration' - Undocumented member.
+--
+-- 'storageEncrypted', 'createDBCluster_storageEncrypted' - Specifies whether the DB cluster is encrypted.
+--
+-- 'tags', 'createDBCluster_tags' - The tags to assign to the new DB cluster.
+--
+-- 'vpcSecurityGroupIds', 'createDBCluster_vpcSecurityGroupIds' - A list of EC2 VPC security groups to associate with this DB cluster.
+--
+-- 'dbClusterIdentifier', 'createDBCluster_dbClusterIdentifier' - The DB cluster identifier. This parameter is stored as a lowercase
+-- string.
+--
+-- Constraints:
+--
+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.
+--
+-- -   First character must be a letter.
+--
+-- -   Cannot end with a hyphen or contain two consecutive hyphens.
+--
+-- Example: @my-cluster1@
+--
+-- 'engine', 'createDBCluster_engine' - The name of the database engine to be used for this DB cluster.
+--
+-- Valid Values: @neptune@
+newCreateDBCluster ::
+  -- | 'dbClusterIdentifier'
+  Prelude.Text ->
+  -- | 'engine'
+  Prelude.Text ->
+  CreateDBCluster
+newCreateDBCluster pDBClusterIdentifier_ pEngine_ =
+  CreateDBCluster'
+    { availabilityZones =
+        Prelude.Nothing,
+      backupRetentionPeriod = Prelude.Nothing,
+      characterSetName = Prelude.Nothing,
+      copyTagsToSnapshot = Prelude.Nothing,
+      dbClusterParameterGroupName = Prelude.Nothing,
+      dbSubnetGroupName = Prelude.Nothing,
+      databaseName = Prelude.Nothing,
+      deletionProtection = Prelude.Nothing,
+      enableCloudwatchLogsExports = Prelude.Nothing,
+      enableIAMDatabaseAuthentication = Prelude.Nothing,
+      engineVersion = Prelude.Nothing,
+      globalClusterIdentifier = Prelude.Nothing,
+      kmsKeyId = Prelude.Nothing,
+      masterUserPassword = Prelude.Nothing,
+      masterUsername = Prelude.Nothing,
+      optionGroupName = Prelude.Nothing,
+      port = Prelude.Nothing,
+      preSignedUrl = Prelude.Nothing,
+      preferredBackupWindow = Prelude.Nothing,
+      preferredMaintenanceWindow = Prelude.Nothing,
+      replicationSourceIdentifier = Prelude.Nothing,
+      serverlessV2ScalingConfiguration = Prelude.Nothing,
+      storageEncrypted = Prelude.Nothing,
+      tags = Prelude.Nothing,
+      vpcSecurityGroupIds = Prelude.Nothing,
+      dbClusterIdentifier = pDBClusterIdentifier_,
+      engine = pEngine_
+    }
+
+-- | A list of EC2 Availability Zones that instances in the DB 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)
+
+-- | /(Not supported by Neptune)/
+createDBCluster_characterSetName :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)
+createDBCluster_characterSetName = Lens.lens (\CreateDBCluster' {characterSetName} -> characterSetName) (\s@CreateDBCluster' {} a -> s {characterSetName = a} :: CreateDBCluster)
+
+-- | /If set to @true@, tags are copied to any snapshot of the DB cluster
+-- that is created./
+createDBCluster_copyTagsToSnapshot :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Bool)
+createDBCluster_copyTagsToSnapshot = Lens.lens (\CreateDBCluster' {copyTagsToSnapshot} -> copyTagsToSnapshot) (\s@CreateDBCluster' {} a -> s {copyTagsToSnapshot = a} :: CreateDBCluster)
+
+-- | The name of the DB cluster parameter group to associate with this DB
+-- cluster. If this argument is omitted, the default is used.
+--
+-- Constraints:
+--
+-- -   If supplied, must match the name of an existing
+--     DBClusterParameterGroup.
+createDBCluster_dbClusterParameterGroupName :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)
+createDBCluster_dbClusterParameterGroupName = Lens.lens (\CreateDBCluster' {dbClusterParameterGroupName} -> dbClusterParameterGroupName) (\s@CreateDBCluster' {} a -> s {dbClusterParameterGroupName = a} :: CreateDBCluster)
+
+-- | A DB subnet group to associate with this DB 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)
+
+-- | The name for your database of up to 64 alpha-numeric characters. If you
+-- do not provide a name, Amazon Neptune will not create a database in the
+-- DB cluster you are creating.
+createDBCluster_databaseName :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)
+createDBCluster_databaseName = Lens.lens (\CreateDBCluster' {databaseName} -> databaseName) (\s@CreateDBCluster' {} a -> s {databaseName = a} :: CreateDBCluster)
+
+-- | A value that indicates whether the DB cluster has deletion protection
+-- enabled. The database can\'t be deleted when deletion protection is
+-- enabled. By default, deletion protection is enabled.
+createDBCluster_deletionProtection :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Bool)
+createDBCluster_deletionProtection = Lens.lens (\CreateDBCluster' {deletionProtection} -> deletionProtection) (\s@CreateDBCluster' {} a -> s {deletionProtection = a} :: CreateDBCluster)
+
+-- | The list of log types that need to be enabled for exporting to
+-- CloudWatch Logs.
+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
+
+-- | If set to @true@, enables Amazon Identity and Access Management (IAM)
+-- authentication for the entire DB cluster (this cannot be set at an
+-- instance level).
+--
+-- Default: @false@.
+createDBCluster_enableIAMDatabaseAuthentication :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Bool)
+createDBCluster_enableIAMDatabaseAuthentication = Lens.lens (\CreateDBCluster' {enableIAMDatabaseAuthentication} -> enableIAMDatabaseAuthentication) (\s@CreateDBCluster' {} a -> s {enableIAMDatabaseAuthentication = a} :: CreateDBCluster)
+
+-- | The version number of the database engine to use for the new DB cluster.
+--
+-- Example: @1.0.2.1@
+createDBCluster_engineVersion :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)
+createDBCluster_engineVersion = Lens.lens (\CreateDBCluster' {engineVersion} -> engineVersion) (\s@CreateDBCluster' {} a -> s {engineVersion = a} :: CreateDBCluster)
+
+-- | The ID of the Neptune global database to which this new DB cluster
+-- should be added.
+createDBCluster_globalClusterIdentifier :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)
+createDBCluster_globalClusterIdentifier = Lens.lens (\CreateDBCluster' {globalClusterIdentifier} -> globalClusterIdentifier) (\s@CreateDBCluster' {} a -> s {globalClusterIdentifier = a} :: CreateDBCluster)
+
+-- | The Amazon KMS key identifier for an encrypted DB cluster.
+--
+-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
+-- encryption key. If you are creating a DB cluster with the same Amazon
+-- account that owns the KMS encryption key used to encrypt the new DB
+-- cluster, then 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 @ReplicationSourceIdentifier@ identifies an encrypted source,
+--     then Amazon Neptune will use the encryption key used to encrypt the
+--     source. Otherwise, Amazon Neptune will use your default encryption
+--     key.
+--
+-- -   If the @StorageEncrypted@ parameter is true and
+--     @ReplicationSourceIdentifier@ is not specified, then Amazon Neptune
+--     will use your default encryption key.
+--
+-- Amazon KMS creates the default encryption key for your Amazon account.
+-- Your Amazon account has a different default encryption key for each
+-- Amazon Region.
+--
+-- If you create a Read Replica of an encrypted DB cluster in another
+-- Amazon Region, you must set @KmsKeyId@ to a KMS key ID that is valid in
+-- the destination Amazon Region. This key is used to encrypt the Read
+-- Replica in that Amazon Region.
+createDBCluster_kmsKeyId :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)
+createDBCluster_kmsKeyId = Lens.lens (\CreateDBCluster' {kmsKeyId} -> kmsKeyId) (\s@CreateDBCluster' {} a -> s {kmsKeyId = a} :: CreateDBCluster)
+
+-- | Not supported by Neptune.
+createDBCluster_masterUserPassword :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)
+createDBCluster_masterUserPassword = Lens.lens (\CreateDBCluster' {masterUserPassword} -> masterUserPassword) (\s@CreateDBCluster' {} a -> s {masterUserPassword = a} :: CreateDBCluster)
+
+-- | Not supported by Neptune.
+createDBCluster_masterUsername :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)
+createDBCluster_masterUsername = Lens.lens (\CreateDBCluster' {masterUsername} -> masterUsername) (\s@CreateDBCluster' {} a -> s {masterUsername = a} :: CreateDBCluster)
+
+-- | /(Not supported by Neptune)/
+createDBCluster_optionGroupName :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)
+createDBCluster_optionGroupName = Lens.lens (\CreateDBCluster' {optionGroupName} -> optionGroupName) (\s@CreateDBCluster' {} a -> s {optionGroupName = a} :: CreateDBCluster)
+
+-- | The port number on which the instances in the DB cluster accept
+-- connections.
+--
+-- Default: @8182@
+createDBCluster_port :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Int)
+createDBCluster_port = Lens.lens (\CreateDBCluster' {port} -> port) (\s@CreateDBCluster' {} a -> s {port = a} :: CreateDBCluster)
+
+-- | This parameter is 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 Region. To see the time blocks available,
+-- see
+-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html Adjusting the Preferred Maintenance Window>
+-- in the /Amazon Neptune User Guide./
+--
+-- 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 Region, occurring on a random day of the
+-- week. To see the time blocks available, see
+-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html Adjusting the Preferred Maintenance Window>
+-- in the /Amazon Neptune User Guide./
+--
+-- 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)
+
+-- | The Amazon Resource Name (ARN) of the source DB instance or DB cluster
+-- if this DB cluster is created as a Read Replica.
+createDBCluster_replicationSourceIdentifier :: Lens.Lens' CreateDBCluster (Prelude.Maybe Prelude.Text)
+createDBCluster_replicationSourceIdentifier = Lens.lens (\CreateDBCluster' {replicationSourceIdentifier} -> replicationSourceIdentifier) (\s@CreateDBCluster' {} a -> s {replicationSourceIdentifier = a} :: CreateDBCluster)
+
+-- | Undocumented member.
+createDBCluster_serverlessV2ScalingConfiguration :: Lens.Lens' CreateDBCluster (Prelude.Maybe ServerlessV2ScalingConfiguration)
+createDBCluster_serverlessV2ScalingConfiguration = Lens.lens (\CreateDBCluster' {serverlessV2ScalingConfiguration} -> serverlessV2ScalingConfiguration) (\s@CreateDBCluster' {} a -> s {serverlessV2ScalingConfiguration = a} :: CreateDBCluster)
+
+-- | Specifies whether the DB 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 assign to the new DB 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 DB 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 DB cluster identifier. This parameter is stored as a lowercase
+-- string.
+--
+-- Constraints:
+--
+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.
+--
+-- -   First character must be a letter.
+--
+-- -   Cannot end with a hyphen or contain two consecutive hyphens.
+--
+-- Example: @my-cluster1@
+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 DB cluster.
+--
+-- Valid Values: @neptune@
+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` characterSetName
+      `Prelude.hashWithSalt` copyTagsToSnapshot
+      `Prelude.hashWithSalt` dbClusterParameterGroupName
+      `Prelude.hashWithSalt` dbSubnetGroupName
+      `Prelude.hashWithSalt` databaseName
+      `Prelude.hashWithSalt` deletionProtection
+      `Prelude.hashWithSalt` enableCloudwatchLogsExports
+      `Prelude.hashWithSalt` enableIAMDatabaseAuthentication
+      `Prelude.hashWithSalt` engineVersion
+      `Prelude.hashWithSalt` globalClusterIdentifier
+      `Prelude.hashWithSalt` kmsKeyId
+      `Prelude.hashWithSalt` masterUserPassword
+      `Prelude.hashWithSalt` masterUsername
+      `Prelude.hashWithSalt` optionGroupName
+      `Prelude.hashWithSalt` port
+      `Prelude.hashWithSalt` preSignedUrl
+      `Prelude.hashWithSalt` preferredBackupWindow
+      `Prelude.hashWithSalt` preferredMaintenanceWindow
+      `Prelude.hashWithSalt` replicationSourceIdentifier
+      `Prelude.hashWithSalt` serverlessV2ScalingConfiguration
+      `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 characterSetName
+      `Prelude.seq` Prelude.rnf copyTagsToSnapshot
+      `Prelude.seq` Prelude.rnf dbClusterParameterGroupName
+      `Prelude.seq` Prelude.rnf dbSubnetGroupName
+      `Prelude.seq` Prelude.rnf databaseName
+      `Prelude.seq` Prelude.rnf deletionProtection
+      `Prelude.seq` Prelude.rnf enableCloudwatchLogsExports
+      `Prelude.seq` Prelude.rnf enableIAMDatabaseAuthentication
+      `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 optionGroupName
+      `Prelude.seq` Prelude.rnf port
+      `Prelude.seq` Prelude.rnf preSignedUrl
+      `Prelude.seq` Prelude.rnf
+        preferredBackupWindow
+      `Prelude.seq` Prelude.rnf
+        preferredMaintenanceWindow
+      `Prelude.seq` Prelude.rnf
+        replicationSourceIdentifier
+      `Prelude.seq` Prelude.rnf
+        serverlessV2ScalingConfiguration
+      `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,
+        "CharacterSetName" Data.=: characterSetName,
+        "CopyTagsToSnapshot" Data.=: copyTagsToSnapshot,
+        "DBClusterParameterGroupName"
+          Data.=: dbClusterParameterGroupName,
+        "DBSubnetGroupName" Data.=: dbSubnetGroupName,
+        "DatabaseName" Data.=: databaseName,
+        "DeletionProtection" Data.=: deletionProtection,
+        "EnableCloudwatchLogsExports"
+          Data.=: Data.toQuery
+            ( Data.toQueryList "member"
+                Prelude.<$> enableCloudwatchLogsExports
+            ),
+        "EnableIAMDatabaseAuthentication"
+          Data.=: enableIAMDatabaseAuthentication,
+        "EngineVersion" Data.=: engineVersion,
+        "GlobalClusterIdentifier"
+          Data.=: globalClusterIdentifier,
+        "KmsKeyId" Data.=: kmsKeyId,
+        "MasterUserPassword" Data.=: masterUserPassword,
+        "MasterUsername" Data.=: masterUsername,
+        "OptionGroupName" Data.=: optionGroupName,
+        "Port" Data.=: port,
+        "PreSignedUrl" Data.=: preSignedUrl,
+        "PreferredBackupWindow"
+          Data.=: preferredBackupWindow,
+        "PreferredMaintenanceWindow"
+          Data.=: preferredMaintenanceWindow,
+        "ReplicationSourceIdentifier"
+          Data.=: replicationSourceIdentifier,
+        "ServerlessV2ScalingConfiguration"
+          Data.=: serverlessV2ScalingConfiguration,
+        "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
diff --git a/gen/Amazonka/Neptune/CreateDBClusterEndpoint.hs b/gen/Amazonka/Neptune/CreateDBClusterEndpoint.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/CreateDBClusterEndpoint.hs
@@ -0,0 +1,431 @@
+{-# 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.Neptune.CreateDBClusterEndpoint
+-- 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 custom endpoint and associates it with an Amazon Neptune
+-- DB cluster.
+module Amazonka.Neptune.CreateDBClusterEndpoint
+  ( -- * Creating a Request
+    CreateDBClusterEndpoint (..),
+    newCreateDBClusterEndpoint,
+
+    -- * Request Lenses
+    createDBClusterEndpoint_excludedMembers,
+    createDBClusterEndpoint_staticMembers,
+    createDBClusterEndpoint_tags,
+    createDBClusterEndpoint_dbClusterIdentifier,
+    createDBClusterEndpoint_dbClusterEndpointIdentifier,
+    createDBClusterEndpoint_endpointType,
+
+    -- * Destructuring the Response
+    CreateDBClusterEndpointResponse (..),
+    newCreateDBClusterEndpointResponse,
+
+    -- * Response Lenses
+    createDBClusterEndpointResponse_customEndpointType,
+    createDBClusterEndpointResponse_dbClusterEndpointArn,
+    createDBClusterEndpointResponse_dbClusterEndpointIdentifier,
+    createDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier,
+    createDBClusterEndpointResponse_dbClusterIdentifier,
+    createDBClusterEndpointResponse_endpoint,
+    createDBClusterEndpointResponse_endpointType,
+    createDBClusterEndpointResponse_excludedMembers,
+    createDBClusterEndpointResponse_staticMembers,
+    createDBClusterEndpointResponse_status,
+    createDBClusterEndpointResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateDBClusterEndpoint' smart constructor.
+data CreateDBClusterEndpoint = CreateDBClusterEndpoint'
+  { -- | List of DB instance identifiers that aren\'t part of the custom endpoint
+    -- group. All other eligible instances are reachable through the custom
+    -- endpoint. Only relevant if the list of static members is empty.
+    excludedMembers :: Prelude.Maybe [Prelude.Text],
+    -- | List of DB instance identifiers that are part of the custom endpoint
+    -- group.
+    staticMembers :: Prelude.Maybe [Prelude.Text],
+    -- | The tags to be assigned to the Amazon Neptune resource.
+    tags :: Prelude.Maybe [Tag],
+    -- | The DB cluster identifier of the DB cluster associated with the
+    -- endpoint. This parameter is stored as a lowercase string.
+    dbClusterIdentifier :: Prelude.Text,
+    -- | The identifier to use for the new endpoint. This parameter is stored as
+    -- a lowercase string.
+    dbClusterEndpointIdentifier :: Prelude.Text,
+    -- | The type of the endpoint. One of: @READER@, @WRITER@, @ANY@.
+    endpointType :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateDBClusterEndpoint' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'excludedMembers', 'createDBClusterEndpoint_excludedMembers' - List of DB instance identifiers that aren\'t part of the custom endpoint
+-- group. All other eligible instances are reachable through the custom
+-- endpoint. Only relevant if the list of static members is empty.
+--
+-- 'staticMembers', 'createDBClusterEndpoint_staticMembers' - List of DB instance identifiers that are part of the custom endpoint
+-- group.
+--
+-- 'tags', 'createDBClusterEndpoint_tags' - The tags to be assigned to the Amazon Neptune resource.
+--
+-- 'dbClusterIdentifier', 'createDBClusterEndpoint_dbClusterIdentifier' - The DB cluster identifier of the DB cluster associated with the
+-- endpoint. This parameter is stored as a lowercase string.
+--
+-- 'dbClusterEndpointIdentifier', 'createDBClusterEndpoint_dbClusterEndpointIdentifier' - The identifier to use for the new endpoint. This parameter is stored as
+-- a lowercase string.
+--
+-- 'endpointType', 'createDBClusterEndpoint_endpointType' - The type of the endpoint. One of: @READER@, @WRITER@, @ANY@.
+newCreateDBClusterEndpoint ::
+  -- | 'dbClusterIdentifier'
+  Prelude.Text ->
+  -- | 'dbClusterEndpointIdentifier'
+  Prelude.Text ->
+  -- | 'endpointType'
+  Prelude.Text ->
+  CreateDBClusterEndpoint
+newCreateDBClusterEndpoint
+  pDBClusterIdentifier_
+  pDBClusterEndpointIdentifier_
+  pEndpointType_ =
+    CreateDBClusterEndpoint'
+      { excludedMembers =
+          Prelude.Nothing,
+        staticMembers = Prelude.Nothing,
+        tags = Prelude.Nothing,
+        dbClusterIdentifier = pDBClusterIdentifier_,
+        dbClusterEndpointIdentifier =
+          pDBClusterEndpointIdentifier_,
+        endpointType = pEndpointType_
+      }
+
+-- | List of DB instance identifiers that aren\'t part of the custom endpoint
+-- group. All other eligible instances are reachable through the custom
+-- endpoint. Only relevant if the list of static members is empty.
+createDBClusterEndpoint_excludedMembers :: Lens.Lens' CreateDBClusterEndpoint (Prelude.Maybe [Prelude.Text])
+createDBClusterEndpoint_excludedMembers = Lens.lens (\CreateDBClusterEndpoint' {excludedMembers} -> excludedMembers) (\s@CreateDBClusterEndpoint' {} a -> s {excludedMembers = a} :: CreateDBClusterEndpoint) Prelude.. Lens.mapping Lens.coerced
+
+-- | List of DB instance identifiers that are part of the custom endpoint
+-- group.
+createDBClusterEndpoint_staticMembers :: Lens.Lens' CreateDBClusterEndpoint (Prelude.Maybe [Prelude.Text])
+createDBClusterEndpoint_staticMembers = Lens.lens (\CreateDBClusterEndpoint' {staticMembers} -> staticMembers) (\s@CreateDBClusterEndpoint' {} a -> s {staticMembers = a} :: CreateDBClusterEndpoint) Prelude.. Lens.mapping Lens.coerced
+
+-- | The tags to be assigned to the Amazon Neptune resource.
+createDBClusterEndpoint_tags :: Lens.Lens' CreateDBClusterEndpoint (Prelude.Maybe [Tag])
+createDBClusterEndpoint_tags = Lens.lens (\CreateDBClusterEndpoint' {tags} -> tags) (\s@CreateDBClusterEndpoint' {} a -> s {tags = a} :: CreateDBClusterEndpoint) Prelude.. Lens.mapping Lens.coerced
+
+-- | The DB cluster identifier of the DB cluster associated with the
+-- endpoint. This parameter is stored as a lowercase string.
+createDBClusterEndpoint_dbClusterIdentifier :: Lens.Lens' CreateDBClusterEndpoint Prelude.Text
+createDBClusterEndpoint_dbClusterIdentifier = Lens.lens (\CreateDBClusterEndpoint' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@CreateDBClusterEndpoint' {} a -> s {dbClusterIdentifier = a} :: CreateDBClusterEndpoint)
+
+-- | The identifier to use for the new endpoint. This parameter is stored as
+-- a lowercase string.
+createDBClusterEndpoint_dbClusterEndpointIdentifier :: Lens.Lens' CreateDBClusterEndpoint Prelude.Text
+createDBClusterEndpoint_dbClusterEndpointIdentifier = Lens.lens (\CreateDBClusterEndpoint' {dbClusterEndpointIdentifier} -> dbClusterEndpointIdentifier) (\s@CreateDBClusterEndpoint' {} a -> s {dbClusterEndpointIdentifier = a} :: CreateDBClusterEndpoint)
+
+-- | The type of the endpoint. One of: @READER@, @WRITER@, @ANY@.
+createDBClusterEndpoint_endpointType :: Lens.Lens' CreateDBClusterEndpoint Prelude.Text
+createDBClusterEndpoint_endpointType = Lens.lens (\CreateDBClusterEndpoint' {endpointType} -> endpointType) (\s@CreateDBClusterEndpoint' {} a -> s {endpointType = a} :: CreateDBClusterEndpoint)
+
+instance Core.AWSRequest CreateDBClusterEndpoint where
+  type
+    AWSResponse CreateDBClusterEndpoint =
+      CreateDBClusterEndpointResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveXMLWrapper
+      "CreateDBClusterEndpointResult"
+      ( \s h x ->
+          CreateDBClusterEndpointResponse'
+            Prelude.<$> (x Data..@? "CustomEndpointType")
+            Prelude.<*> (x Data..@? "DBClusterEndpointArn")
+            Prelude.<*> (x Data..@? "DBClusterEndpointIdentifier")
+            Prelude.<*> (x Data..@? "DBClusterEndpointResourceIdentifier")
+            Prelude.<*> (x Data..@? "DBClusterIdentifier")
+            Prelude.<*> (x Data..@? "Endpoint")
+            Prelude.<*> (x Data..@? "EndpointType")
+            Prelude.<*> ( x
+                            Data..@? "ExcludedMembers"
+                            Core..!@ Prelude.mempty
+                            Prelude.>>= Core.may (Data.parseXMLList "member")
+                        )
+            Prelude.<*> ( x
+                            Data..@? "StaticMembers"
+                            Core..!@ Prelude.mempty
+                            Prelude.>>= Core.may (Data.parseXMLList "member")
+                        )
+            Prelude.<*> (x Data..@? "Status")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateDBClusterEndpoint where
+  hashWithSalt _salt CreateDBClusterEndpoint' {..} =
+    _salt
+      `Prelude.hashWithSalt` excludedMembers
+      `Prelude.hashWithSalt` staticMembers
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` dbClusterIdentifier
+      `Prelude.hashWithSalt` dbClusterEndpointIdentifier
+      `Prelude.hashWithSalt` endpointType
+
+instance Prelude.NFData CreateDBClusterEndpoint where
+  rnf CreateDBClusterEndpoint' {..} =
+    Prelude.rnf excludedMembers
+      `Prelude.seq` Prelude.rnf staticMembers
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf dbClusterIdentifier
+      `Prelude.seq` Prelude.rnf dbClusterEndpointIdentifier
+      `Prelude.seq` Prelude.rnf endpointType
+
+instance Data.ToHeaders CreateDBClusterEndpoint where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath CreateDBClusterEndpoint where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateDBClusterEndpoint where
+  toQuery CreateDBClusterEndpoint' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ("CreateDBClusterEndpoint" :: Prelude.ByteString),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "ExcludedMembers"
+          Data.=: Data.toQuery
+            ( Data.toQueryList "member"
+                Prelude.<$> excludedMembers
+            ),
+        "StaticMembers"
+          Data.=: Data.toQuery
+            ( Data.toQueryList "member"
+                Prelude.<$> staticMembers
+            ),
+        "Tags"
+          Data.=: Data.toQuery
+            (Data.toQueryList "Tag" Prelude.<$> tags),
+        "DBClusterIdentifier" Data.=: dbClusterIdentifier,
+        "DBClusterEndpointIdentifier"
+          Data.=: dbClusterEndpointIdentifier,
+        "EndpointType" Data.=: endpointType
+      ]
+
+-- | This data type represents the information you need to connect to an
+-- Amazon Neptune DB cluster. This data type is used as a response element
+-- in the following actions:
+--
+-- -   @CreateDBClusterEndpoint@
+--
+-- -   @DescribeDBClusterEndpoints@
+--
+-- -   @ModifyDBClusterEndpoint@
+--
+-- -   @DeleteDBClusterEndpoint@
+--
+-- For the data structure that represents Amazon Neptune DB instance
+-- endpoints, see @Endpoint@.
+--
+-- /See:/ 'newCreateDBClusterEndpointResponse' smart constructor.
+data CreateDBClusterEndpointResponse = CreateDBClusterEndpointResponse'
+  { -- | The type associated with a custom endpoint. One of: @READER@, @WRITER@,
+    -- @ANY@.
+    customEndpointType :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) for the endpoint.
+    dbClusterEndpointArn :: Prelude.Maybe Prelude.Text,
+    -- | The identifier associated with the endpoint. This parameter is stored as
+    -- a lowercase string.
+    dbClusterEndpointIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | A unique system-generated identifier for an endpoint. It remains the
+    -- same for the whole life of the endpoint.
+    dbClusterEndpointResourceIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The DB cluster identifier of the DB cluster associated with the
+    -- endpoint. This parameter is stored as a lowercase string.
+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The DNS address of the endpoint.
+    endpoint :: Prelude.Maybe Prelude.Text,
+    -- | The type of the endpoint. One of: @READER@, @WRITER@, @CUSTOM@.
+    endpointType :: Prelude.Maybe Prelude.Text,
+    -- | List of DB instance identifiers that aren\'t part of the custom endpoint
+    -- group. All other eligible instances are reachable through the custom
+    -- endpoint. Only relevant if the list of static members is empty.
+    excludedMembers :: Prelude.Maybe [Prelude.Text],
+    -- | List of DB instance identifiers that are part of the custom endpoint
+    -- group.
+    staticMembers :: Prelude.Maybe [Prelude.Text],
+    -- | The current status of the endpoint. One of: @creating@, @available@,
+    -- @deleting@, @inactive@, @modifying@. The @inactive@ state applies to an
+    -- endpoint that cannot be used for a certain kind of cluster, such as a
+    -- @writer@ endpoint for a read-only secondary cluster in a global
+    -- database.
+    status :: 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 'CreateDBClusterEndpointResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'customEndpointType', 'createDBClusterEndpointResponse_customEndpointType' - The type associated with a custom endpoint. One of: @READER@, @WRITER@,
+-- @ANY@.
+--
+-- 'dbClusterEndpointArn', 'createDBClusterEndpointResponse_dbClusterEndpointArn' - The Amazon Resource Name (ARN) for the endpoint.
+--
+-- 'dbClusterEndpointIdentifier', 'createDBClusterEndpointResponse_dbClusterEndpointIdentifier' - The identifier associated with the endpoint. This parameter is stored as
+-- a lowercase string.
+--
+-- 'dbClusterEndpointResourceIdentifier', 'createDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier' - A unique system-generated identifier for an endpoint. It remains the
+-- same for the whole life of the endpoint.
+--
+-- 'dbClusterIdentifier', 'createDBClusterEndpointResponse_dbClusterIdentifier' - The DB cluster identifier of the DB cluster associated with the
+-- endpoint. This parameter is stored as a lowercase string.
+--
+-- 'endpoint', 'createDBClusterEndpointResponse_endpoint' - The DNS address of the endpoint.
+--
+-- 'endpointType', 'createDBClusterEndpointResponse_endpointType' - The type of the endpoint. One of: @READER@, @WRITER@, @CUSTOM@.
+--
+-- 'excludedMembers', 'createDBClusterEndpointResponse_excludedMembers' - List of DB instance identifiers that aren\'t part of the custom endpoint
+-- group. All other eligible instances are reachable through the custom
+-- endpoint. Only relevant if the list of static members is empty.
+--
+-- 'staticMembers', 'createDBClusterEndpointResponse_staticMembers' - List of DB instance identifiers that are part of the custom endpoint
+-- group.
+--
+-- 'status', 'createDBClusterEndpointResponse_status' - The current status of the endpoint. One of: @creating@, @available@,
+-- @deleting@, @inactive@, @modifying@. The @inactive@ state applies to an
+-- endpoint that cannot be used for a certain kind of cluster, such as a
+-- @writer@ endpoint for a read-only secondary cluster in a global
+-- database.
+--
+-- 'httpStatus', 'createDBClusterEndpointResponse_httpStatus' - The response's http status code.
+newCreateDBClusterEndpointResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateDBClusterEndpointResponse
+newCreateDBClusterEndpointResponse pHttpStatus_ =
+  CreateDBClusterEndpointResponse'
+    { customEndpointType =
+        Prelude.Nothing,
+      dbClusterEndpointArn = Prelude.Nothing,
+      dbClusterEndpointIdentifier =
+        Prelude.Nothing,
+      dbClusterEndpointResourceIdentifier =
+        Prelude.Nothing,
+      dbClusterIdentifier = Prelude.Nothing,
+      endpoint = Prelude.Nothing,
+      endpointType = Prelude.Nothing,
+      excludedMembers = Prelude.Nothing,
+      staticMembers = Prelude.Nothing,
+      status = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The type associated with a custom endpoint. One of: @READER@, @WRITER@,
+-- @ANY@.
+createDBClusterEndpointResponse_customEndpointType :: Lens.Lens' CreateDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+createDBClusterEndpointResponse_customEndpointType = Lens.lens (\CreateDBClusterEndpointResponse' {customEndpointType} -> customEndpointType) (\s@CreateDBClusterEndpointResponse' {} a -> s {customEndpointType = a} :: CreateDBClusterEndpointResponse)
+
+-- | The Amazon Resource Name (ARN) for the endpoint.
+createDBClusterEndpointResponse_dbClusterEndpointArn :: Lens.Lens' CreateDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+createDBClusterEndpointResponse_dbClusterEndpointArn = Lens.lens (\CreateDBClusterEndpointResponse' {dbClusterEndpointArn} -> dbClusterEndpointArn) (\s@CreateDBClusterEndpointResponse' {} a -> s {dbClusterEndpointArn = a} :: CreateDBClusterEndpointResponse)
+
+-- | The identifier associated with the endpoint. This parameter is stored as
+-- a lowercase string.
+createDBClusterEndpointResponse_dbClusterEndpointIdentifier :: Lens.Lens' CreateDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+createDBClusterEndpointResponse_dbClusterEndpointIdentifier = Lens.lens (\CreateDBClusterEndpointResponse' {dbClusterEndpointIdentifier} -> dbClusterEndpointIdentifier) (\s@CreateDBClusterEndpointResponse' {} a -> s {dbClusterEndpointIdentifier = a} :: CreateDBClusterEndpointResponse)
+
+-- | A unique system-generated identifier for an endpoint. It remains the
+-- same for the whole life of the endpoint.
+createDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier :: Lens.Lens' CreateDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+createDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier = Lens.lens (\CreateDBClusterEndpointResponse' {dbClusterEndpointResourceIdentifier} -> dbClusterEndpointResourceIdentifier) (\s@CreateDBClusterEndpointResponse' {} a -> s {dbClusterEndpointResourceIdentifier = a} :: CreateDBClusterEndpointResponse)
+
+-- | The DB cluster identifier of the DB cluster associated with the
+-- endpoint. This parameter is stored as a lowercase string.
+createDBClusterEndpointResponse_dbClusterIdentifier :: Lens.Lens' CreateDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+createDBClusterEndpointResponse_dbClusterIdentifier = Lens.lens (\CreateDBClusterEndpointResponse' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@CreateDBClusterEndpointResponse' {} a -> s {dbClusterIdentifier = a} :: CreateDBClusterEndpointResponse)
+
+-- | The DNS address of the endpoint.
+createDBClusterEndpointResponse_endpoint :: Lens.Lens' CreateDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+createDBClusterEndpointResponse_endpoint = Lens.lens (\CreateDBClusterEndpointResponse' {endpoint} -> endpoint) (\s@CreateDBClusterEndpointResponse' {} a -> s {endpoint = a} :: CreateDBClusterEndpointResponse)
+
+-- | The type of the endpoint. One of: @READER@, @WRITER@, @CUSTOM@.
+createDBClusterEndpointResponse_endpointType :: Lens.Lens' CreateDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+createDBClusterEndpointResponse_endpointType = Lens.lens (\CreateDBClusterEndpointResponse' {endpointType} -> endpointType) (\s@CreateDBClusterEndpointResponse' {} a -> s {endpointType = a} :: CreateDBClusterEndpointResponse)
+
+-- | List of DB instance identifiers that aren\'t part of the custom endpoint
+-- group. All other eligible instances are reachable through the custom
+-- endpoint. Only relevant if the list of static members is empty.
+createDBClusterEndpointResponse_excludedMembers :: Lens.Lens' CreateDBClusterEndpointResponse (Prelude.Maybe [Prelude.Text])
+createDBClusterEndpointResponse_excludedMembers = Lens.lens (\CreateDBClusterEndpointResponse' {excludedMembers} -> excludedMembers) (\s@CreateDBClusterEndpointResponse' {} a -> s {excludedMembers = a} :: CreateDBClusterEndpointResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | List of DB instance identifiers that are part of the custom endpoint
+-- group.
+createDBClusterEndpointResponse_staticMembers :: Lens.Lens' CreateDBClusterEndpointResponse (Prelude.Maybe [Prelude.Text])
+createDBClusterEndpointResponse_staticMembers = Lens.lens (\CreateDBClusterEndpointResponse' {staticMembers} -> staticMembers) (\s@CreateDBClusterEndpointResponse' {} a -> s {staticMembers = a} :: CreateDBClusterEndpointResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The current status of the endpoint. One of: @creating@, @available@,
+-- @deleting@, @inactive@, @modifying@. The @inactive@ state applies to an
+-- endpoint that cannot be used for a certain kind of cluster, such as a
+-- @writer@ endpoint for a read-only secondary cluster in a global
+-- database.
+createDBClusterEndpointResponse_status :: Lens.Lens' CreateDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+createDBClusterEndpointResponse_status = Lens.lens (\CreateDBClusterEndpointResponse' {status} -> status) (\s@CreateDBClusterEndpointResponse' {} a -> s {status = a} :: CreateDBClusterEndpointResponse)
+
+-- | The response's http status code.
+createDBClusterEndpointResponse_httpStatus :: Lens.Lens' CreateDBClusterEndpointResponse Prelude.Int
+createDBClusterEndpointResponse_httpStatus = Lens.lens (\CreateDBClusterEndpointResponse' {httpStatus} -> httpStatus) (\s@CreateDBClusterEndpointResponse' {} a -> s {httpStatus = a} :: CreateDBClusterEndpointResponse)
+
+instance
+  Prelude.NFData
+    CreateDBClusterEndpointResponse
+  where
+  rnf CreateDBClusterEndpointResponse' {..} =
+    Prelude.rnf customEndpointType
+      `Prelude.seq` Prelude.rnf dbClusterEndpointArn
+      `Prelude.seq` Prelude.rnf dbClusterEndpointIdentifier
+      `Prelude.seq` Prelude.rnf dbClusterEndpointResourceIdentifier
+      `Prelude.seq` Prelude.rnf dbClusterIdentifier
+      `Prelude.seq` Prelude.rnf endpoint
+      `Prelude.seq` Prelude.rnf endpointType
+      `Prelude.seq` Prelude.rnf excludedMembers
+      `Prelude.seq` Prelude.rnf staticMembers
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/Neptune/CreateDBClusterParameterGroup.hs b/gen/Amazonka/Neptune/CreateDBClusterParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/CreateDBClusterParameterGroup.hs
@@ -0,0 +1,280 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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 DB cluster parameter group.
+--
+-- Parameters in a DB cluster parameter group apply to all of the instances
+-- in a DB cluster.
+--
+-- A DB cluster parameter group is initially created with the default
+-- parameters for the database engine used by instances in the DB cluster.
+-- To provide custom values for any of the parameters, you must modify the
+-- group after creating it using ModifyDBClusterParameterGroup. Once
+-- you\'ve created a DB cluster parameter group, you need to associate it
+-- with your DB cluster using ModifyDBCluster. When you associate a new DB
+-- cluster parameter group with a running DB cluster, you need to reboot
+-- the DB instances in the DB cluster without failover for the new DB
+-- cluster parameter group and associated settings to take effect.
+--
+-- After you create a DB cluster parameter group, you should wait at least
+-- 5 minutes before creating your first DB cluster that uses that DB
+-- cluster parameter group as the default parameter group. This allows
+-- Amazon Neptune to fully complete the create action before the DB cluster
+-- parameter group is used as the default for a new DB cluster. This is
+-- especially important for parameters that are critical when creating the
+-- default database for a DB cluster, such as the character set for the
+-- default database defined by the @character_set_database@ parameter. You
+-- can use the /Parameter Groups/ option of the
+-- <https://console.aws.amazon.com/rds/ Amazon Neptune console> or the
+-- DescribeDBClusterParameters command to verify that your DB cluster
+-- parameter group has been created or modified.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateDBClusterParameterGroup' smart constructor.
+data CreateDBClusterParameterGroup = CreateDBClusterParameterGroup'
+  { -- | The tags to be assigned to the new DB cluster parameter group.
+    tags :: Prelude.Maybe [Tag],
+    -- | The name of the DB cluster parameter group.
+    --
+    -- Constraints:
+    --
+    -- -   Must match the name of an existing DBClusterParameterGroup.
+    --
+    -- This value is stored as a lowercase string.
+    dbClusterParameterGroupName :: Prelude.Text,
+    -- | The DB cluster parameter group family name. A DB cluster parameter group
+    -- can be associated with one and only one DB cluster parameter group
+    -- family, and can be applied only to a DB cluster running a database
+    -- engine and engine version compatible with that DB cluster parameter
+    -- group family.
+    dbParameterGroupFamily :: Prelude.Text,
+    -- | The description for the DB 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 new DB cluster parameter group.
+--
+-- 'dbClusterParameterGroupName', 'createDBClusterParameterGroup_dbClusterParameterGroupName' - The name of the DB cluster parameter group.
+--
+-- Constraints:
+--
+-- -   Must match the name of an existing DBClusterParameterGroup.
+--
+-- This value is stored as a lowercase string.
+--
+-- 'dbParameterGroupFamily', 'createDBClusterParameterGroup_dbParameterGroupFamily' - The DB cluster parameter group family name. A DB cluster parameter group
+-- can be associated with one and only one DB cluster parameter group
+-- family, and can be applied only to a DB cluster running a database
+-- engine and engine version compatible with that DB cluster parameter
+-- group family.
+--
+-- 'description', 'createDBClusterParameterGroup_description' - The description for the DB 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 new DB 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 DB cluster parameter group.
+--
+-- Constraints:
+--
+-- -   Must 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 DB cluster parameter group family name. A DB cluster parameter group
+-- can be associated with one and only one DB cluster parameter group
+-- family, and can be applied only to a DB cluster running a database
+-- engine and engine version compatible with that DB cluster parameter
+-- group family.
+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 DB 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
diff --git a/gen/Amazonka/Neptune/CreateDBClusterSnapshot.hs b/gen/Amazonka/Neptune/CreateDBClusterSnapshot.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/CreateDBClusterSnapshot.hs
@@ -0,0 +1,251 @@
+{-# 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.Neptune.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 DB cluster.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateDBClusterSnapshot' smart constructor.
+data CreateDBClusterSnapshot = CreateDBClusterSnapshot'
+  { -- | The tags to be assigned to the DB cluster snapshot.
+    tags :: Prelude.Maybe [Tag],
+    -- | The identifier of the DB cluster snapshot. This parameter is stored as a
+    -- lowercase string.
+    --
+    -- Constraints:
+    --
+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens.
+    --
+    -- -   First character must be a letter.
+    --
+    -- -   Cannot end with a hyphen or contain two consecutive hyphens.
+    --
+    -- Example: @my-cluster1-snapshot1@
+    dbClusterSnapshotIdentifier :: Prelude.Text,
+    -- | The identifier of the DB cluster to create a snapshot for. This
+    -- parameter is not case-sensitive.
+    --
+    -- Constraints:
+    --
+    -- -   Must match the identifier of an existing DBCluster.
+    --
+    -- Example: @my-cluster1@
+    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 DB cluster snapshot.
+--
+-- 'dbClusterSnapshotIdentifier', 'createDBClusterSnapshot_dbClusterSnapshotIdentifier' - The identifier of the DB cluster snapshot. This parameter is stored as a
+-- lowercase string.
+--
+-- Constraints:
+--
+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.
+--
+-- -   First character must be a letter.
+--
+-- -   Cannot end with a hyphen or contain two consecutive hyphens.
+--
+-- Example: @my-cluster1-snapshot1@
+--
+-- 'dbClusterIdentifier', 'createDBClusterSnapshot_dbClusterIdentifier' - The identifier of the DB cluster to create a snapshot for. This
+-- parameter is not case-sensitive.
+--
+-- Constraints:
+--
+-- -   Must match the identifier of an existing DBCluster.
+--
+-- Example: @my-cluster1@
+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 DB 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 DB cluster snapshot. This parameter is stored as a
+-- lowercase string.
+--
+-- Constraints:
+--
+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.
+--
+-- -   First character must be a letter.
+--
+-- -   Cannot end with a hyphen or contain two consecutive hyphens.
+--
+-- Example: @my-cluster1-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 DB cluster to create a snapshot for. This
+-- parameter is not case-sensitive.
+--
+-- Constraints:
+--
+-- -   Must match the identifier of an existing DBCluster.
+--
+-- Example: @my-cluster1@
+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
diff --git a/gen/Amazonka/Neptune/CreateDBInstance.hs b/gen/Amazonka/Neptune/CreateDBInstance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/CreateDBInstance.hs
@@ -0,0 +1,1177 @@
+{-# 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.Neptune.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 DB instance.
+module Amazonka.Neptune.CreateDBInstance
+  ( -- * Creating a Request
+    CreateDBInstance (..),
+    newCreateDBInstance,
+
+    -- * Request Lenses
+    createDBInstance_allocatedStorage,
+    createDBInstance_autoMinorVersionUpgrade,
+    createDBInstance_availabilityZone,
+    createDBInstance_backupRetentionPeriod,
+    createDBInstance_characterSetName,
+    createDBInstance_copyTagsToSnapshot,
+    createDBInstance_dbClusterIdentifier,
+    createDBInstance_dbName,
+    createDBInstance_dbParameterGroupName,
+    createDBInstance_dbSecurityGroups,
+    createDBInstance_dbSubnetGroupName,
+    createDBInstance_deletionProtection,
+    createDBInstance_domain,
+    createDBInstance_domainIAMRoleName,
+    createDBInstance_enableCloudwatchLogsExports,
+    createDBInstance_enableIAMDatabaseAuthentication,
+    createDBInstance_enablePerformanceInsights,
+    createDBInstance_engineVersion,
+    createDBInstance_iops,
+    createDBInstance_kmsKeyId,
+    createDBInstance_licenseModel,
+    createDBInstance_masterUserPassword,
+    createDBInstance_masterUsername,
+    createDBInstance_monitoringInterval,
+    createDBInstance_monitoringRoleArn,
+    createDBInstance_multiAZ,
+    createDBInstance_optionGroupName,
+    createDBInstance_performanceInsightsKMSKeyId,
+    createDBInstance_port,
+    createDBInstance_preferredBackupWindow,
+    createDBInstance_preferredMaintenanceWindow,
+    createDBInstance_promotionTier,
+    createDBInstance_publiclyAccessible,
+    createDBInstance_storageEncrypted,
+    createDBInstance_storageType,
+    createDBInstance_tags,
+    createDBInstance_tdeCredentialArn,
+    createDBInstance_tdeCredentialPassword,
+    createDBInstance_timezone,
+    createDBInstance_vpcSecurityGroupIds,
+    createDBInstance_dbInstanceIdentifier,
+    createDBInstance_dbInstanceClass,
+    createDBInstance_engine,
+
+    -- * 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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateDBInstance' smart constructor.
+data CreateDBInstance = CreateDBInstance'
+  { -- | Not supported by Neptune.
+    allocatedStorage :: Prelude.Maybe Prelude.Int,
+    -- | Indicates that minor engine upgrades are applied automatically to the DB
+    -- instance during the maintenance window.
+    --
+    -- Default: @true@
+    autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
+    -- | The EC2 Availability Zone that the DB instance is created in
+    --
+    -- Default: A random, system-chosen Availability Zone in the endpoint\'s
+    -- Amazon Region.
+    --
+    -- Example: @us-east-1d@
+    --
+    -- Constraint: The AvailabilityZone parameter can\'t be specified if the
+    -- MultiAZ parameter is set to @true@. The specified Availability Zone must
+    -- be in the same Amazon Region as the current endpoint.
+    availabilityZone :: Prelude.Maybe Prelude.Text,
+    -- | The number of days for which automated backups are retained.
+    --
+    -- Not applicable. The retention period for automated backups is managed by
+    -- the DB cluster. For more information, see CreateDBCluster.
+    --
+    -- Default: 1
+    --
+    -- Constraints:
+    --
+    -- -   Must be a value from 0 to 35
+    --
+    -- -   Cannot be set to 0 if the DB instance is a source to Read Replicas
+    backupRetentionPeriod :: Prelude.Maybe Prelude.Int,
+    -- | /(Not supported by Neptune)/
+    characterSetName :: Prelude.Maybe Prelude.Text,
+    -- | True to copy all tags from the DB instance to snapshots of the DB
+    -- instance, and otherwise false. The default is false.
+    copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,
+    -- | The identifier of the DB cluster that the instance will belong to.
+    --
+    -- For information on creating a DB cluster, see CreateDBCluster.
+    --
+    -- Type: String
+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | Not supported.
+    dbName :: Prelude.Maybe Prelude.Text,
+    -- | The name of the DB parameter group to associate with this DB instance.
+    -- If this argument is omitted, the default DBParameterGroup for the
+    -- specified engine is used.
+    --
+    -- Constraints:
+    --
+    -- -   Must be 1 to 255 letters, numbers, or hyphens.
+    --
+    -- -   First character must be a letter
+    --
+    -- -   Cannot end with a hyphen or contain two consecutive hyphens
+    dbParameterGroupName :: Prelude.Maybe Prelude.Text,
+    -- | A list of DB security groups to associate with this DB instance.
+    --
+    -- Default: The default DB security group for the database engine.
+    dbSecurityGroups :: Prelude.Maybe [Prelude.Text],
+    -- | A DB subnet group to associate with this DB instance.
+    --
+    -- If there is no DB subnet group, then it is a non-VPC DB instance.
+    dbSubnetGroupName :: Prelude.Maybe Prelude.Text,
+    -- | A value that indicates whether the DB instance has deletion protection
+    -- enabled. The database can\'t be deleted when deletion protection is
+    -- enabled. By default, deletion protection is disabled. See
+    -- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
+    --
+    -- DB instances in a DB cluster can be deleted even when deletion
+    -- protection is enabled in their parent DB cluster.
+    deletionProtection :: Prelude.Maybe Prelude.Bool,
+    -- | Specify the Active Directory Domain to create the instance in.
+    domain :: Prelude.Maybe Prelude.Text,
+    -- | Specify the name of the IAM role to be used when making API calls to the
+    -- Directory Service.
+    domainIAMRoleName :: Prelude.Maybe Prelude.Text,
+    -- | The list of log types that need to be enabled for exporting to
+    -- CloudWatch Logs.
+    enableCloudwatchLogsExports :: Prelude.Maybe [Prelude.Text],
+    -- | Not supported by Neptune (ignored).
+    enableIAMDatabaseAuthentication :: Prelude.Maybe Prelude.Bool,
+    -- | /(Not supported by Neptune)/
+    enablePerformanceInsights :: Prelude.Maybe Prelude.Bool,
+    -- | The version number of the database engine to use. Currently, setting
+    -- this parameter has no effect.
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | The amount of Provisioned IOPS (input\/output operations per second) to
+    -- be initially allocated for the DB instance.
+    iops :: Prelude.Maybe Prelude.Int,
+    -- | The Amazon KMS key identifier for an encrypted DB instance.
+    --
+    -- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
+    -- encryption key. If you are creating a DB instance with the same Amazon
+    -- account that owns the KMS encryption key used to encrypt the new DB
+    -- instance, then you can use the KMS key alias instead of the ARN for the
+    -- KM encryption key.
+    --
+    -- Not applicable. The KMS key identifier is managed by the DB cluster. For
+    -- more information, see CreateDBCluster.
+    --
+    -- If the @StorageEncrypted@ parameter is true, and you do not specify a
+    -- value for the @KmsKeyId@ parameter, then Amazon Neptune will use your
+    -- default encryption key. Amazon KMS creates the default encryption key
+    -- for your Amazon account. Your Amazon account has a different default
+    -- encryption key for each Amazon Region.
+    kmsKeyId :: Prelude.Maybe Prelude.Text,
+    -- | License model information for this DB instance.
+    --
+    -- Valid values: @license-included@ | @bring-your-own-license@ |
+    -- @general-public-license@
+    licenseModel :: Prelude.Maybe Prelude.Text,
+    -- | Not supported by Neptune.
+    masterUserPassword :: Prelude.Maybe Prelude.Text,
+    -- | Not supported by Neptune.
+    masterUsername :: Prelude.Maybe Prelude.Text,
+    -- | The interval, in seconds, between points when Enhanced Monitoring
+    -- metrics are collected for the DB instance. To disable collecting
+    -- Enhanced Monitoring metrics, specify 0. The default is 0.
+    --
+    -- If @MonitoringRoleArn@ is specified, then you must also set
+    -- @MonitoringInterval@ to a value other than 0.
+    --
+    -- Valid Values: @0, 1, 5, 10, 15, 30, 60@
+    monitoringInterval :: Prelude.Maybe Prelude.Int,
+    -- | The ARN for the IAM role that permits Neptune to send enhanced
+    -- monitoring metrics to Amazon CloudWatch Logs. For example,
+    -- @arn:aws:iam:123456789012:role\/emaccess@.
+    --
+    -- If @MonitoringInterval@ is set to a value other than 0, then you must
+    -- supply a @MonitoringRoleArn@ value.
+    monitoringRoleArn :: Prelude.Maybe Prelude.Text,
+    -- | Specifies if the DB instance is a Multi-AZ deployment. You can\'t set
+    -- the AvailabilityZone parameter if the MultiAZ parameter is set to true.
+    multiAZ :: Prelude.Maybe Prelude.Bool,
+    -- | /(Not supported by Neptune)/
+    optionGroupName :: Prelude.Maybe Prelude.Text,
+    -- | /(Not supported by Neptune)/
+    performanceInsightsKMSKeyId :: Prelude.Maybe Prelude.Text,
+    -- | The port number on which the database accepts connections.
+    --
+    -- Not applicable. The port is managed by the DB cluster. For more
+    -- information, see CreateDBCluster.
+    --
+    -- Default: @8182@
+    --
+    -- Type: Integer
+    port :: Prelude.Maybe Prelude.Int,
+    -- | The daily time range during which automated backups are created.
+    --
+    -- Not applicable. The daily time range for creating automated backups is
+    -- managed by the DB cluster. For more information, see CreateDBCluster.
+    preferredBackupWindow :: 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 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 Read 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,
+    -- | This flag should no longer be used.
+    publiclyAccessible :: Prelude.Maybe Prelude.Bool,
+    -- | Specifies whether the DB instance is encrypted.
+    --
+    -- Not applicable. The encryption for DB instances is managed by the DB
+    -- cluster. For more information, see CreateDBCluster.
+    --
+    -- Default: false
+    storageEncrypted :: Prelude.Maybe Prelude.Bool,
+    -- | Specifies the storage type to be associated with the DB instance.
+    --
+    -- Not applicable. Storage is managed by the DB Cluster.
+    storageType :: Prelude.Maybe Prelude.Text,
+    -- | The tags to assign to the new instance.
+    tags :: Prelude.Maybe [Tag],
+    -- | The ARN from the key store with which to associate the instance for TDE
+    -- encryption.
+    tdeCredentialArn :: Prelude.Maybe Prelude.Text,
+    -- | The password for the given ARN from the key store in order to access the
+    -- device.
+    tdeCredentialPassword :: Prelude.Maybe Prelude.Text,
+    -- | The time zone of the DB instance.
+    timezone :: Prelude.Maybe Prelude.Text,
+    -- | A list of EC2 VPC security groups to associate with this DB instance.
+    --
+    -- Not applicable. The associated list of EC2 VPC security groups is
+    -- managed by the DB cluster. For more information, see CreateDBCluster.
+    --
+    -- Default: The default EC2 VPC security group for the DB subnet group\'s
+    -- VPC.
+    vpcSecurityGroupIds :: Prelude.Maybe [Prelude.Text],
+    -- | The DB instance identifier. This parameter is stored as a lowercase
+    -- string.
+    --
+    -- Constraints:
+    --
+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens.
+    --
+    -- -   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 DB instance, for example,
+    -- @db.m4.large@. Not all DB instance classes are available in all Amazon
+    -- Regions.
+    dbInstanceClass :: Prelude.Text,
+    -- | The name of the database engine to be used for this instance.
+    --
+    -- Valid Values: @neptune@
+    engine :: 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:
+--
+-- 'allocatedStorage', 'createDBInstance_allocatedStorage' - Not supported by Neptune.
+--
+-- 'autoMinorVersionUpgrade', 'createDBInstance_autoMinorVersionUpgrade' - Indicates that minor engine upgrades are applied automatically to the DB
+-- instance during the maintenance window.
+--
+-- Default: @true@
+--
+-- 'availabilityZone', 'createDBInstance_availabilityZone' - The EC2 Availability Zone that the DB instance is created in
+--
+-- Default: A random, system-chosen Availability Zone in the endpoint\'s
+-- Amazon Region.
+--
+-- Example: @us-east-1d@
+--
+-- Constraint: The AvailabilityZone parameter can\'t be specified if the
+-- MultiAZ parameter is set to @true@. The specified Availability Zone must
+-- be in the same Amazon Region as the current endpoint.
+--
+-- 'backupRetentionPeriod', 'createDBInstance_backupRetentionPeriod' - The number of days for which automated backups are retained.
+--
+-- Not applicable. The retention period for automated backups is managed by
+-- the DB cluster. For more information, see CreateDBCluster.
+--
+-- Default: 1
+--
+-- Constraints:
+--
+-- -   Must be a value from 0 to 35
+--
+-- -   Cannot be set to 0 if the DB instance is a source to Read Replicas
+--
+-- 'characterSetName', 'createDBInstance_characterSetName' - /(Not supported by Neptune)/
+--
+-- 'copyTagsToSnapshot', 'createDBInstance_copyTagsToSnapshot' - True to copy all tags from the DB instance to snapshots of the DB
+-- instance, and otherwise false. The default is false.
+--
+-- 'dbClusterIdentifier', 'createDBInstance_dbClusterIdentifier' - The identifier of the DB cluster that the instance will belong to.
+--
+-- For information on creating a DB cluster, see CreateDBCluster.
+--
+-- Type: String
+--
+-- 'dbName', 'createDBInstance_dbName' - Not supported.
+--
+-- 'dbParameterGroupName', 'createDBInstance_dbParameterGroupName' - The name of the DB parameter group to associate with this DB instance.
+-- If this argument is omitted, the default DBParameterGroup for the
+-- specified engine is used.
+--
+-- Constraints:
+--
+-- -   Must be 1 to 255 letters, numbers, or hyphens.
+--
+-- -   First character must be a letter
+--
+-- -   Cannot end with a hyphen or contain two consecutive hyphens
+--
+-- 'dbSecurityGroups', 'createDBInstance_dbSecurityGroups' - A list of DB security groups to associate with this DB instance.
+--
+-- Default: The default DB security group for the database engine.
+--
+-- 'dbSubnetGroupName', 'createDBInstance_dbSubnetGroupName' - A DB subnet group to associate with this DB instance.
+--
+-- If there is no DB subnet group, then it is a non-VPC DB instance.
+--
+-- 'deletionProtection', 'createDBInstance_deletionProtection' - A value that indicates whether the DB instance has deletion protection
+-- enabled. The database can\'t be deleted when deletion protection is
+-- enabled. By default, deletion protection is disabled. See
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
+--
+-- DB instances in a DB cluster can be deleted even when deletion
+-- protection is enabled in their parent DB cluster.
+--
+-- 'domain', 'createDBInstance_domain' - Specify the Active Directory Domain to create the instance in.
+--
+-- 'domainIAMRoleName', 'createDBInstance_domainIAMRoleName' - Specify the name of the IAM role to be used when making API calls to the
+-- Directory Service.
+--
+-- 'enableCloudwatchLogsExports', 'createDBInstance_enableCloudwatchLogsExports' - The list of log types that need to be enabled for exporting to
+-- CloudWatch Logs.
+--
+-- 'enableIAMDatabaseAuthentication', 'createDBInstance_enableIAMDatabaseAuthentication' - Not supported by Neptune (ignored).
+--
+-- 'enablePerformanceInsights', 'createDBInstance_enablePerformanceInsights' - /(Not supported by Neptune)/
+--
+-- 'engineVersion', 'createDBInstance_engineVersion' - The version number of the database engine to use. Currently, setting
+-- this parameter has no effect.
+--
+-- 'iops', 'createDBInstance_iops' - The amount of Provisioned IOPS (input\/output operations per second) to
+-- be initially allocated for the DB instance.
+--
+-- 'kmsKeyId', 'createDBInstance_kmsKeyId' - The Amazon KMS key identifier for an encrypted DB instance.
+--
+-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
+-- encryption key. If you are creating a DB instance with the same Amazon
+-- account that owns the KMS encryption key used to encrypt the new DB
+-- instance, then you can use the KMS key alias instead of the ARN for the
+-- KM encryption key.
+--
+-- Not applicable. The KMS key identifier is managed by the DB cluster. For
+-- more information, see CreateDBCluster.
+--
+-- If the @StorageEncrypted@ parameter is true, and you do not specify a
+-- value for the @KmsKeyId@ parameter, then Amazon Neptune will use your
+-- default encryption key. Amazon KMS creates the default encryption key
+-- for your Amazon account. Your Amazon account has a different default
+-- encryption key for each Amazon Region.
+--
+-- 'licenseModel', 'createDBInstance_licenseModel' - License model information for this DB instance.
+--
+-- Valid values: @license-included@ | @bring-your-own-license@ |
+-- @general-public-license@
+--
+-- 'masterUserPassword', 'createDBInstance_masterUserPassword' - Not supported by Neptune.
+--
+-- 'masterUsername', 'createDBInstance_masterUsername' - Not supported by Neptune.
+--
+-- 'monitoringInterval', 'createDBInstance_monitoringInterval' - The interval, in seconds, between points when Enhanced Monitoring
+-- metrics are collected for the DB instance. To disable collecting
+-- Enhanced Monitoring metrics, specify 0. The default is 0.
+--
+-- If @MonitoringRoleArn@ is specified, then you must also set
+-- @MonitoringInterval@ to a value other than 0.
+--
+-- Valid Values: @0, 1, 5, 10, 15, 30, 60@
+--
+-- 'monitoringRoleArn', 'createDBInstance_monitoringRoleArn' - The ARN for the IAM role that permits Neptune to send enhanced
+-- monitoring metrics to Amazon CloudWatch Logs. For example,
+-- @arn:aws:iam:123456789012:role\/emaccess@.
+--
+-- If @MonitoringInterval@ is set to a value other than 0, then you must
+-- supply a @MonitoringRoleArn@ value.
+--
+-- 'multiAZ', 'createDBInstance_multiAZ' - Specifies if the DB instance is a Multi-AZ deployment. You can\'t set
+-- the AvailabilityZone parameter if the MultiAZ parameter is set to true.
+--
+-- 'optionGroupName', 'createDBInstance_optionGroupName' - /(Not supported by Neptune)/
+--
+-- 'performanceInsightsKMSKeyId', 'createDBInstance_performanceInsightsKMSKeyId' - /(Not supported by Neptune)/
+--
+-- 'port', 'createDBInstance_port' - The port number on which the database accepts connections.
+--
+-- Not applicable. The port is managed by the DB cluster. For more
+-- information, see CreateDBCluster.
+--
+-- Default: @8182@
+--
+-- Type: Integer
+--
+-- 'preferredBackupWindow', 'createDBInstance_preferredBackupWindow' - The daily time range during which automated backups are created.
+--
+-- Not applicable. The daily time range for creating automated backups is
+-- managed by the DB cluster. For more information, see CreateDBCluster.
+--
+-- '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 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 Read Replica is promoted to
+-- the primary instance after a failure of the existing primary instance.
+--
+-- Default: 1
+--
+-- Valid Values: 0 - 15
+--
+-- 'publiclyAccessible', 'createDBInstance_publiclyAccessible' - This flag should no longer be used.
+--
+-- 'storageEncrypted', 'createDBInstance_storageEncrypted' - Specifies whether the DB instance is encrypted.
+--
+-- Not applicable. The encryption for DB instances is managed by the DB
+-- cluster. For more information, see CreateDBCluster.
+--
+-- Default: false
+--
+-- 'storageType', 'createDBInstance_storageType' - Specifies the storage type to be associated with the DB instance.
+--
+-- Not applicable. Storage is managed by the DB Cluster.
+--
+-- 'tags', 'createDBInstance_tags' - The tags to assign to the new instance.
+--
+-- 'tdeCredentialArn', 'createDBInstance_tdeCredentialArn' - The ARN from the key store with which to associate the instance for TDE
+-- encryption.
+--
+-- 'tdeCredentialPassword', 'createDBInstance_tdeCredentialPassword' - The password for the given ARN from the key store in order to access the
+-- device.
+--
+-- 'timezone', 'createDBInstance_timezone' - The time zone of the DB instance.
+--
+-- 'vpcSecurityGroupIds', 'createDBInstance_vpcSecurityGroupIds' - A list of EC2 VPC security groups to associate with this DB instance.
+--
+-- Not applicable. The associated list of EC2 VPC security groups is
+-- managed by the DB cluster. For more information, see CreateDBCluster.
+--
+-- Default: The default EC2 VPC security group for the DB subnet group\'s
+-- VPC.
+--
+-- 'dbInstanceIdentifier', 'createDBInstance_dbInstanceIdentifier' - The DB instance identifier. This parameter is stored as a lowercase
+-- string.
+--
+-- Constraints:
+--
+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.
+--
+-- -   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 DB instance, for example,
+-- @db.m4.large@. Not all DB instance classes are available in all Amazon
+-- Regions.
+--
+-- 'engine', 'createDBInstance_engine' - The name of the database engine to be used for this instance.
+--
+-- Valid Values: @neptune@
+newCreateDBInstance ::
+  -- | 'dbInstanceIdentifier'
+  Prelude.Text ->
+  -- | 'dbInstanceClass'
+  Prelude.Text ->
+  -- | 'engine'
+  Prelude.Text ->
+  CreateDBInstance
+newCreateDBInstance
+  pDBInstanceIdentifier_
+  pDBInstanceClass_
+  pEngine_ =
+    CreateDBInstance'
+      { allocatedStorage =
+          Prelude.Nothing,
+        autoMinorVersionUpgrade = Prelude.Nothing,
+        availabilityZone = Prelude.Nothing,
+        backupRetentionPeriod = Prelude.Nothing,
+        characterSetName = Prelude.Nothing,
+        copyTagsToSnapshot = Prelude.Nothing,
+        dbClusterIdentifier = Prelude.Nothing,
+        dbName = Prelude.Nothing,
+        dbParameterGroupName = Prelude.Nothing,
+        dbSecurityGroups = Prelude.Nothing,
+        dbSubnetGroupName = Prelude.Nothing,
+        deletionProtection = Prelude.Nothing,
+        domain = Prelude.Nothing,
+        domainIAMRoleName = Prelude.Nothing,
+        enableCloudwatchLogsExports = Prelude.Nothing,
+        enableIAMDatabaseAuthentication = Prelude.Nothing,
+        enablePerformanceInsights = Prelude.Nothing,
+        engineVersion = Prelude.Nothing,
+        iops = Prelude.Nothing,
+        kmsKeyId = Prelude.Nothing,
+        licenseModel = Prelude.Nothing,
+        masterUserPassword = Prelude.Nothing,
+        masterUsername = Prelude.Nothing,
+        monitoringInterval = Prelude.Nothing,
+        monitoringRoleArn = Prelude.Nothing,
+        multiAZ = Prelude.Nothing,
+        optionGroupName = Prelude.Nothing,
+        performanceInsightsKMSKeyId = Prelude.Nothing,
+        port = Prelude.Nothing,
+        preferredBackupWindow = Prelude.Nothing,
+        preferredMaintenanceWindow = Prelude.Nothing,
+        promotionTier = Prelude.Nothing,
+        publiclyAccessible = Prelude.Nothing,
+        storageEncrypted = Prelude.Nothing,
+        storageType = Prelude.Nothing,
+        tags = Prelude.Nothing,
+        tdeCredentialArn = Prelude.Nothing,
+        tdeCredentialPassword = Prelude.Nothing,
+        timezone = Prelude.Nothing,
+        vpcSecurityGroupIds = Prelude.Nothing,
+        dbInstanceIdentifier = pDBInstanceIdentifier_,
+        dbInstanceClass = pDBInstanceClass_,
+        engine = pEngine_
+      }
+
+-- | Not supported by Neptune.
+createDBInstance_allocatedStorage :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Int)
+createDBInstance_allocatedStorage = Lens.lens (\CreateDBInstance' {allocatedStorage} -> allocatedStorage) (\s@CreateDBInstance' {} a -> s {allocatedStorage = a} :: CreateDBInstance)
+
+-- | Indicates that minor engine upgrades are applied automatically to the DB
+-- instance during the maintenance window.
+--
+-- Default: @true@
+createDBInstance_autoMinorVersionUpgrade :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
+createDBInstance_autoMinorVersionUpgrade = Lens.lens (\CreateDBInstance' {autoMinorVersionUpgrade} -> autoMinorVersionUpgrade) (\s@CreateDBInstance' {} a -> s {autoMinorVersionUpgrade = a} :: CreateDBInstance)
+
+-- | The EC2 Availability Zone that the DB instance is created in
+--
+-- Default: A random, system-chosen Availability Zone in the endpoint\'s
+-- Amazon Region.
+--
+-- Example: @us-east-1d@
+--
+-- Constraint: The AvailabilityZone parameter can\'t be specified if the
+-- MultiAZ parameter is set to @true@. The specified Availability Zone must
+-- be in the same Amazon Region as the current endpoint.
+createDBInstance_availabilityZone :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_availabilityZone = Lens.lens (\CreateDBInstance' {availabilityZone} -> availabilityZone) (\s@CreateDBInstance' {} a -> s {availabilityZone = a} :: CreateDBInstance)
+
+-- | The number of days for which automated backups are retained.
+--
+-- Not applicable. The retention period for automated backups is managed by
+-- the DB cluster. For more information, see CreateDBCluster.
+--
+-- Default: 1
+--
+-- Constraints:
+--
+-- -   Must be a value from 0 to 35
+--
+-- -   Cannot be set to 0 if the DB instance is a source to Read Replicas
+createDBInstance_backupRetentionPeriod :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Int)
+createDBInstance_backupRetentionPeriod = Lens.lens (\CreateDBInstance' {backupRetentionPeriod} -> backupRetentionPeriod) (\s@CreateDBInstance' {} a -> s {backupRetentionPeriod = a} :: CreateDBInstance)
+
+-- | /(Not supported by Neptune)/
+createDBInstance_characterSetName :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_characterSetName = Lens.lens (\CreateDBInstance' {characterSetName} -> characterSetName) (\s@CreateDBInstance' {} a -> s {characterSetName = a} :: CreateDBInstance)
+
+-- | True to copy all tags from the DB instance to snapshots of the DB
+-- instance, and otherwise false. The default is false.
+createDBInstance_copyTagsToSnapshot :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
+createDBInstance_copyTagsToSnapshot = Lens.lens (\CreateDBInstance' {copyTagsToSnapshot} -> copyTagsToSnapshot) (\s@CreateDBInstance' {} a -> s {copyTagsToSnapshot = a} :: CreateDBInstance)
+
+-- | The identifier of the DB cluster that the instance will belong to.
+--
+-- For information on creating a DB cluster, see CreateDBCluster.
+--
+-- Type: String
+createDBInstance_dbClusterIdentifier :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_dbClusterIdentifier = Lens.lens (\CreateDBInstance' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@CreateDBInstance' {} a -> s {dbClusterIdentifier = a} :: CreateDBInstance)
+
+-- | Not supported.
+createDBInstance_dbName :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_dbName = Lens.lens (\CreateDBInstance' {dbName} -> dbName) (\s@CreateDBInstance' {} a -> s {dbName = a} :: CreateDBInstance)
+
+-- | The name of the DB parameter group to associate with this DB instance.
+-- If this argument is omitted, the default DBParameterGroup for the
+-- specified engine is used.
+--
+-- Constraints:
+--
+-- -   Must be 1 to 255 letters, numbers, or hyphens.
+--
+-- -   First character must be a letter
+--
+-- -   Cannot end with a hyphen or contain two consecutive hyphens
+createDBInstance_dbParameterGroupName :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_dbParameterGroupName = Lens.lens (\CreateDBInstance' {dbParameterGroupName} -> dbParameterGroupName) (\s@CreateDBInstance' {} a -> s {dbParameterGroupName = a} :: CreateDBInstance)
+
+-- | A list of DB security groups to associate with this DB instance.
+--
+-- Default: The default DB security group for the database engine.
+createDBInstance_dbSecurityGroups :: Lens.Lens' CreateDBInstance (Prelude.Maybe [Prelude.Text])
+createDBInstance_dbSecurityGroups = Lens.lens (\CreateDBInstance' {dbSecurityGroups} -> dbSecurityGroups) (\s@CreateDBInstance' {} a -> s {dbSecurityGroups = a} :: CreateDBInstance) Prelude.. Lens.mapping Lens.coerced
+
+-- | A DB subnet group to associate with this DB instance.
+--
+-- If there is no DB subnet group, then it is a non-VPC DB instance.
+createDBInstance_dbSubnetGroupName :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_dbSubnetGroupName = Lens.lens (\CreateDBInstance' {dbSubnetGroupName} -> dbSubnetGroupName) (\s@CreateDBInstance' {} a -> s {dbSubnetGroupName = a} :: CreateDBInstance)
+
+-- | A value that indicates whether the DB instance has deletion protection
+-- enabled. The database can\'t be deleted when deletion protection is
+-- enabled. By default, deletion protection is disabled. See
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
+--
+-- DB instances in a DB cluster can be deleted even when deletion
+-- protection is enabled in their parent DB cluster.
+createDBInstance_deletionProtection :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
+createDBInstance_deletionProtection = Lens.lens (\CreateDBInstance' {deletionProtection} -> deletionProtection) (\s@CreateDBInstance' {} a -> s {deletionProtection = a} :: CreateDBInstance)
+
+-- | Specify the Active Directory Domain to create the instance in.
+createDBInstance_domain :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_domain = Lens.lens (\CreateDBInstance' {domain} -> domain) (\s@CreateDBInstance' {} a -> s {domain = a} :: CreateDBInstance)
+
+-- | Specify the name of the IAM role to be used when making API calls to the
+-- Directory Service.
+createDBInstance_domainIAMRoleName :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_domainIAMRoleName = Lens.lens (\CreateDBInstance' {domainIAMRoleName} -> domainIAMRoleName) (\s@CreateDBInstance' {} a -> s {domainIAMRoleName = a} :: CreateDBInstance)
+
+-- | The list of log types that need to be enabled for exporting to
+-- CloudWatch Logs.
+createDBInstance_enableCloudwatchLogsExports :: Lens.Lens' CreateDBInstance (Prelude.Maybe [Prelude.Text])
+createDBInstance_enableCloudwatchLogsExports = Lens.lens (\CreateDBInstance' {enableCloudwatchLogsExports} -> enableCloudwatchLogsExports) (\s@CreateDBInstance' {} a -> s {enableCloudwatchLogsExports = a} :: CreateDBInstance) Prelude.. Lens.mapping Lens.coerced
+
+-- | Not supported by Neptune (ignored).
+createDBInstance_enableIAMDatabaseAuthentication :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
+createDBInstance_enableIAMDatabaseAuthentication = Lens.lens (\CreateDBInstance' {enableIAMDatabaseAuthentication} -> enableIAMDatabaseAuthentication) (\s@CreateDBInstance' {} a -> s {enableIAMDatabaseAuthentication = a} :: CreateDBInstance)
+
+-- | /(Not supported by Neptune)/
+createDBInstance_enablePerformanceInsights :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
+createDBInstance_enablePerformanceInsights = Lens.lens (\CreateDBInstance' {enablePerformanceInsights} -> enablePerformanceInsights) (\s@CreateDBInstance' {} a -> s {enablePerformanceInsights = a} :: CreateDBInstance)
+
+-- | The version number of the database engine to use. Currently, setting
+-- this parameter has no effect.
+createDBInstance_engineVersion :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_engineVersion = Lens.lens (\CreateDBInstance' {engineVersion} -> engineVersion) (\s@CreateDBInstance' {} a -> s {engineVersion = a} :: CreateDBInstance)
+
+-- | The amount of Provisioned IOPS (input\/output operations per second) to
+-- be initially allocated for the DB instance.
+createDBInstance_iops :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Int)
+createDBInstance_iops = Lens.lens (\CreateDBInstance' {iops} -> iops) (\s@CreateDBInstance' {} a -> s {iops = a} :: CreateDBInstance)
+
+-- | The Amazon KMS key identifier for an encrypted DB instance.
+--
+-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
+-- encryption key. If you are creating a DB instance with the same Amazon
+-- account that owns the KMS encryption key used to encrypt the new DB
+-- instance, then you can use the KMS key alias instead of the ARN for the
+-- KM encryption key.
+--
+-- Not applicable. The KMS key identifier is managed by the DB cluster. For
+-- more information, see CreateDBCluster.
+--
+-- If the @StorageEncrypted@ parameter is true, and you do not specify a
+-- value for the @KmsKeyId@ parameter, then Amazon Neptune will use your
+-- default encryption key. Amazon KMS creates the default encryption key
+-- for your Amazon account. Your Amazon account has a different default
+-- encryption key for each Amazon Region.
+createDBInstance_kmsKeyId :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_kmsKeyId = Lens.lens (\CreateDBInstance' {kmsKeyId} -> kmsKeyId) (\s@CreateDBInstance' {} a -> s {kmsKeyId = a} :: CreateDBInstance)
+
+-- | License model information for this DB instance.
+--
+-- Valid values: @license-included@ | @bring-your-own-license@ |
+-- @general-public-license@
+createDBInstance_licenseModel :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_licenseModel = Lens.lens (\CreateDBInstance' {licenseModel} -> licenseModel) (\s@CreateDBInstance' {} a -> s {licenseModel = a} :: CreateDBInstance)
+
+-- | Not supported by Neptune.
+createDBInstance_masterUserPassword :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_masterUserPassword = Lens.lens (\CreateDBInstance' {masterUserPassword} -> masterUserPassword) (\s@CreateDBInstance' {} a -> s {masterUserPassword = a} :: CreateDBInstance)
+
+-- | Not supported by Neptune.
+createDBInstance_masterUsername :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_masterUsername = Lens.lens (\CreateDBInstance' {masterUsername} -> masterUsername) (\s@CreateDBInstance' {} a -> s {masterUsername = a} :: CreateDBInstance)
+
+-- | The interval, in seconds, between points when Enhanced Monitoring
+-- metrics are collected for the DB instance. To disable collecting
+-- Enhanced Monitoring metrics, specify 0. The default is 0.
+--
+-- If @MonitoringRoleArn@ is specified, then you must also set
+-- @MonitoringInterval@ to a value other than 0.
+--
+-- Valid Values: @0, 1, 5, 10, 15, 30, 60@
+createDBInstance_monitoringInterval :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Int)
+createDBInstance_monitoringInterval = Lens.lens (\CreateDBInstance' {monitoringInterval} -> monitoringInterval) (\s@CreateDBInstance' {} a -> s {monitoringInterval = a} :: CreateDBInstance)
+
+-- | The ARN for the IAM role that permits Neptune to send enhanced
+-- monitoring metrics to Amazon CloudWatch Logs. For example,
+-- @arn:aws:iam:123456789012:role\/emaccess@.
+--
+-- If @MonitoringInterval@ is set to a value other than 0, then you must
+-- supply a @MonitoringRoleArn@ value.
+createDBInstance_monitoringRoleArn :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_monitoringRoleArn = Lens.lens (\CreateDBInstance' {monitoringRoleArn} -> monitoringRoleArn) (\s@CreateDBInstance' {} a -> s {monitoringRoleArn = a} :: CreateDBInstance)
+
+-- | Specifies if the DB instance is a Multi-AZ deployment. You can\'t set
+-- the AvailabilityZone parameter if the MultiAZ parameter is set to true.
+createDBInstance_multiAZ :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
+createDBInstance_multiAZ = Lens.lens (\CreateDBInstance' {multiAZ} -> multiAZ) (\s@CreateDBInstance' {} a -> s {multiAZ = a} :: CreateDBInstance)
+
+-- | /(Not supported by Neptune)/
+createDBInstance_optionGroupName :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_optionGroupName = Lens.lens (\CreateDBInstance' {optionGroupName} -> optionGroupName) (\s@CreateDBInstance' {} a -> s {optionGroupName = a} :: CreateDBInstance)
+
+-- | /(Not supported by Neptune)/
+createDBInstance_performanceInsightsKMSKeyId :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_performanceInsightsKMSKeyId = Lens.lens (\CreateDBInstance' {performanceInsightsKMSKeyId} -> performanceInsightsKMSKeyId) (\s@CreateDBInstance' {} a -> s {performanceInsightsKMSKeyId = a} :: CreateDBInstance)
+
+-- | The port number on which the database accepts connections.
+--
+-- Not applicable. The port is managed by the DB cluster. For more
+-- information, see CreateDBCluster.
+--
+-- Default: @8182@
+--
+-- Type: Integer
+createDBInstance_port :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Int)
+createDBInstance_port = Lens.lens (\CreateDBInstance' {port} -> port) (\s@CreateDBInstance' {} a -> s {port = a} :: CreateDBInstance)
+
+-- | The daily time range during which automated backups are created.
+--
+-- Not applicable. The daily time range for creating automated backups is
+-- managed by the DB cluster. For more information, see CreateDBCluster.
+createDBInstance_preferredBackupWindow :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_preferredBackupWindow = Lens.lens (\CreateDBInstance' {preferredBackupWindow} -> preferredBackupWindow) (\s@CreateDBInstance' {} a -> s {preferredBackupWindow = 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 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 Read 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)
+
+-- | This flag should no longer be used.
+createDBInstance_publiclyAccessible :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
+createDBInstance_publiclyAccessible = Lens.lens (\CreateDBInstance' {publiclyAccessible} -> publiclyAccessible) (\s@CreateDBInstance' {} a -> s {publiclyAccessible = a} :: CreateDBInstance)
+
+-- | Specifies whether the DB instance is encrypted.
+--
+-- Not applicable. The encryption for DB instances is managed by the DB
+-- cluster. For more information, see CreateDBCluster.
+--
+-- Default: false
+createDBInstance_storageEncrypted :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
+createDBInstance_storageEncrypted = Lens.lens (\CreateDBInstance' {storageEncrypted} -> storageEncrypted) (\s@CreateDBInstance' {} a -> s {storageEncrypted = a} :: CreateDBInstance)
+
+-- | Specifies the storage type to be associated with the DB instance.
+--
+-- Not applicable. Storage is managed by the DB Cluster.
+createDBInstance_storageType :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_storageType = Lens.lens (\CreateDBInstance' {storageType} -> storageType) (\s@CreateDBInstance' {} a -> s {storageType = a} :: CreateDBInstance)
+
+-- | The tags to assign to the new 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 ARN from the key store with which to associate the instance for TDE
+-- encryption.
+createDBInstance_tdeCredentialArn :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_tdeCredentialArn = Lens.lens (\CreateDBInstance' {tdeCredentialArn} -> tdeCredentialArn) (\s@CreateDBInstance' {} a -> s {tdeCredentialArn = a} :: CreateDBInstance)
+
+-- | The password for the given ARN from the key store in order to access the
+-- device.
+createDBInstance_tdeCredentialPassword :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_tdeCredentialPassword = Lens.lens (\CreateDBInstance' {tdeCredentialPassword} -> tdeCredentialPassword) (\s@CreateDBInstance' {} a -> s {tdeCredentialPassword = a} :: CreateDBInstance)
+
+-- | The time zone of the DB instance.
+createDBInstance_timezone :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
+createDBInstance_timezone = Lens.lens (\CreateDBInstance' {timezone} -> timezone) (\s@CreateDBInstance' {} a -> s {timezone = a} :: CreateDBInstance)
+
+-- | A list of EC2 VPC security groups to associate with this DB instance.
+--
+-- Not applicable. The associated list of EC2 VPC security groups is
+-- managed by the DB cluster. For more information, see CreateDBCluster.
+--
+-- Default: The default EC2 VPC security group for the DB subnet group\'s
+-- VPC.
+createDBInstance_vpcSecurityGroupIds :: Lens.Lens' CreateDBInstance (Prelude.Maybe [Prelude.Text])
+createDBInstance_vpcSecurityGroupIds = Lens.lens (\CreateDBInstance' {vpcSecurityGroupIds} -> vpcSecurityGroupIds) (\s@CreateDBInstance' {} a -> s {vpcSecurityGroupIds = a} :: CreateDBInstance) Prelude.. Lens.mapping Lens.coerced
+
+-- | The DB instance identifier. This parameter is stored as a lowercase
+-- string.
+--
+-- Constraints:
+--
+-- -   Must contain from 1 to 63 letters, numbers, or hyphens.
+--
+-- -   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 DB instance, for example,
+-- @db.m4.large@. Not all DB instance classes are available in all Amazon
+-- Regions.
+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 Values: @neptune@
+createDBInstance_engine :: Lens.Lens' CreateDBInstance Prelude.Text
+createDBInstance_engine = Lens.lens (\CreateDBInstance' {engine} -> engine) (\s@CreateDBInstance' {} a -> s {engine = 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` allocatedStorage
+      `Prelude.hashWithSalt` autoMinorVersionUpgrade
+      `Prelude.hashWithSalt` availabilityZone
+      `Prelude.hashWithSalt` backupRetentionPeriod
+      `Prelude.hashWithSalt` characterSetName
+      `Prelude.hashWithSalt` copyTagsToSnapshot
+      `Prelude.hashWithSalt` dbClusterIdentifier
+      `Prelude.hashWithSalt` dbName
+      `Prelude.hashWithSalt` dbParameterGroupName
+      `Prelude.hashWithSalt` dbSecurityGroups
+      `Prelude.hashWithSalt` dbSubnetGroupName
+      `Prelude.hashWithSalt` deletionProtection
+      `Prelude.hashWithSalt` domain
+      `Prelude.hashWithSalt` domainIAMRoleName
+      `Prelude.hashWithSalt` enableCloudwatchLogsExports
+      `Prelude.hashWithSalt` enableIAMDatabaseAuthentication
+      `Prelude.hashWithSalt` enablePerformanceInsights
+      `Prelude.hashWithSalt` engineVersion
+      `Prelude.hashWithSalt` iops
+      `Prelude.hashWithSalt` kmsKeyId
+      `Prelude.hashWithSalt` licenseModel
+      `Prelude.hashWithSalt` masterUserPassword
+      `Prelude.hashWithSalt` masterUsername
+      `Prelude.hashWithSalt` monitoringInterval
+      `Prelude.hashWithSalt` monitoringRoleArn
+      `Prelude.hashWithSalt` multiAZ
+      `Prelude.hashWithSalt` optionGroupName
+      `Prelude.hashWithSalt` performanceInsightsKMSKeyId
+      `Prelude.hashWithSalt` port
+      `Prelude.hashWithSalt` preferredBackupWindow
+      `Prelude.hashWithSalt` preferredMaintenanceWindow
+      `Prelude.hashWithSalt` promotionTier
+      `Prelude.hashWithSalt` publiclyAccessible
+      `Prelude.hashWithSalt` storageEncrypted
+      `Prelude.hashWithSalt` storageType
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` tdeCredentialArn
+      `Prelude.hashWithSalt` tdeCredentialPassword
+      `Prelude.hashWithSalt` timezone
+      `Prelude.hashWithSalt` vpcSecurityGroupIds
+      `Prelude.hashWithSalt` dbInstanceIdentifier
+      `Prelude.hashWithSalt` dbInstanceClass
+      `Prelude.hashWithSalt` engine
+
+instance Prelude.NFData CreateDBInstance where
+  rnf CreateDBInstance' {..} =
+    Prelude.rnf allocatedStorage
+      `Prelude.seq` Prelude.rnf autoMinorVersionUpgrade
+      `Prelude.seq` Prelude.rnf availabilityZone
+      `Prelude.seq` Prelude.rnf backupRetentionPeriod
+      `Prelude.seq` Prelude.rnf characterSetName
+      `Prelude.seq` Prelude.rnf copyTagsToSnapshot
+      `Prelude.seq` Prelude.rnf dbClusterIdentifier
+      `Prelude.seq` Prelude.rnf dbName
+      `Prelude.seq` Prelude.rnf dbParameterGroupName
+      `Prelude.seq` Prelude.rnf dbSecurityGroups
+      `Prelude.seq` Prelude.rnf dbSubnetGroupName
+      `Prelude.seq` Prelude.rnf deletionProtection
+      `Prelude.seq` Prelude.rnf domain
+      `Prelude.seq` Prelude.rnf domainIAMRoleName
+      `Prelude.seq` Prelude.rnf enableCloudwatchLogsExports
+      `Prelude.seq` Prelude.rnf
+        enableIAMDatabaseAuthentication
+      `Prelude.seq` Prelude.rnf
+        enablePerformanceInsights
+      `Prelude.seq` Prelude.rnf engineVersion
+      `Prelude.seq` Prelude.rnf iops
+      `Prelude.seq` Prelude.rnf kmsKeyId
+      `Prelude.seq` Prelude.rnf licenseModel
+      `Prelude.seq` Prelude.rnf
+        masterUserPassword
+      `Prelude.seq` Prelude.rnf
+        masterUsername
+      `Prelude.seq` Prelude.rnf
+        monitoringInterval
+      `Prelude.seq` Prelude.rnf
+        monitoringRoleArn
+      `Prelude.seq` Prelude.rnf
+        multiAZ
+      `Prelude.seq` Prelude.rnf
+        optionGroupName
+      `Prelude.seq` Prelude.rnf
+        performanceInsightsKMSKeyId
+      `Prelude.seq` Prelude.rnf
+        port
+      `Prelude.seq` Prelude.rnf
+        preferredBackupWindow
+      `Prelude.seq` Prelude.rnf
+        preferredMaintenanceWindow
+      `Prelude.seq` Prelude.rnf
+        promotionTier
+      `Prelude.seq` Prelude.rnf
+        publiclyAccessible
+      `Prelude.seq` Prelude.rnf
+        storageEncrypted
+      `Prelude.seq` Prelude.rnf
+        storageType
+      `Prelude.seq` Prelude.rnf
+        tags
+      `Prelude.seq` Prelude.rnf
+        tdeCredentialArn
+      `Prelude.seq` Prelude.rnf
+        tdeCredentialPassword
+      `Prelude.seq` Prelude.rnf
+        timezone
+      `Prelude.seq` Prelude.rnf
+        vpcSecurityGroupIds
+      `Prelude.seq` Prelude.rnf
+        dbInstanceIdentifier
+      `Prelude.seq` Prelude.rnf
+        dbInstanceClass
+      `Prelude.seq` Prelude.rnf
+        engine
+
+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),
+        "AllocatedStorage" Data.=: allocatedStorage,
+        "AutoMinorVersionUpgrade"
+          Data.=: autoMinorVersionUpgrade,
+        "AvailabilityZone" Data.=: availabilityZone,
+        "BackupRetentionPeriod"
+          Data.=: backupRetentionPeriod,
+        "CharacterSetName" Data.=: characterSetName,
+        "CopyTagsToSnapshot" Data.=: copyTagsToSnapshot,
+        "DBClusterIdentifier" Data.=: dbClusterIdentifier,
+        "DBName" Data.=: dbName,
+        "DBParameterGroupName" Data.=: dbParameterGroupName,
+        "DBSecurityGroups"
+          Data.=: Data.toQuery
+            ( Data.toQueryList "DBSecurityGroupName"
+                Prelude.<$> dbSecurityGroups
+            ),
+        "DBSubnetGroupName" Data.=: dbSubnetGroupName,
+        "DeletionProtection" Data.=: deletionProtection,
+        "Domain" Data.=: domain,
+        "DomainIAMRoleName" Data.=: domainIAMRoleName,
+        "EnableCloudwatchLogsExports"
+          Data.=: Data.toQuery
+            ( Data.toQueryList "member"
+                Prelude.<$> enableCloudwatchLogsExports
+            ),
+        "EnableIAMDatabaseAuthentication"
+          Data.=: enableIAMDatabaseAuthentication,
+        "EnablePerformanceInsights"
+          Data.=: enablePerformanceInsights,
+        "EngineVersion" Data.=: engineVersion,
+        "Iops" Data.=: iops,
+        "KmsKeyId" Data.=: kmsKeyId,
+        "LicenseModel" Data.=: licenseModel,
+        "MasterUserPassword" Data.=: masterUserPassword,
+        "MasterUsername" Data.=: masterUsername,
+        "MonitoringInterval" Data.=: monitoringInterval,
+        "MonitoringRoleArn" Data.=: monitoringRoleArn,
+        "MultiAZ" Data.=: multiAZ,
+        "OptionGroupName" Data.=: optionGroupName,
+        "PerformanceInsightsKMSKeyId"
+          Data.=: performanceInsightsKMSKeyId,
+        "Port" Data.=: port,
+        "PreferredBackupWindow"
+          Data.=: preferredBackupWindow,
+        "PreferredMaintenanceWindow"
+          Data.=: preferredMaintenanceWindow,
+        "PromotionTier" Data.=: promotionTier,
+        "PubliclyAccessible" Data.=: publiclyAccessible,
+        "StorageEncrypted" Data.=: storageEncrypted,
+        "StorageType" Data.=: storageType,
+        "Tags"
+          Data.=: Data.toQuery
+            (Data.toQueryList "Tag" Prelude.<$> tags),
+        "TdeCredentialArn" Data.=: tdeCredentialArn,
+        "TdeCredentialPassword"
+          Data.=: tdeCredentialPassword,
+        "Timezone" Data.=: timezone,
+        "VpcSecurityGroupIds"
+          Data.=: Data.toQuery
+            ( Data.toQueryList "VpcSecurityGroupId"
+                Prelude.<$> vpcSecurityGroupIds
+            ),
+        "DBInstanceIdentifier" Data.=: dbInstanceIdentifier,
+        "DBInstanceClass" Data.=: dbInstanceClass,
+        "Engine" Data.=: engine
+      ]
+
+-- | /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
diff --git a/gen/Amazonka/Neptune/CreateDBParameterGroup.hs b/gen/Amazonka/Neptune/CreateDBParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/CreateDBParameterGroup.hs
@@ -0,0 +1,272 @@
+{-# 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.Neptune.CreateDBParameterGroup
+-- 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 DB parameter group.
+--
+-- A DB parameter group is initially created with the default parameters
+-- for the database engine used by the DB instance. To provide custom
+-- values for any of the parameters, you must modify the group after
+-- creating it using /ModifyDBParameterGroup/. Once you\'ve created a DB
+-- parameter group, you need to associate it with your DB instance using
+-- /ModifyDBInstance/. When you associate a new DB parameter group with a
+-- running DB instance, you need to reboot the DB instance without failover
+-- for the new DB parameter group and associated settings to take effect.
+--
+-- After you create a DB parameter group, you should wait at least 5
+-- minutes before creating your first DB instance that uses that DB
+-- parameter group as the default parameter group. This allows Amazon
+-- Neptune to fully complete the create action before the parameter group
+-- is used as the default for a new DB instance. This is especially
+-- important for parameters that are critical when creating the default
+-- database for a DB instance, such as the character set for the default
+-- database defined by the @character_set_database@ parameter. You can use
+-- the /Parameter Groups/ option of the Amazon Neptune console or the
+-- /DescribeDBParameters/ command to verify that your DB parameter group
+-- has been created or modified.
+module Amazonka.Neptune.CreateDBParameterGroup
+  ( -- * Creating a Request
+    CreateDBParameterGroup (..),
+    newCreateDBParameterGroup,
+
+    -- * Request Lenses
+    createDBParameterGroup_tags,
+    createDBParameterGroup_dbParameterGroupName,
+    createDBParameterGroup_dbParameterGroupFamily,
+    createDBParameterGroup_description,
+
+    -- * Destructuring the Response
+    CreateDBParameterGroupResponse (..),
+    newCreateDBParameterGroupResponse,
+
+    -- * Response Lenses
+    createDBParameterGroupResponse_dbParameterGroup,
+    createDBParameterGroupResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateDBParameterGroup' smart constructor.
+data CreateDBParameterGroup = CreateDBParameterGroup'
+  { -- | The tags to be assigned to the new DB parameter group.
+    tags :: Prelude.Maybe [Tag],
+    -- | The name of the DB parameter group.
+    --
+    -- Constraints:
+    --
+    -- -   Must be 1 to 255 letters, numbers, or hyphens.
+    --
+    -- -   First character must be a letter
+    --
+    -- -   Cannot end with a hyphen or contain two consecutive hyphens
+    --
+    -- This value is stored as a lowercase string.
+    dbParameterGroupName :: Prelude.Text,
+    -- | The DB parameter group family name. A DB parameter group can be
+    -- associated with one and only one DB parameter group family, and can be
+    -- applied only to a DB instance running a database engine and engine
+    -- version compatible with that DB parameter group family.
+    dbParameterGroupFamily :: Prelude.Text,
+    -- | The description for the DB parameter group.
+    description :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateDBParameterGroup' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDBParameterGroup_tags' - The tags to be assigned to the new DB parameter group.
+--
+-- 'dbParameterGroupName', 'createDBParameterGroup_dbParameterGroupName' - The name of the DB parameter group.
+--
+-- Constraints:
+--
+-- -   Must be 1 to 255 letters, numbers, or hyphens.
+--
+-- -   First character must be a letter
+--
+-- -   Cannot end with a hyphen or contain two consecutive hyphens
+--
+-- This value is stored as a lowercase string.
+--
+-- 'dbParameterGroupFamily', 'createDBParameterGroup_dbParameterGroupFamily' - The DB parameter group family name. A DB parameter group can be
+-- associated with one and only one DB parameter group family, and can be
+-- applied only to a DB instance running a database engine and engine
+-- version compatible with that DB parameter group family.
+--
+-- 'description', 'createDBParameterGroup_description' - The description for the DB parameter group.
+newCreateDBParameterGroup ::
+  -- | 'dbParameterGroupName'
+  Prelude.Text ->
+  -- | 'dbParameterGroupFamily'
+  Prelude.Text ->
+  -- | 'description'
+  Prelude.Text ->
+  CreateDBParameterGroup
+newCreateDBParameterGroup
+  pDBParameterGroupName_
+  pDBParameterGroupFamily_
+  pDescription_ =
+    CreateDBParameterGroup'
+      { tags = Prelude.Nothing,
+        dbParameterGroupName = pDBParameterGroupName_,
+        dbParameterGroupFamily = pDBParameterGroupFamily_,
+        description = pDescription_
+      }
+
+-- | The tags to be assigned to the new DB parameter group.
+createDBParameterGroup_tags :: Lens.Lens' CreateDBParameterGroup (Prelude.Maybe [Tag])
+createDBParameterGroup_tags = Lens.lens (\CreateDBParameterGroup' {tags} -> tags) (\s@CreateDBParameterGroup' {} a -> s {tags = a} :: CreateDBParameterGroup) Prelude.. Lens.mapping Lens.coerced
+
+-- | The name of the DB parameter group.
+--
+-- Constraints:
+--
+-- -   Must be 1 to 255 letters, numbers, or hyphens.
+--
+-- -   First character must be a letter
+--
+-- -   Cannot end with a hyphen or contain two consecutive hyphens
+--
+-- This value is stored as a lowercase string.
+createDBParameterGroup_dbParameterGroupName :: Lens.Lens' CreateDBParameterGroup Prelude.Text
+createDBParameterGroup_dbParameterGroupName = Lens.lens (\CreateDBParameterGroup' {dbParameterGroupName} -> dbParameterGroupName) (\s@CreateDBParameterGroup' {} a -> s {dbParameterGroupName = a} :: CreateDBParameterGroup)
+
+-- | The DB parameter group family name. A DB parameter group can be
+-- associated with one and only one DB parameter group family, and can be
+-- applied only to a DB instance running a database engine and engine
+-- version compatible with that DB parameter group family.
+createDBParameterGroup_dbParameterGroupFamily :: Lens.Lens' CreateDBParameterGroup Prelude.Text
+createDBParameterGroup_dbParameterGroupFamily = Lens.lens (\CreateDBParameterGroup' {dbParameterGroupFamily} -> dbParameterGroupFamily) (\s@CreateDBParameterGroup' {} a -> s {dbParameterGroupFamily = a} :: CreateDBParameterGroup)
+
+-- | The description for the DB parameter group.
+createDBParameterGroup_description :: Lens.Lens' CreateDBParameterGroup Prelude.Text
+createDBParameterGroup_description = Lens.lens (\CreateDBParameterGroup' {description} -> description) (\s@CreateDBParameterGroup' {} a -> s {description = a} :: CreateDBParameterGroup)
+
+instance Core.AWSRequest CreateDBParameterGroup where
+  type
+    AWSResponse CreateDBParameterGroup =
+      CreateDBParameterGroupResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveXMLWrapper
+      "CreateDBParameterGroupResult"
+      ( \s h x ->
+          CreateDBParameterGroupResponse'
+            Prelude.<$> (x Data..@? "DBParameterGroup")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateDBParameterGroup where
+  hashWithSalt _salt CreateDBParameterGroup' {..} =
+    _salt
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` dbParameterGroupName
+      `Prelude.hashWithSalt` dbParameterGroupFamily
+      `Prelude.hashWithSalt` description
+
+instance Prelude.NFData CreateDBParameterGroup where
+  rnf CreateDBParameterGroup' {..} =
+    Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf dbParameterGroupName
+      `Prelude.seq` Prelude.rnf dbParameterGroupFamily
+      `Prelude.seq` Prelude.rnf description
+
+instance Data.ToHeaders CreateDBParameterGroup where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath CreateDBParameterGroup where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateDBParameterGroup where
+  toQuery CreateDBParameterGroup' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ("CreateDBParameterGroup" :: Prelude.ByteString),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "Tags"
+          Data.=: Data.toQuery
+            (Data.toQueryList "Tag" Prelude.<$> tags),
+        "DBParameterGroupName" Data.=: dbParameterGroupName,
+        "DBParameterGroupFamily"
+          Data.=: dbParameterGroupFamily,
+        "Description" Data.=: description
+      ]
+
+-- | /See:/ 'newCreateDBParameterGroupResponse' smart constructor.
+data CreateDBParameterGroupResponse = CreateDBParameterGroupResponse'
+  { dbParameterGroup :: Prelude.Maybe DBParameterGroup,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateDBParameterGroupResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dbParameterGroup', 'createDBParameterGroupResponse_dbParameterGroup' - Undocumented member.
+--
+-- 'httpStatus', 'createDBParameterGroupResponse_httpStatus' - The response's http status code.
+newCreateDBParameterGroupResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateDBParameterGroupResponse
+newCreateDBParameterGroupResponse pHttpStatus_ =
+  CreateDBParameterGroupResponse'
+    { dbParameterGroup =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Undocumented member.
+createDBParameterGroupResponse_dbParameterGroup :: Lens.Lens' CreateDBParameterGroupResponse (Prelude.Maybe DBParameterGroup)
+createDBParameterGroupResponse_dbParameterGroup = Lens.lens (\CreateDBParameterGroupResponse' {dbParameterGroup} -> dbParameterGroup) (\s@CreateDBParameterGroupResponse' {} a -> s {dbParameterGroup = a} :: CreateDBParameterGroupResponse)
+
+-- | The response's http status code.
+createDBParameterGroupResponse_httpStatus :: Lens.Lens' CreateDBParameterGroupResponse Prelude.Int
+createDBParameterGroupResponse_httpStatus = Lens.lens (\CreateDBParameterGroupResponse' {httpStatus} -> httpStatus) (\s@CreateDBParameterGroupResponse' {} a -> s {httpStatus = a} :: CreateDBParameterGroupResponse)
+
+instance
+  Prelude.NFData
+    CreateDBParameterGroupResponse
+  where
+  rnf CreateDBParameterGroupResponse' {..} =
+    Prelude.rnf dbParameterGroup
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/Neptune/CreateDBSubnetGroup.hs b/gen/Amazonka/Neptune/CreateDBSubnetGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/CreateDBSubnetGroup.hs
@@ -0,0 +1,227 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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 DB subnet group. DB subnet groups must contain at least
+-- one subnet in at least two AZs in the Amazon Region.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateDBSubnetGroup' smart constructor.
+data CreateDBSubnetGroup = CreateDBSubnetGroup'
+  { -- | The tags to be assigned to the new DB subnet group.
+    tags :: Prelude.Maybe [Tag],
+    -- | The name for the DB 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 DB subnet group.
+    dbSubnetGroupDescription :: Prelude.Text,
+    -- | The EC2 Subnet IDs for the DB 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 new DB subnet group.
+--
+-- 'dbSubnetGroupName', 'createDBSubnetGroup_dbSubnetGroupName' - The name for the DB 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 DB subnet group.
+--
+-- 'subnetIds', 'createDBSubnetGroup_subnetIds' - The EC2 Subnet IDs for the DB 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 new DB 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 DB 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 DB subnet group.
+createDBSubnetGroup_dbSubnetGroupDescription :: Lens.Lens' CreateDBSubnetGroup Prelude.Text
+createDBSubnetGroup_dbSubnetGroupDescription = Lens.lens (\CreateDBSubnetGroup' {dbSubnetGroupDescription} -> dbSubnetGroupDescription) (\s@CreateDBSubnetGroup' {} a -> s {dbSubnetGroupDescription = a} :: CreateDBSubnetGroup)
+
+-- | The EC2 Subnet IDs for the DB 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
diff --git a/gen/Amazonka/Neptune/CreateEventSubscription.hs b/gen/Amazonka/Neptune/CreateEventSubscription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/CreateEventSubscription.hs
@@ -0,0 +1,372 @@
+{-# 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.Neptune.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 event notification subscription. This action requires a topic
+-- ARN (Amazon Resource Name) created by either the Neptune console, the
+-- SNS console, or the SNS API. To obtain an ARN with SNS, you must create
+-- a topic in Amazon SNS and subscribe to the topic. The ARN is displayed
+-- in the SNS console.
+--
+-- You can specify the type of source (SourceType) you want to be notified
+-- of, provide a list of Neptune sources (SourceIds) that triggers the
+-- events, and provide a list of event categories (EventCategories) for
+-- events 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 Neptune sources. If you do
+-- not specify either the SourceType nor the SourceIdentifier, you are
+-- notified of events generated from all Neptune sources belonging to your
+-- customer account.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /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. You can see a list of the categories for a given SourceType by using
+    -- the __DescribeEventCategories__ action.
+    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 supplied, SourceType must also be provided.
+    --
+    -- -   If the source type is a DB instance, then a @DBInstanceIdentifier@
+    --     must be supplied.
+    --
+    -- -   If the source type is a DB security group, a @DBSecurityGroupName@
+    --     must be supplied.
+    --
+    -- -   If the source type is a DB parameter group, a @DBParameterGroupName@
+    --     must be supplied.
+    --
+    -- -   If the source type is a DB snapshot, a @DBSnapshotIdentifier@ must
+    --     be supplied.
+    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 a DB 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-snapshot@ | @db-cluster-snapshot@
+    sourceType :: Prelude.Maybe Prelude.Text,
+    -- | The tags to be applied to the new event subscription.
+    tags :: Prelude.Maybe [Tag],
+    -- | The name of the subscription.
+    --
+    -- Constraints: The name must be less than 255 characters.
+    subscriptionName :: 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.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. You can see a list of the categories for a given SourceType by using
+-- the __DescribeEventCategories__ action.
+--
+-- '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 supplied, SourceType must also be provided.
+--
+-- -   If the source type is a DB instance, then a @DBInstanceIdentifier@
+--     must be supplied.
+--
+-- -   If the source type is a DB security group, a @DBSecurityGroupName@
+--     must be supplied.
+--
+-- -   If the source type is a DB parameter group, a @DBParameterGroupName@
+--     must be supplied.
+--
+-- -   If the source type is a DB snapshot, a @DBSnapshotIdentifier@ must
+--     be supplied.
+--
+-- 'sourceType', 'createEventSubscription_sourceType' - The type of source that is generating the events. For example, if you
+-- want to be notified of events generated by a DB 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-snapshot@ | @db-cluster-snapshot@
+--
+-- 'tags', 'createEventSubscription_tags' - The tags to be applied to the new event subscription.
+--
+-- 'subscriptionName', 'createEventSubscription_subscriptionName' - The name of the subscription.
+--
+-- Constraints: The name must be less than 255 characters.
+--
+-- 'snsTopicArn', 'createEventSubscription_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.
+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. You can see a list of the categories for a given SourceType by using
+-- the __DescribeEventCategories__ action.
+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 supplied, SourceType must also be provided.
+--
+-- -   If the source type is a DB instance, then a @DBInstanceIdentifier@
+--     must be supplied.
+--
+-- -   If the source type is a DB security group, a @DBSecurityGroupName@
+--     must be supplied.
+--
+-- -   If the source type is a DB parameter group, a @DBParameterGroupName@
+--     must be supplied.
+--
+-- -   If the source type is a DB snapshot, a @DBSnapshotIdentifier@ must
+--     be supplied.
+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 a DB 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-snapshot@ | @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 applied to the new 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 less 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. The ARN is created by Amazon SNS 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
diff --git a/gen/Amazonka/Neptune/CreateGlobalCluster.hs b/gen/Amazonka/Neptune/CreateGlobalCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/CreateGlobalCluster.hs
@@ -0,0 +1,255 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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 a Neptune global database spread across multiple Amazon Regions.
+-- The global database contains a single primary cluster with read-write
+-- capability, and read-only secondary clusters that receive data from the
+-- primary cluster through high-speed replication performed by the Neptune
+-- storage subsystem.
+--
+-- You can create a global database that is initially empty, and then add a
+-- primary cluster and secondary clusters to it, or you can specify an
+-- existing Neptune cluster during the create operation to become the
+-- primary cluster of the global database.
+module Amazonka.Neptune.CreateGlobalCluster
+  ( -- * Creating a Request
+    CreateGlobalCluster (..),
+    newCreateGlobalCluster,
+
+    -- * Request Lenses
+    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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateGlobalCluster' smart constructor.
+data CreateGlobalCluster = CreateGlobalCluster'
+  { -- | The deletion protection setting for the new global database. The global
+    -- database can\'t be deleted when deletion protection is enabled.
+    deletionProtection :: Prelude.Maybe Prelude.Bool,
+    -- | The name of the database engine to be used in the global database.
+    --
+    -- Valid values: @neptune@
+    engine :: Prelude.Maybe Prelude.Text,
+    -- | The Neptune engine version to be used by the global database.
+    --
+    -- Valid values: @1.2.0.0@ or above.
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | (/Optional/) The Amazon Resource Name (ARN) of an existing Neptune DB
+    -- cluster to use as the primary cluster of the new global database.
+    sourceDBClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The storage encryption setting for the new global database cluster.
+    storageEncrypted :: Prelude.Maybe Prelude.Bool,
+    -- | The cluster identifier of the new global database 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:
+--
+-- 'deletionProtection', 'createGlobalCluster_deletionProtection' - The deletion protection setting for the new global database. The global
+-- database can\'t be deleted when deletion protection is enabled.
+--
+-- 'engine', 'createGlobalCluster_engine' - The name of the database engine to be used in the global database.
+--
+-- Valid values: @neptune@
+--
+-- 'engineVersion', 'createGlobalCluster_engineVersion' - The Neptune engine version to be used by the global database.
+--
+-- Valid values: @1.2.0.0@ or above.
+--
+-- 'sourceDBClusterIdentifier', 'createGlobalCluster_sourceDBClusterIdentifier' - (/Optional/) The Amazon Resource Name (ARN) of an existing Neptune DB
+-- cluster to use as the primary cluster of the new global database.
+--
+-- 'storageEncrypted', 'createGlobalCluster_storageEncrypted' - The storage encryption setting for the new global database cluster.
+--
+-- 'globalClusterIdentifier', 'createGlobalCluster_globalClusterIdentifier' - The cluster identifier of the new global database cluster.
+newCreateGlobalCluster ::
+  -- | 'globalClusterIdentifier'
+  Prelude.Text ->
+  CreateGlobalCluster
+newCreateGlobalCluster pGlobalClusterIdentifier_ =
+  CreateGlobalCluster'
+    { deletionProtection =
+        Prelude.Nothing,
+      engine = Prelude.Nothing,
+      engineVersion = Prelude.Nothing,
+      sourceDBClusterIdentifier = Prelude.Nothing,
+      storageEncrypted = Prelude.Nothing,
+      globalClusterIdentifier = pGlobalClusterIdentifier_
+    }
+
+-- | The deletion protection setting for the new global database. The global
+-- database 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 in the global database.
+--
+-- Valid values: @neptune@
+createGlobalCluster_engine :: Lens.Lens' CreateGlobalCluster (Prelude.Maybe Prelude.Text)
+createGlobalCluster_engine = Lens.lens (\CreateGlobalCluster' {engine} -> engine) (\s@CreateGlobalCluster' {} a -> s {engine = a} :: CreateGlobalCluster)
+
+-- | The Neptune engine version to be used by the global database.
+--
+-- Valid values: @1.2.0.0@ or above.
+createGlobalCluster_engineVersion :: Lens.Lens' CreateGlobalCluster (Prelude.Maybe Prelude.Text)
+createGlobalCluster_engineVersion = Lens.lens (\CreateGlobalCluster' {engineVersion} -> engineVersion) (\s@CreateGlobalCluster' {} a -> s {engineVersion = a} :: CreateGlobalCluster)
+
+-- | (/Optional/) The Amazon Resource Name (ARN) of an existing Neptune DB
+-- cluster to use as the primary cluster of the new global database.
+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 database 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 database 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` 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 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),
+        "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
diff --git a/gen/Amazonka/Neptune/DeleteDBCluster.hs b/gen/Amazonka/Neptune/DeleteDBCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DeleteDBCluster.hs
@@ -0,0 +1,270 @@
+{-# 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.Neptune.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)
+--
+-- The DeleteDBCluster action deletes a previously provisioned DB cluster.
+-- When you delete a DB cluster, all automated backups for that DB cluster
+-- are deleted and can\'t be recovered. Manual DB cluster snapshots of the
+-- specified DB cluster are not deleted.
+--
+-- Note that the DB Cluster cannot be deleted if deletion protection is
+-- enabled. To delete it, you must first set its @DeletionProtection@ field
+-- to @False@.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteDBCluster' smart constructor.
+data DeleteDBCluster = DeleteDBCluster'
+  { -- | The DB cluster snapshot identifier of the new DB 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 1 to 255 letters, numbers, or hyphens.
+    --
+    -- -   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 DB cluster snapshot is created before the DB
+    -- cluster is deleted. If @true@ is specified, no DB cluster snapshot is
+    -- created. If @false@ is specified, a DB cluster snapshot is created
+    -- before the DB cluster is deleted.
+    --
+    -- You must specify a @FinalDBSnapshotIdentifier@ parameter if
+    -- @SkipFinalSnapshot@ is @false@.
+    --
+    -- Default: @false@
+    skipFinalSnapshot :: Prelude.Maybe Prelude.Bool,
+    -- | The DB cluster identifier for the DB 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 DB cluster snapshot identifier of the new DB 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 1 to 255 letters, numbers, or hyphens.
+--
+-- -   First character must be a letter
+--
+-- -   Cannot end with a hyphen or contain two consecutive hyphens
+--
+-- 'skipFinalSnapshot', 'deleteDBCluster_skipFinalSnapshot' - Determines whether a final DB cluster snapshot is created before the DB
+-- cluster is deleted. If @true@ is specified, no DB cluster snapshot is
+-- created. If @false@ is specified, a DB cluster snapshot is created
+-- before the DB cluster is deleted.
+--
+-- You must specify a @FinalDBSnapshotIdentifier@ parameter if
+-- @SkipFinalSnapshot@ is @false@.
+--
+-- Default: @false@
+--
+-- 'dbClusterIdentifier', 'deleteDBCluster_dbClusterIdentifier' - The DB cluster identifier for the DB 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 DB cluster snapshot identifier of the new DB 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 1 to 255 letters, numbers, or hyphens.
+--
+-- -   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 DB cluster snapshot is created before the DB
+-- cluster is deleted. If @true@ is specified, no DB cluster snapshot is
+-- created. If @false@ is specified, a DB cluster snapshot is created
+-- before the DB cluster is deleted.
+--
+-- You must specify a @FinalDBSnapshotIdentifier@ parameter if
+-- @SkipFinalSnapshot@ is @false@.
+--
+-- 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 DB cluster identifier for the DB 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
diff --git a/gen/Amazonka/Neptune/DeleteDBClusterEndpoint.hs b/gen/Amazonka/Neptune/DeleteDBClusterEndpoint.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DeleteDBClusterEndpoint.hs
@@ -0,0 +1,337 @@
+{-# 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.Neptune.DeleteDBClusterEndpoint
+-- 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 custom endpoint and removes it from an Amazon Neptune DB
+-- cluster.
+module Amazonka.Neptune.DeleteDBClusterEndpoint
+  ( -- * Creating a Request
+    DeleteDBClusterEndpoint (..),
+    newDeleteDBClusterEndpoint,
+
+    -- * Request Lenses
+    deleteDBClusterEndpoint_dbClusterEndpointIdentifier,
+
+    -- * Destructuring the Response
+    DeleteDBClusterEndpointResponse (..),
+    newDeleteDBClusterEndpointResponse,
+
+    -- * Response Lenses
+    deleteDBClusterEndpointResponse_customEndpointType,
+    deleteDBClusterEndpointResponse_dbClusterEndpointArn,
+    deleteDBClusterEndpointResponse_dbClusterEndpointIdentifier,
+    deleteDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier,
+    deleteDBClusterEndpointResponse_dbClusterIdentifier,
+    deleteDBClusterEndpointResponse_endpoint,
+    deleteDBClusterEndpointResponse_endpointType,
+    deleteDBClusterEndpointResponse_excludedMembers,
+    deleteDBClusterEndpointResponse_staticMembers,
+    deleteDBClusterEndpointResponse_status,
+    deleteDBClusterEndpointResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteDBClusterEndpoint' smart constructor.
+data DeleteDBClusterEndpoint = DeleteDBClusterEndpoint'
+  { -- | The identifier associated with the custom endpoint. This parameter is
+    -- stored as a lowercase string.
+    dbClusterEndpointIdentifier :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteDBClusterEndpoint' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dbClusterEndpointIdentifier', 'deleteDBClusterEndpoint_dbClusterEndpointIdentifier' - The identifier associated with the custom endpoint. This parameter is
+-- stored as a lowercase string.
+newDeleteDBClusterEndpoint ::
+  -- | 'dbClusterEndpointIdentifier'
+  Prelude.Text ->
+  DeleteDBClusterEndpoint
+newDeleteDBClusterEndpoint
+  pDBClusterEndpointIdentifier_ =
+    DeleteDBClusterEndpoint'
+      { dbClusterEndpointIdentifier =
+          pDBClusterEndpointIdentifier_
+      }
+
+-- | The identifier associated with the custom endpoint. This parameter is
+-- stored as a lowercase string.
+deleteDBClusterEndpoint_dbClusterEndpointIdentifier :: Lens.Lens' DeleteDBClusterEndpoint Prelude.Text
+deleteDBClusterEndpoint_dbClusterEndpointIdentifier = Lens.lens (\DeleteDBClusterEndpoint' {dbClusterEndpointIdentifier} -> dbClusterEndpointIdentifier) (\s@DeleteDBClusterEndpoint' {} a -> s {dbClusterEndpointIdentifier = a} :: DeleteDBClusterEndpoint)
+
+instance Core.AWSRequest DeleteDBClusterEndpoint where
+  type
+    AWSResponse DeleteDBClusterEndpoint =
+      DeleteDBClusterEndpointResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveXMLWrapper
+      "DeleteDBClusterEndpointResult"
+      ( \s h x ->
+          DeleteDBClusterEndpointResponse'
+            Prelude.<$> (x Data..@? "CustomEndpointType")
+            Prelude.<*> (x Data..@? "DBClusterEndpointArn")
+            Prelude.<*> (x Data..@? "DBClusterEndpointIdentifier")
+            Prelude.<*> (x Data..@? "DBClusterEndpointResourceIdentifier")
+            Prelude.<*> (x Data..@? "DBClusterIdentifier")
+            Prelude.<*> (x Data..@? "Endpoint")
+            Prelude.<*> (x Data..@? "EndpointType")
+            Prelude.<*> ( x
+                            Data..@? "ExcludedMembers"
+                            Core..!@ Prelude.mempty
+                            Prelude.>>= Core.may (Data.parseXMLList "member")
+                        )
+            Prelude.<*> ( x
+                            Data..@? "StaticMembers"
+                            Core..!@ Prelude.mempty
+                            Prelude.>>= Core.may (Data.parseXMLList "member")
+                        )
+            Prelude.<*> (x Data..@? "Status")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteDBClusterEndpoint where
+  hashWithSalt _salt DeleteDBClusterEndpoint' {..} =
+    _salt
+      `Prelude.hashWithSalt` dbClusterEndpointIdentifier
+
+instance Prelude.NFData DeleteDBClusterEndpoint where
+  rnf DeleteDBClusterEndpoint' {..} =
+    Prelude.rnf dbClusterEndpointIdentifier
+
+instance Data.ToHeaders DeleteDBClusterEndpoint where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath DeleteDBClusterEndpoint where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeleteDBClusterEndpoint where
+  toQuery DeleteDBClusterEndpoint' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ("DeleteDBClusterEndpoint" :: Prelude.ByteString),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "DBClusterEndpointIdentifier"
+          Data.=: dbClusterEndpointIdentifier
+      ]
+
+-- | This data type represents the information you need to connect to an
+-- Amazon Neptune DB cluster. This data type is used as a response element
+-- in the following actions:
+--
+-- -   @CreateDBClusterEndpoint@
+--
+-- -   @DescribeDBClusterEndpoints@
+--
+-- -   @ModifyDBClusterEndpoint@
+--
+-- -   @DeleteDBClusterEndpoint@
+--
+-- For the data structure that represents Amazon RDS DB instance endpoints,
+-- see @Endpoint@.
+--
+-- /See:/ 'newDeleteDBClusterEndpointResponse' smart constructor.
+data DeleteDBClusterEndpointResponse = DeleteDBClusterEndpointResponse'
+  { -- | The type associated with a custom endpoint. One of: @READER@, @WRITER@,
+    -- @ANY@.
+    customEndpointType :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) for the endpoint.
+    dbClusterEndpointArn :: Prelude.Maybe Prelude.Text,
+    -- | The identifier associated with the endpoint. This parameter is stored as
+    -- a lowercase string.
+    dbClusterEndpointIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | A unique system-generated identifier for an endpoint. It remains the
+    -- same for the whole life of the endpoint.
+    dbClusterEndpointResourceIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The DB cluster identifier of the DB cluster associated with the
+    -- endpoint. This parameter is stored as a lowercase string.
+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The DNS address of the endpoint.
+    endpoint :: Prelude.Maybe Prelude.Text,
+    -- | The type of the endpoint. One of: @READER@, @WRITER@, @CUSTOM@.
+    endpointType :: Prelude.Maybe Prelude.Text,
+    -- | List of DB instance identifiers that aren\'t part of the custom endpoint
+    -- group. All other eligible instances are reachable through the custom
+    -- endpoint. Only relevant if the list of static members is empty.
+    excludedMembers :: Prelude.Maybe [Prelude.Text],
+    -- | List of DB instance identifiers that are part of the custom endpoint
+    -- group.
+    staticMembers :: Prelude.Maybe [Prelude.Text],
+    -- | The current status of the endpoint. One of: @creating@, @available@,
+    -- @deleting@, @inactive@, @modifying@. The @inactive@ state applies to an
+    -- endpoint that cannot be used for a certain kind of cluster, such as a
+    -- @writer@ endpoint for a read-only secondary cluster in a global
+    -- database.
+    status :: 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 'DeleteDBClusterEndpointResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'customEndpointType', 'deleteDBClusterEndpointResponse_customEndpointType' - The type associated with a custom endpoint. One of: @READER@, @WRITER@,
+-- @ANY@.
+--
+-- 'dbClusterEndpointArn', 'deleteDBClusterEndpointResponse_dbClusterEndpointArn' - The Amazon Resource Name (ARN) for the endpoint.
+--
+-- 'dbClusterEndpointIdentifier', 'deleteDBClusterEndpointResponse_dbClusterEndpointIdentifier' - The identifier associated with the endpoint. This parameter is stored as
+-- a lowercase string.
+--
+-- 'dbClusterEndpointResourceIdentifier', 'deleteDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier' - A unique system-generated identifier for an endpoint. It remains the
+-- same for the whole life of the endpoint.
+--
+-- 'dbClusterIdentifier', 'deleteDBClusterEndpointResponse_dbClusterIdentifier' - The DB cluster identifier of the DB cluster associated with the
+-- endpoint. This parameter is stored as a lowercase string.
+--
+-- 'endpoint', 'deleteDBClusterEndpointResponse_endpoint' - The DNS address of the endpoint.
+--
+-- 'endpointType', 'deleteDBClusterEndpointResponse_endpointType' - The type of the endpoint. One of: @READER@, @WRITER@, @CUSTOM@.
+--
+-- 'excludedMembers', 'deleteDBClusterEndpointResponse_excludedMembers' - List of DB instance identifiers that aren\'t part of the custom endpoint
+-- group. All other eligible instances are reachable through the custom
+-- endpoint. Only relevant if the list of static members is empty.
+--
+-- 'staticMembers', 'deleteDBClusterEndpointResponse_staticMembers' - List of DB instance identifiers that are part of the custom endpoint
+-- group.
+--
+-- 'status', 'deleteDBClusterEndpointResponse_status' - The current status of the endpoint. One of: @creating@, @available@,
+-- @deleting@, @inactive@, @modifying@. The @inactive@ state applies to an
+-- endpoint that cannot be used for a certain kind of cluster, such as a
+-- @writer@ endpoint for a read-only secondary cluster in a global
+-- database.
+--
+-- 'httpStatus', 'deleteDBClusterEndpointResponse_httpStatus' - The response's http status code.
+newDeleteDBClusterEndpointResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteDBClusterEndpointResponse
+newDeleteDBClusterEndpointResponse pHttpStatus_ =
+  DeleteDBClusterEndpointResponse'
+    { customEndpointType =
+        Prelude.Nothing,
+      dbClusterEndpointArn = Prelude.Nothing,
+      dbClusterEndpointIdentifier =
+        Prelude.Nothing,
+      dbClusterEndpointResourceIdentifier =
+        Prelude.Nothing,
+      dbClusterIdentifier = Prelude.Nothing,
+      endpoint = Prelude.Nothing,
+      endpointType = Prelude.Nothing,
+      excludedMembers = Prelude.Nothing,
+      staticMembers = Prelude.Nothing,
+      status = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The type associated with a custom endpoint. One of: @READER@, @WRITER@,
+-- @ANY@.
+deleteDBClusterEndpointResponse_customEndpointType :: Lens.Lens' DeleteDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+deleteDBClusterEndpointResponse_customEndpointType = Lens.lens (\DeleteDBClusterEndpointResponse' {customEndpointType} -> customEndpointType) (\s@DeleteDBClusterEndpointResponse' {} a -> s {customEndpointType = a} :: DeleteDBClusterEndpointResponse)
+
+-- | The Amazon Resource Name (ARN) for the endpoint.
+deleteDBClusterEndpointResponse_dbClusterEndpointArn :: Lens.Lens' DeleteDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+deleteDBClusterEndpointResponse_dbClusterEndpointArn = Lens.lens (\DeleteDBClusterEndpointResponse' {dbClusterEndpointArn} -> dbClusterEndpointArn) (\s@DeleteDBClusterEndpointResponse' {} a -> s {dbClusterEndpointArn = a} :: DeleteDBClusterEndpointResponse)
+
+-- | The identifier associated with the endpoint. This parameter is stored as
+-- a lowercase string.
+deleteDBClusterEndpointResponse_dbClusterEndpointIdentifier :: Lens.Lens' DeleteDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+deleteDBClusterEndpointResponse_dbClusterEndpointIdentifier = Lens.lens (\DeleteDBClusterEndpointResponse' {dbClusterEndpointIdentifier} -> dbClusterEndpointIdentifier) (\s@DeleteDBClusterEndpointResponse' {} a -> s {dbClusterEndpointIdentifier = a} :: DeleteDBClusterEndpointResponse)
+
+-- | A unique system-generated identifier for an endpoint. It remains the
+-- same for the whole life of the endpoint.
+deleteDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier :: Lens.Lens' DeleteDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+deleteDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier = Lens.lens (\DeleteDBClusterEndpointResponse' {dbClusterEndpointResourceIdentifier} -> dbClusterEndpointResourceIdentifier) (\s@DeleteDBClusterEndpointResponse' {} a -> s {dbClusterEndpointResourceIdentifier = a} :: DeleteDBClusterEndpointResponse)
+
+-- | The DB cluster identifier of the DB cluster associated with the
+-- endpoint. This parameter is stored as a lowercase string.
+deleteDBClusterEndpointResponse_dbClusterIdentifier :: Lens.Lens' DeleteDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+deleteDBClusterEndpointResponse_dbClusterIdentifier = Lens.lens (\DeleteDBClusterEndpointResponse' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@DeleteDBClusterEndpointResponse' {} a -> s {dbClusterIdentifier = a} :: DeleteDBClusterEndpointResponse)
+
+-- | The DNS address of the endpoint.
+deleteDBClusterEndpointResponse_endpoint :: Lens.Lens' DeleteDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+deleteDBClusterEndpointResponse_endpoint = Lens.lens (\DeleteDBClusterEndpointResponse' {endpoint} -> endpoint) (\s@DeleteDBClusterEndpointResponse' {} a -> s {endpoint = a} :: DeleteDBClusterEndpointResponse)
+
+-- | The type of the endpoint. One of: @READER@, @WRITER@, @CUSTOM@.
+deleteDBClusterEndpointResponse_endpointType :: Lens.Lens' DeleteDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+deleteDBClusterEndpointResponse_endpointType = Lens.lens (\DeleteDBClusterEndpointResponse' {endpointType} -> endpointType) (\s@DeleteDBClusterEndpointResponse' {} a -> s {endpointType = a} :: DeleteDBClusterEndpointResponse)
+
+-- | List of DB instance identifiers that aren\'t part of the custom endpoint
+-- group. All other eligible instances are reachable through the custom
+-- endpoint. Only relevant if the list of static members is empty.
+deleteDBClusterEndpointResponse_excludedMembers :: Lens.Lens' DeleteDBClusterEndpointResponse (Prelude.Maybe [Prelude.Text])
+deleteDBClusterEndpointResponse_excludedMembers = Lens.lens (\DeleteDBClusterEndpointResponse' {excludedMembers} -> excludedMembers) (\s@DeleteDBClusterEndpointResponse' {} a -> s {excludedMembers = a} :: DeleteDBClusterEndpointResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | List of DB instance identifiers that are part of the custom endpoint
+-- group.
+deleteDBClusterEndpointResponse_staticMembers :: Lens.Lens' DeleteDBClusterEndpointResponse (Prelude.Maybe [Prelude.Text])
+deleteDBClusterEndpointResponse_staticMembers = Lens.lens (\DeleteDBClusterEndpointResponse' {staticMembers} -> staticMembers) (\s@DeleteDBClusterEndpointResponse' {} a -> s {staticMembers = a} :: DeleteDBClusterEndpointResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The current status of the endpoint. One of: @creating@, @available@,
+-- @deleting@, @inactive@, @modifying@. The @inactive@ state applies to an
+-- endpoint that cannot be used for a certain kind of cluster, such as a
+-- @writer@ endpoint for a read-only secondary cluster in a global
+-- database.
+deleteDBClusterEndpointResponse_status :: Lens.Lens' DeleteDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+deleteDBClusterEndpointResponse_status = Lens.lens (\DeleteDBClusterEndpointResponse' {status} -> status) (\s@DeleteDBClusterEndpointResponse' {} a -> s {status = a} :: DeleteDBClusterEndpointResponse)
+
+-- | The response's http status code.
+deleteDBClusterEndpointResponse_httpStatus :: Lens.Lens' DeleteDBClusterEndpointResponse Prelude.Int
+deleteDBClusterEndpointResponse_httpStatus = Lens.lens (\DeleteDBClusterEndpointResponse' {httpStatus} -> httpStatus) (\s@DeleteDBClusterEndpointResponse' {} a -> s {httpStatus = a} :: DeleteDBClusterEndpointResponse)
+
+instance
+  Prelude.NFData
+    DeleteDBClusterEndpointResponse
+  where
+  rnf DeleteDBClusterEndpointResponse' {..} =
+    Prelude.rnf customEndpointType
+      `Prelude.seq` Prelude.rnf dbClusterEndpointArn
+      `Prelude.seq` Prelude.rnf dbClusterEndpointIdentifier
+      `Prelude.seq` Prelude.rnf dbClusterEndpointResourceIdentifier
+      `Prelude.seq` Prelude.rnf dbClusterIdentifier
+      `Prelude.seq` Prelude.rnf endpoint
+      `Prelude.seq` Prelude.rnf endpointType
+      `Prelude.seq` Prelude.rnf excludedMembers
+      `Prelude.seq` Prelude.rnf staticMembers
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/Neptune/DeleteDBClusterParameterGroup.hs b/gen/Amazonka/Neptune/DeleteDBClusterParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DeleteDBClusterParameterGroup.hs
@@ -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.Neptune.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 DB cluster parameter group. The DB cluster parameter
+-- group to be deleted can\'t be associated with any DB clusters.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteDBClusterParameterGroup' smart constructor.
+data DeleteDBClusterParameterGroup = DeleteDBClusterParameterGroup'
+  { -- | The name of the DB cluster parameter group.
+    --
+    -- Constraints:
+    --
+    -- -   Must be the name of an existing DB cluster parameter group.
+    --
+    -- -   You can\'t delete a default DB cluster parameter group.
+    --
+    -- -   Cannot be associated with any DB 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 DB cluster parameter group.
+--
+-- Constraints:
+--
+-- -   Must be the name of an existing DB cluster parameter group.
+--
+-- -   You can\'t delete a default DB cluster parameter group.
+--
+-- -   Cannot be associated with any DB clusters.
+newDeleteDBClusterParameterGroup ::
+  -- | 'dbClusterParameterGroupName'
+  Prelude.Text ->
+  DeleteDBClusterParameterGroup
+newDeleteDBClusterParameterGroup
+  pDBClusterParameterGroupName_ =
+    DeleteDBClusterParameterGroup'
+      { dbClusterParameterGroupName =
+          pDBClusterParameterGroupName_
+      }
+
+-- | The name of the DB cluster parameter group.
+--
+-- Constraints:
+--
+-- -   Must be the name of an existing DB cluster parameter group.
+--
+-- -   You can\'t delete a default DB cluster parameter group.
+--
+-- -   Cannot be associated with any DB 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 _ = ()
diff --git a/gen/Amazonka/Neptune/DeleteDBClusterSnapshot.hs b/gen/Amazonka/Neptune/DeleteDBClusterSnapshot.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DeleteDBClusterSnapshot.hs
@@ -0,0 +1,178 @@
+{-# 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.Neptune.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 DB cluster snapshot. If the snapshot is being copied, the copy
+-- operation is terminated.
+--
+-- The DB cluster snapshot must be in the @available@ state to be deleted.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteDBClusterSnapshot' smart constructor.
+data DeleteDBClusterSnapshot = DeleteDBClusterSnapshot'
+  { -- | The identifier of the DB cluster snapshot to delete.
+    --
+    -- Constraints: Must be the name of an existing DB 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 DB cluster snapshot to delete.
+--
+-- Constraints: Must be the name of an existing DB cluster snapshot in the
+-- @available@ state.
+newDeleteDBClusterSnapshot ::
+  -- | 'dbClusterSnapshotIdentifier'
+  Prelude.Text ->
+  DeleteDBClusterSnapshot
+newDeleteDBClusterSnapshot
+  pDBClusterSnapshotIdentifier_ =
+    DeleteDBClusterSnapshot'
+      { dbClusterSnapshotIdentifier =
+          pDBClusterSnapshotIdentifier_
+      }
+
+-- | The identifier of the DB cluster snapshot to delete.
+--
+-- Constraints: Must be the name of an existing DB 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
diff --git a/gen/Amazonka/Neptune/DeleteDBInstance.hs b/gen/Amazonka/Neptune/DeleteDBInstance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DeleteDBInstance.hs
@@ -0,0 +1,305 @@
+{-# 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.Neptune.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)
+--
+-- The DeleteDBInstance action deletes a previously provisioned DB
+-- instance. When you delete a DB instance, all automated backups for that
+-- instance are deleted and can\'t be recovered. Manual DB snapshots of the
+-- DB instance to be deleted by @DeleteDBInstance@ are not deleted.
+--
+-- If you request a final DB snapshot the status of the Amazon Neptune DB
+-- instance is @deleting@ until the DB snapshot is created. The API action
+-- @DescribeDBInstance@ is used to monitor the status of this operation.
+-- The action can\'t be canceled or reverted once submitted.
+--
+-- Note that when a DB instance is in a failure state and has a status of
+-- @failed@, @incompatible-restore@, or @incompatible-network@, you can
+-- only delete it when the @SkipFinalSnapshot@ parameter is set to @true@.
+--
+-- You can\'t delete a DB instance if it is the only instance in the DB
+-- cluster, or if it has deletion protection enabled.
+module Amazonka.Neptune.DeleteDBInstance
+  ( -- * Creating a Request
+    DeleteDBInstance (..),
+    newDeleteDBInstance,
+
+    -- * Request Lenses
+    deleteDBInstance_finalDBSnapshotIdentifier,
+    deleteDBInstance_skipFinalSnapshot,
+    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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteDBInstance' smart constructor.
+data DeleteDBInstance = DeleteDBInstance'
+  { -- | The DBSnapshotIdentifier of the new DBSnapshot 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 1 to 255 letters or numbers.
+    --
+    -- -   First character must be a letter
+    --
+    -- -   Cannot end with a hyphen or contain two consecutive hyphens
+    --
+    -- -   Cannot be specified when deleting a Read Replica.
+    finalDBSnapshotIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | Determines whether a final DB snapshot is created before the DB instance
+    -- is deleted. If @true@ is specified, no DBSnapshot is created. If @false@
+    -- is specified, a DB snapshot is created before the DB instance is
+    -- deleted.
+    --
+    -- Note that when a DB instance is in a failure state and has a status of
+    -- \'failed\', \'incompatible-restore\', or \'incompatible-network\', it
+    -- can only be deleted when the SkipFinalSnapshot parameter is set to
+    -- \"true\".
+    --
+    -- Specify @true@ when deleting a Read Replica.
+    --
+    -- The FinalDBSnapshotIdentifier parameter must be specified if
+    -- SkipFinalSnapshot is @false@.
+    --
+    -- Default: @false@
+    skipFinalSnapshot :: Prelude.Maybe Prelude.Bool,
+    -- | The DB instance identifier for the DB instance to be deleted. This
+    -- parameter isn\'t case-sensitive.
+    --
+    -- Constraints:
+    --
+    -- -   Must match the name of an existing DB 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:
+--
+-- 'finalDBSnapshotIdentifier', 'deleteDBInstance_finalDBSnapshotIdentifier' - The DBSnapshotIdentifier of the new DBSnapshot 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 1 to 255 letters or numbers.
+--
+-- -   First character must be a letter
+--
+-- -   Cannot end with a hyphen or contain two consecutive hyphens
+--
+-- -   Cannot be specified when deleting a Read Replica.
+--
+-- 'skipFinalSnapshot', 'deleteDBInstance_skipFinalSnapshot' - Determines whether a final DB snapshot is created before the DB instance
+-- is deleted. If @true@ is specified, no DBSnapshot is created. If @false@
+-- is specified, a DB snapshot is created before the DB instance is
+-- deleted.
+--
+-- Note that when a DB instance is in a failure state and has a status of
+-- \'failed\', \'incompatible-restore\', or \'incompatible-network\', it
+-- can only be deleted when the SkipFinalSnapshot parameter is set to
+-- \"true\".
+--
+-- Specify @true@ when deleting a Read Replica.
+--
+-- The FinalDBSnapshotIdentifier parameter must be specified if
+-- SkipFinalSnapshot is @false@.
+--
+-- Default: @false@
+--
+-- 'dbInstanceIdentifier', 'deleteDBInstance_dbInstanceIdentifier' - The DB instance identifier for the DB instance to be deleted. This
+-- parameter isn\'t case-sensitive.
+--
+-- Constraints:
+--
+-- -   Must match the name of an existing DB instance.
+newDeleteDBInstance ::
+  -- | 'dbInstanceIdentifier'
+  Prelude.Text ->
+  DeleteDBInstance
+newDeleteDBInstance pDBInstanceIdentifier_ =
+  DeleteDBInstance'
+    { finalDBSnapshotIdentifier =
+        Prelude.Nothing,
+      skipFinalSnapshot = Prelude.Nothing,
+      dbInstanceIdentifier = pDBInstanceIdentifier_
+    }
+
+-- | The DBSnapshotIdentifier of the new DBSnapshot 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 1 to 255 letters or numbers.
+--
+-- -   First character must be a letter
+--
+-- -   Cannot end with a hyphen or contain two consecutive hyphens
+--
+-- -   Cannot be specified when deleting a Read Replica.
+deleteDBInstance_finalDBSnapshotIdentifier :: Lens.Lens' DeleteDBInstance (Prelude.Maybe Prelude.Text)
+deleteDBInstance_finalDBSnapshotIdentifier = Lens.lens (\DeleteDBInstance' {finalDBSnapshotIdentifier} -> finalDBSnapshotIdentifier) (\s@DeleteDBInstance' {} a -> s {finalDBSnapshotIdentifier = a} :: DeleteDBInstance)
+
+-- | Determines whether a final DB snapshot is created before the DB instance
+-- is deleted. If @true@ is specified, no DBSnapshot is created. If @false@
+-- is specified, a DB snapshot is created before the DB instance is
+-- deleted.
+--
+-- Note that when a DB instance is in a failure state and has a status of
+-- \'failed\', \'incompatible-restore\', or \'incompatible-network\', it
+-- can only be deleted when the SkipFinalSnapshot parameter is set to
+-- \"true\".
+--
+-- Specify @true@ when deleting a Read Replica.
+--
+-- The FinalDBSnapshotIdentifier parameter must be specified if
+-- SkipFinalSnapshot is @false@.
+--
+-- Default: @false@
+deleteDBInstance_skipFinalSnapshot :: Lens.Lens' DeleteDBInstance (Prelude.Maybe Prelude.Bool)
+deleteDBInstance_skipFinalSnapshot = Lens.lens (\DeleteDBInstance' {skipFinalSnapshot} -> skipFinalSnapshot) (\s@DeleteDBInstance' {} a -> s {skipFinalSnapshot = a} :: DeleteDBInstance)
+
+-- | The DB instance identifier for the DB instance to be deleted. This
+-- parameter isn\'t case-sensitive.
+--
+-- Constraints:
+--
+-- -   Must match the name of an existing DB 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` finalDBSnapshotIdentifier
+      `Prelude.hashWithSalt` skipFinalSnapshot
+      `Prelude.hashWithSalt` dbInstanceIdentifier
+
+instance Prelude.NFData DeleteDBInstance where
+  rnf DeleteDBInstance' {..} =
+    Prelude.rnf finalDBSnapshotIdentifier
+      `Prelude.seq` Prelude.rnf skipFinalSnapshot
+      `Prelude.seq` 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),
+        "FinalDBSnapshotIdentifier"
+          Data.=: finalDBSnapshotIdentifier,
+        "SkipFinalSnapshot" Data.=: skipFinalSnapshot,
+        "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
diff --git a/gen/Amazonka/Neptune/DeleteDBParameterGroup.hs b/gen/Amazonka/Neptune/DeleteDBParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DeleteDBParameterGroup.hs
@@ -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.Neptune.DeleteDBParameterGroup
+-- 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 DBParameterGroup. The DBParameterGroup to be deleted
+-- can\'t be associated with any DB instances.
+module Amazonka.Neptune.DeleteDBParameterGroup
+  ( -- * Creating a Request
+    DeleteDBParameterGroup (..),
+    newDeleteDBParameterGroup,
+
+    -- * Request Lenses
+    deleteDBParameterGroup_dbParameterGroupName,
+
+    -- * Destructuring the Response
+    DeleteDBParameterGroupResponse (..),
+    newDeleteDBParameterGroupResponse,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteDBParameterGroup' smart constructor.
+data DeleteDBParameterGroup = DeleteDBParameterGroup'
+  { -- | The name of the DB parameter group.
+    --
+    -- Constraints:
+    --
+    -- -   Must be the name of an existing DB parameter group
+    --
+    -- -   You can\'t delete a default DB parameter group
+    --
+    -- -   Cannot be associated with any DB instances
+    dbParameterGroupName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteDBParameterGroup' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dbParameterGroupName', 'deleteDBParameterGroup_dbParameterGroupName' - The name of the DB parameter group.
+--
+-- Constraints:
+--
+-- -   Must be the name of an existing DB parameter group
+--
+-- -   You can\'t delete a default DB parameter group
+--
+-- -   Cannot be associated with any DB instances
+newDeleteDBParameterGroup ::
+  -- | 'dbParameterGroupName'
+  Prelude.Text ->
+  DeleteDBParameterGroup
+newDeleteDBParameterGroup pDBParameterGroupName_ =
+  DeleteDBParameterGroup'
+    { dbParameterGroupName =
+        pDBParameterGroupName_
+    }
+
+-- | The name of the DB parameter group.
+--
+-- Constraints:
+--
+-- -   Must be the name of an existing DB parameter group
+--
+-- -   You can\'t delete a default DB parameter group
+--
+-- -   Cannot be associated with any DB instances
+deleteDBParameterGroup_dbParameterGroupName :: Lens.Lens' DeleteDBParameterGroup Prelude.Text
+deleteDBParameterGroup_dbParameterGroupName = Lens.lens (\DeleteDBParameterGroup' {dbParameterGroupName} -> dbParameterGroupName) (\s@DeleteDBParameterGroup' {} a -> s {dbParameterGroupName = a} :: DeleteDBParameterGroup)
+
+instance Core.AWSRequest DeleteDBParameterGroup where
+  type
+    AWSResponse DeleteDBParameterGroup =
+      DeleteDBParameterGroupResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveNull
+      DeleteDBParameterGroupResponse'
+
+instance Prelude.Hashable DeleteDBParameterGroup where
+  hashWithSalt _salt DeleteDBParameterGroup' {..} =
+    _salt `Prelude.hashWithSalt` dbParameterGroupName
+
+instance Prelude.NFData DeleteDBParameterGroup where
+  rnf DeleteDBParameterGroup' {..} =
+    Prelude.rnf dbParameterGroupName
+
+instance Data.ToHeaders DeleteDBParameterGroup where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath DeleteDBParameterGroup where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeleteDBParameterGroup where
+  toQuery DeleteDBParameterGroup' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ("DeleteDBParameterGroup" :: Prelude.ByteString),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "DBParameterGroupName" Data.=: dbParameterGroupName
+      ]
+
+-- | /See:/ 'newDeleteDBParameterGroupResponse' smart constructor.
+data DeleteDBParameterGroupResponse = DeleteDBParameterGroupResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteDBParameterGroupResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newDeleteDBParameterGroupResponse ::
+  DeleteDBParameterGroupResponse
+newDeleteDBParameterGroupResponse =
+  DeleteDBParameterGroupResponse'
+
+instance
+  Prelude.NFData
+    DeleteDBParameterGroupResponse
+  where
+  rnf _ = ()
diff --git a/gen/Amazonka/Neptune/DeleteDBSubnetGroup.hs b/gen/Amazonka/Neptune/DeleteDBSubnetGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DeleteDBSubnetGroup.hs
@@ -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.Neptune.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 DB subnet group.
+--
+-- The specified database subnet group must not be associated with any DB
+-- instances.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /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:
+    --
+    -- 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:
+--
+-- 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:
+--
+-- 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 _ = ()
diff --git a/gen/Amazonka/Neptune/DeleteEventSubscription.hs b/gen/Amazonka/Neptune/DeleteEventSubscription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DeleteEventSubscription.hs
@@ -0,0 +1,163 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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 event notification subscription.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteEventSubscription' smart constructor.
+data DeleteEventSubscription = DeleteEventSubscription'
+  { -- | The name of the event notification subscription 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 event notification subscription you want to delete.
+newDeleteEventSubscription ::
+  -- | 'subscriptionName'
+  Prelude.Text ->
+  DeleteEventSubscription
+newDeleteEventSubscription pSubscriptionName_ =
+  DeleteEventSubscription'
+    { subscriptionName =
+        pSubscriptionName_
+    }
+
+-- | The name of the event notification subscription 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
diff --git a/gen/Amazonka/Neptune/DeleteGlobalCluster.hs b/gen/Amazonka/Neptune/DeleteGlobalCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DeleteGlobalCluster.hs
@@ -0,0 +1,163 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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 database. The primary and all secondary clusters must
+-- already be detached or deleted first.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteGlobalCluster' smart constructor.
+data DeleteGlobalCluster = DeleteGlobalCluster'
+  { -- | The cluster identifier of the global database 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 database cluster being deleted.
+newDeleteGlobalCluster ::
+  -- | 'globalClusterIdentifier'
+  Prelude.Text ->
+  DeleteGlobalCluster
+newDeleteGlobalCluster pGlobalClusterIdentifier_ =
+  DeleteGlobalCluster'
+    { globalClusterIdentifier =
+        pGlobalClusterIdentifier_
+    }
+
+-- | The cluster identifier of the global database 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
diff --git a/gen/Amazonka/Neptune/DescribeDBClusterEndpoints.hs b/gen/Amazonka/Neptune/DescribeDBClusterEndpoints.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeDBClusterEndpoints.hs
@@ -0,0 +1,339 @@
+{-# 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.Neptune.DescribeDBClusterEndpoints
+-- 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 endpoints for an Amazon Neptune DB cluster.
+--
+-- This operation can also return information for Amazon RDS clusters and
+-- Amazon DocDB clusters.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.DescribeDBClusterEndpoints
+  ( -- * Creating a Request
+    DescribeDBClusterEndpoints (..),
+    newDescribeDBClusterEndpoints,
+
+    -- * Request Lenses
+    describeDBClusterEndpoints_dbClusterEndpointIdentifier,
+    describeDBClusterEndpoints_dbClusterIdentifier,
+    describeDBClusterEndpoints_filters,
+    describeDBClusterEndpoints_marker,
+    describeDBClusterEndpoints_maxRecords,
+
+    -- * Destructuring the Response
+    DescribeDBClusterEndpointsResponse (..),
+    newDescribeDBClusterEndpointsResponse,
+
+    -- * Response Lenses
+    describeDBClusterEndpointsResponse_dbClusterEndpoints,
+    describeDBClusterEndpointsResponse_marker,
+    describeDBClusterEndpointsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeDBClusterEndpoints' smart constructor.
+data DescribeDBClusterEndpoints = DescribeDBClusterEndpoints'
+  { -- | The identifier of the endpoint to describe. This parameter is stored as
+    -- a lowercase string.
+    dbClusterEndpointIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The DB cluster identifier of the DB cluster associated with the
+    -- endpoint. This parameter is stored as a lowercase string.
+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | A set of name-value pairs that define which endpoints to include in the
+    -- output. The filters are specified as name-value pairs, in the format
+    -- @Name=@/@endpoint_type@/@,Values=@/@endpoint_type1@/@,@/@endpoint_type2@/@,...@.
+    -- @Name@ can be one of: @db-cluster-endpoint-type@,
+    -- @db-cluster-endpoint-custom-type@, @db-cluster-endpoint-id@,
+    -- @db-cluster-endpoint-status@. @Values@ for the
+    -- @ db-cluster-endpoint-type@ filter can be one or more of: @reader@,
+    -- @writer@, @custom@. @Values@ for the @db-cluster-endpoint-custom-type@
+    -- filter can be one or more of: @reader@, @any@. @Values@ for the
+    -- @db-cluster-endpoint-status@ filter can be one or more of: @available@,
+    -- @creating@, @deleting@, @inactive@, @modifying@.
+    filters :: Prelude.Maybe [Filter],
+    -- | An optional pagination token provided by a previous
+    -- @DescribeDBClusterEndpoints@ 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 you can retrieve the
+    -- remaining results.
+    --
+    -- 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 'DescribeDBClusterEndpoints' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dbClusterEndpointIdentifier', 'describeDBClusterEndpoints_dbClusterEndpointIdentifier' - The identifier of the endpoint to describe. This parameter is stored as
+-- a lowercase string.
+--
+-- 'dbClusterIdentifier', 'describeDBClusterEndpoints_dbClusterIdentifier' - The DB cluster identifier of the DB cluster associated with the
+-- endpoint. This parameter is stored as a lowercase string.
+--
+-- 'filters', 'describeDBClusterEndpoints_filters' - A set of name-value pairs that define which endpoints to include in the
+-- output. The filters are specified as name-value pairs, in the format
+-- @Name=@/@endpoint_type@/@,Values=@/@endpoint_type1@/@,@/@endpoint_type2@/@,...@.
+-- @Name@ can be one of: @db-cluster-endpoint-type@,
+-- @db-cluster-endpoint-custom-type@, @db-cluster-endpoint-id@,
+-- @db-cluster-endpoint-status@. @Values@ for the
+-- @ db-cluster-endpoint-type@ filter can be one or more of: @reader@,
+-- @writer@, @custom@. @Values@ for the @db-cluster-endpoint-custom-type@
+-- filter can be one or more of: @reader@, @any@. @Values@ for the
+-- @db-cluster-endpoint-status@ filter can be one or more of: @available@,
+-- @creating@, @deleting@, @inactive@, @modifying@.
+--
+-- 'marker', 'describeDBClusterEndpoints_marker' - An optional pagination token provided by a previous
+-- @DescribeDBClusterEndpoints@ request. If this parameter is specified,
+-- the response includes only records beyond the marker, up to the value
+-- specified by @MaxRecords@.
+--
+-- 'maxRecords', 'describeDBClusterEndpoints_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 you can retrieve the
+-- remaining results.
+--
+-- Default: 100
+--
+-- Constraints: Minimum 20, maximum 100.
+newDescribeDBClusterEndpoints ::
+  DescribeDBClusterEndpoints
+newDescribeDBClusterEndpoints =
+  DescribeDBClusterEndpoints'
+    { dbClusterEndpointIdentifier =
+        Prelude.Nothing,
+      dbClusterIdentifier = Prelude.Nothing,
+      filters = Prelude.Nothing,
+      marker = Prelude.Nothing,
+      maxRecords = Prelude.Nothing
+    }
+
+-- | The identifier of the endpoint to describe. This parameter is stored as
+-- a lowercase string.
+describeDBClusterEndpoints_dbClusterEndpointIdentifier :: Lens.Lens' DescribeDBClusterEndpoints (Prelude.Maybe Prelude.Text)
+describeDBClusterEndpoints_dbClusterEndpointIdentifier = Lens.lens (\DescribeDBClusterEndpoints' {dbClusterEndpointIdentifier} -> dbClusterEndpointIdentifier) (\s@DescribeDBClusterEndpoints' {} a -> s {dbClusterEndpointIdentifier = a} :: DescribeDBClusterEndpoints)
+
+-- | The DB cluster identifier of the DB cluster associated with the
+-- endpoint. This parameter is stored as a lowercase string.
+describeDBClusterEndpoints_dbClusterIdentifier :: Lens.Lens' DescribeDBClusterEndpoints (Prelude.Maybe Prelude.Text)
+describeDBClusterEndpoints_dbClusterIdentifier = Lens.lens (\DescribeDBClusterEndpoints' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@DescribeDBClusterEndpoints' {} a -> s {dbClusterIdentifier = a} :: DescribeDBClusterEndpoints)
+
+-- | A set of name-value pairs that define which endpoints to include in the
+-- output. The filters are specified as name-value pairs, in the format
+-- @Name=@/@endpoint_type@/@,Values=@/@endpoint_type1@/@,@/@endpoint_type2@/@,...@.
+-- @Name@ can be one of: @db-cluster-endpoint-type@,
+-- @db-cluster-endpoint-custom-type@, @db-cluster-endpoint-id@,
+-- @db-cluster-endpoint-status@. @Values@ for the
+-- @ db-cluster-endpoint-type@ filter can be one or more of: @reader@,
+-- @writer@, @custom@. @Values@ for the @db-cluster-endpoint-custom-type@
+-- filter can be one or more of: @reader@, @any@. @Values@ for the
+-- @db-cluster-endpoint-status@ filter can be one or more of: @available@,
+-- @creating@, @deleting@, @inactive@, @modifying@.
+describeDBClusterEndpoints_filters :: Lens.Lens' DescribeDBClusterEndpoints (Prelude.Maybe [Filter])
+describeDBClusterEndpoints_filters = Lens.lens (\DescribeDBClusterEndpoints' {filters} -> filters) (\s@DescribeDBClusterEndpoints' {} a -> s {filters = a} :: DescribeDBClusterEndpoints) Prelude.. Lens.mapping Lens.coerced
+
+-- | An optional pagination token provided by a previous
+-- @DescribeDBClusterEndpoints@ request. If this parameter is specified,
+-- the response includes only records beyond the marker, up to the value
+-- specified by @MaxRecords@.
+describeDBClusterEndpoints_marker :: Lens.Lens' DescribeDBClusterEndpoints (Prelude.Maybe Prelude.Text)
+describeDBClusterEndpoints_marker = Lens.lens (\DescribeDBClusterEndpoints' {marker} -> marker) (\s@DescribeDBClusterEndpoints' {} a -> s {marker = a} :: DescribeDBClusterEndpoints)
+
+-- | 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 you can retrieve the
+-- remaining results.
+--
+-- Default: 100
+--
+-- Constraints: Minimum 20, maximum 100.
+describeDBClusterEndpoints_maxRecords :: Lens.Lens' DescribeDBClusterEndpoints (Prelude.Maybe Prelude.Int)
+describeDBClusterEndpoints_maxRecords = Lens.lens (\DescribeDBClusterEndpoints' {maxRecords} -> maxRecords) (\s@DescribeDBClusterEndpoints' {} a -> s {maxRecords = a} :: DescribeDBClusterEndpoints)
+
+instance Core.AWSPager DescribeDBClusterEndpoints where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? describeDBClusterEndpointsResponse_marker
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? describeDBClusterEndpointsResponse_dbClusterEndpoints
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& describeDBClusterEndpoints_marker
+          Lens..~ rs
+          Lens.^? describeDBClusterEndpointsResponse_marker
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest DescribeDBClusterEndpoints where
+  type
+    AWSResponse DescribeDBClusterEndpoints =
+      DescribeDBClusterEndpointsResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveXMLWrapper
+      "DescribeDBClusterEndpointsResult"
+      ( \s h x ->
+          DescribeDBClusterEndpointsResponse'
+            Prelude.<$> ( x
+                            Data..@? "DBClusterEndpoints"
+                            Core..!@ Prelude.mempty
+                            Prelude.>>= Core.may (Data.parseXMLList "DBClusterEndpointList")
+                        )
+            Prelude.<*> (x Data..@? "Marker")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DescribeDBClusterEndpoints where
+  hashWithSalt _salt DescribeDBClusterEndpoints' {..} =
+    _salt
+      `Prelude.hashWithSalt` dbClusterEndpointIdentifier
+      `Prelude.hashWithSalt` dbClusterIdentifier
+      `Prelude.hashWithSalt` filters
+      `Prelude.hashWithSalt` marker
+      `Prelude.hashWithSalt` maxRecords
+
+instance Prelude.NFData DescribeDBClusterEndpoints where
+  rnf DescribeDBClusterEndpoints' {..} =
+    Prelude.rnf dbClusterEndpointIdentifier
+      `Prelude.seq` Prelude.rnf dbClusterIdentifier
+      `Prelude.seq` Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf marker
+      `Prelude.seq` Prelude.rnf maxRecords
+
+instance Data.ToHeaders DescribeDBClusterEndpoints where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath DescribeDBClusterEndpoints where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DescribeDBClusterEndpoints where
+  toQuery DescribeDBClusterEndpoints' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ("DescribeDBClusterEndpoints" :: Prelude.ByteString),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "DBClusterEndpointIdentifier"
+          Data.=: dbClusterEndpointIdentifier,
+        "DBClusterIdentifier" Data.=: dbClusterIdentifier,
+        "Filters"
+          Data.=: Data.toQuery
+            (Data.toQueryList "Filter" Prelude.<$> filters),
+        "Marker" Data.=: marker,
+        "MaxRecords" Data.=: maxRecords
+      ]
+
+-- | /See:/ 'newDescribeDBClusterEndpointsResponse' smart constructor.
+data DescribeDBClusterEndpointsResponse = DescribeDBClusterEndpointsResponse'
+  { -- | Contains the details of the endpoints associated with the cluster and
+    -- matching any filter conditions.
+    dbClusterEndpoints :: Prelude.Maybe [DBClusterEndpoint],
+    -- | An optional pagination token provided by a previous
+    -- @DescribeDBClusterEndpoints@ 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 'DescribeDBClusterEndpointsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dbClusterEndpoints', 'describeDBClusterEndpointsResponse_dbClusterEndpoints' - Contains the details of the endpoints associated with the cluster and
+-- matching any filter conditions.
+--
+-- 'marker', 'describeDBClusterEndpointsResponse_marker' - An optional pagination token provided by a previous
+-- @DescribeDBClusterEndpoints@ request. If this parameter is specified,
+-- the response includes only records beyond the marker, up to the value
+-- specified by @MaxRecords@.
+--
+-- 'httpStatus', 'describeDBClusterEndpointsResponse_httpStatus' - The response's http status code.
+newDescribeDBClusterEndpointsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DescribeDBClusterEndpointsResponse
+newDescribeDBClusterEndpointsResponse pHttpStatus_ =
+  DescribeDBClusterEndpointsResponse'
+    { dbClusterEndpoints =
+        Prelude.Nothing,
+      marker = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Contains the details of the endpoints associated with the cluster and
+-- matching any filter conditions.
+describeDBClusterEndpointsResponse_dbClusterEndpoints :: Lens.Lens' DescribeDBClusterEndpointsResponse (Prelude.Maybe [DBClusterEndpoint])
+describeDBClusterEndpointsResponse_dbClusterEndpoints = Lens.lens (\DescribeDBClusterEndpointsResponse' {dbClusterEndpoints} -> dbClusterEndpoints) (\s@DescribeDBClusterEndpointsResponse' {} a -> s {dbClusterEndpoints = a} :: DescribeDBClusterEndpointsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | An optional pagination token provided by a previous
+-- @DescribeDBClusterEndpoints@ request. If this parameter is specified,
+-- the response includes only records beyond the marker, up to the value
+-- specified by @MaxRecords@.
+describeDBClusterEndpointsResponse_marker :: Lens.Lens' DescribeDBClusterEndpointsResponse (Prelude.Maybe Prelude.Text)
+describeDBClusterEndpointsResponse_marker = Lens.lens (\DescribeDBClusterEndpointsResponse' {marker} -> marker) (\s@DescribeDBClusterEndpointsResponse' {} a -> s {marker = a} :: DescribeDBClusterEndpointsResponse)
+
+-- | The response's http status code.
+describeDBClusterEndpointsResponse_httpStatus :: Lens.Lens' DescribeDBClusterEndpointsResponse Prelude.Int
+describeDBClusterEndpointsResponse_httpStatus = Lens.lens (\DescribeDBClusterEndpointsResponse' {httpStatus} -> httpStatus) (\s@DescribeDBClusterEndpointsResponse' {} a -> s {httpStatus = a} :: DescribeDBClusterEndpointsResponse)
+
+instance
+  Prelude.NFData
+    DescribeDBClusterEndpointsResponse
+  where
+  rnf DescribeDBClusterEndpointsResponse' {..} =
+    Prelude.rnf dbClusterEndpoints
+      `Prelude.seq` Prelude.rnf marker
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/Neptune/DescribeDBClusterParameterGroups.hs b/gen/Amazonka/Neptune/DescribeDBClusterParameterGroups.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeDBClusterParameterGroups.hs
@@ -0,0 +1,326 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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 will
+-- contain only the description of the specified DB cluster parameter
+-- group.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeDBClusterParameterGroups' smart constructor.
+data DescribeDBClusterParameterGroups = DescribeDBClusterParameterGroups'
+  { -- | The name of a specific DB cluster parameter group to return details for.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, 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
+    -- @DescribeDBClusterParameterGroups@ 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 '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 DB cluster parameter group to return details for.
+--
+-- Constraints:
+--
+-- -   If supplied, 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
+-- @DescribeDBClusterParameterGroups@ 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
+-- called a 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 DB cluster parameter group to return details for.
+--
+-- Constraints:
+--
+-- -   If supplied, 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
+-- @DescribeDBClusterParameterGroups@ 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
+-- called a 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
+      ]
+
+-- | /See:/ 'newDescribeDBClusterParameterGroupsResponse' smart constructor.
+data DescribeDBClusterParameterGroupsResponse = DescribeDBClusterParameterGroupsResponse'
+  { -- | A list of DB cluster parameter groups.
+    dbClusterParameterGroups :: Prelude.Maybe [DBClusterParameterGroup],
+    -- | An optional pagination token provided by a previous
+    -- @DescribeDBClusterParameterGroups@ 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 DB cluster parameter groups.
+--
+-- 'marker', 'describeDBClusterParameterGroupsResponse_marker' - An optional pagination token provided by a previous
+-- @DescribeDBClusterParameterGroups@ 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 DB 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
+-- @DescribeDBClusterParameterGroups@ 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
diff --git a/gen/Amazonka/Neptune/DescribeDBClusterParameters.hs b/gen/Amazonka/Neptune/DescribeDBClusterParameters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeDBClusterParameters.hs
@@ -0,0 +1,325 @@
+{-# 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.Neptune.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 DB cluster
+-- parameter group.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /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
+    -- @DescribeDBClusterParameters@ 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,
+    -- | 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 DB cluster parameter group to return parameter
+    -- details for.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, 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
+-- @DescribeDBClusterParameters@ 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
+-- called a 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 DB cluster parameter group to return parameter
+-- details for.
+--
+-- Constraints:
+--
+-- -   If supplied, 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
+-- @DescribeDBClusterParameters@ 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
+-- called a 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 DB cluster parameter group to return parameter
+-- details for.
+--
+-- Constraints:
+--
+-- -   If supplied, 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
+      ]
+
+-- | /See:/ 'newDescribeDBClusterParametersResponse' smart constructor.
+data DescribeDBClusterParametersResponse = DescribeDBClusterParametersResponse'
+  { -- | An optional pagination token provided by a previous
+    -- DescribeDBClusterParameters 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 DB 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
+-- DescribeDBClusterParameters 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 DB 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
+-- DescribeDBClusterParameters 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 DB 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
diff --git a/gen/Amazonka/Neptune/DescribeDBClusterSnapshotAttributes.hs b/gen/Amazonka/Neptune/DescribeDBClusterSnapshotAttributes.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeDBClusterSnapshotAttributes.hs
@@ -0,0 +1,204 @@
+{-# 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.Neptune.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 DB cluster snapshot attribute names and values for a
+-- manual DB cluster snapshot.
+--
+-- When sharing snapshots with other Amazon accounts,
+-- @DescribeDBClusterSnapshotAttributes@ returns the @restore@ attribute
+-- and a list of IDs for the Amazon accounts that are authorized to copy or
+-- restore the manual DB cluster snapshot. If @all@ is included in the list
+-- of values for the @restore@ attribute, then the manual DB cluster
+-- snapshot is public and can be copied or restored by all Amazon accounts.
+--
+-- To add or remove access for an Amazon account to copy or restore a
+-- manual DB cluster snapshot, or to make the manual DB cluster snapshot
+-- public or private, use the ModifyDBClusterSnapshotAttribute API action.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeDBClusterSnapshotAttributes' smart constructor.
+data DescribeDBClusterSnapshotAttributes = DescribeDBClusterSnapshotAttributes'
+  { -- | The identifier for the DB 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 DB cluster snapshot to describe the attributes
+-- for.
+newDescribeDBClusterSnapshotAttributes ::
+  -- | 'dbClusterSnapshotIdentifier'
+  Prelude.Text ->
+  DescribeDBClusterSnapshotAttributes
+newDescribeDBClusterSnapshotAttributes
+  pDBClusterSnapshotIdentifier_ =
+    DescribeDBClusterSnapshotAttributes'
+      { dbClusterSnapshotIdentifier =
+          pDBClusterSnapshotIdentifier_
+      }
+
+-- | The identifier for the DB 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
diff --git a/gen/Amazonka/Neptune/DescribeDBClusterSnapshots.hs b/gen/Amazonka/Neptune/DescribeDBClusterSnapshots.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeDBClusterSnapshots.hs
@@ -0,0 +1,496 @@
+{-# 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.Neptune.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 DB cluster snapshots. This API action supports
+-- pagination.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeDBClusterSnapshots' smart constructor.
+data DescribeDBClusterSnapshots = DescribeDBClusterSnapshots'
+  { -- | The ID of the DB cluster to retrieve the list of DB cluster snapshots
+    -- for. This parameter can\'t be used in conjunction with the
+    -- @DBClusterSnapshotIdentifier@ parameter. This parameter is not
+    -- case-sensitive.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, must match the identifier of an existing DBCluster.
+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | A specific DB cluster snapshot identifier to describe. This parameter
+    -- can\'t be used in conjunction with the @DBClusterIdentifier@ parameter.
+    -- This value is stored as a lowercase string.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, 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],
+    -- | True to include manual DB cluster snapshots that are public and can be
+    -- copied or restored by any Amazon account, and otherwise false. The
+    -- default is @false@. The default is false.
+    --
+    -- You can share a manual DB cluster snapshot as public by using the
+    -- ModifyDBClusterSnapshotAttribute API action.
+    includePublic :: Prelude.Maybe Prelude.Bool,
+    -- | True to include shared manual DB cluster snapshots from other Amazon
+    -- accounts that this Amazon account has been given permission to copy or
+    -- restore, and otherwise false. The default is @false@.
+    --
+    -- You can give an Amazon account permission to restore a manual DB cluster
+    -- snapshot from another Amazon account by the
+    -- ModifyDBClusterSnapshotAttribute API action.
+    includeShared :: Prelude.Maybe Prelude.Bool,
+    -- | An optional pagination token provided by a previous
+    -- @DescribeDBClusterSnapshots@ 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,
+    -- | The type of DB cluster snapshots to be returned. You can specify one of
+    -- the following values:
+    --
+    -- -   @automated@ - Return all DB cluster snapshots that have been
+    --     automatically taken by Amazon Neptune for my Amazon account.
+    --
+    -- -   @manual@ - Return all DB cluster snapshots that have been taken by
+    --     my Amazon account.
+    --
+    -- -   @shared@ - Return all manual DB cluster snapshots that have been
+    --     shared to my Amazon account.
+    --
+    -- -   @public@ - Return all DB cluster snapshots that have been marked as
+    --     public.
+    --
+    -- If you don\'t specify a @SnapshotType@ value, then both automated and
+    -- manual DB cluster snapshots are returned. You can include shared DB
+    -- cluster snapshots with these results by setting the @IncludeShared@
+    -- parameter to @true@. You can include public DB 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 DB cluster to retrieve the list of DB cluster snapshots
+-- for. This parameter can\'t be used in conjunction with the
+-- @DBClusterSnapshotIdentifier@ parameter. This parameter is not
+-- case-sensitive.
+--
+-- Constraints:
+--
+-- -   If supplied, must match the identifier of an existing DBCluster.
+--
+-- 'dbClusterSnapshotIdentifier', 'describeDBClusterSnapshots_dbClusterSnapshotIdentifier' - A specific DB cluster snapshot identifier to describe. This parameter
+-- can\'t be used in conjunction with the @DBClusterIdentifier@ parameter.
+-- This value is stored as a lowercase string.
+--
+-- Constraints:
+--
+-- -   If supplied, 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' - True to include manual DB cluster snapshots that are public and can be
+-- copied or restored by any Amazon account, and otherwise false. The
+-- default is @false@. The default is false.
+--
+-- You can share a manual DB cluster snapshot as public by using the
+-- ModifyDBClusterSnapshotAttribute API action.
+--
+-- 'includeShared', 'describeDBClusterSnapshots_includeShared' - True to include shared manual DB cluster snapshots from other Amazon
+-- accounts that this Amazon account has been given permission to copy or
+-- restore, and otherwise false. The default is @false@.
+--
+-- You can give an Amazon account permission to restore a manual DB cluster
+-- snapshot from another Amazon account by the
+-- ModifyDBClusterSnapshotAttribute API action.
+--
+-- 'marker', 'describeDBClusterSnapshots_marker' - An optional pagination token provided by a previous
+-- @DescribeDBClusterSnapshots@ 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
+-- called a 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 DB cluster snapshots to be returned. You can specify one of
+-- the following values:
+--
+-- -   @automated@ - Return all DB cluster snapshots that have been
+--     automatically taken by Amazon Neptune for my Amazon account.
+--
+-- -   @manual@ - Return all DB cluster snapshots that have been taken by
+--     my Amazon account.
+--
+-- -   @shared@ - Return all manual DB cluster snapshots that have been
+--     shared to my Amazon account.
+--
+-- -   @public@ - Return all DB cluster snapshots that have been marked as
+--     public.
+--
+-- If you don\'t specify a @SnapshotType@ value, then both automated and
+-- manual DB cluster snapshots are returned. You can include shared DB
+-- cluster snapshots with these results by setting the @IncludeShared@
+-- parameter to @true@. You can include public DB 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 DB cluster to retrieve the list of DB cluster snapshots
+-- for. This parameter can\'t be used in conjunction with the
+-- @DBClusterSnapshotIdentifier@ parameter. This parameter is not
+-- case-sensitive.
+--
+-- Constraints:
+--
+-- -   If supplied, 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 DB cluster snapshot identifier to describe. This parameter
+-- can\'t be used in conjunction with the @DBClusterIdentifier@ parameter.
+-- This value is stored as a lowercase string.
+--
+-- Constraints:
+--
+-- -   If supplied, 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
+
+-- | True to include manual DB cluster snapshots that are public and can be
+-- copied or restored by any Amazon account, and otherwise false. The
+-- default is @false@. The default is false.
+--
+-- You can share a manual DB cluster snapshot as public by using the
+-- ModifyDBClusterSnapshotAttribute API action.
+describeDBClusterSnapshots_includePublic :: Lens.Lens' DescribeDBClusterSnapshots (Prelude.Maybe Prelude.Bool)
+describeDBClusterSnapshots_includePublic = Lens.lens (\DescribeDBClusterSnapshots' {includePublic} -> includePublic) (\s@DescribeDBClusterSnapshots' {} a -> s {includePublic = a} :: DescribeDBClusterSnapshots)
+
+-- | True to include shared manual DB cluster snapshots from other Amazon
+-- accounts that this Amazon account has been given permission to copy or
+-- restore, and otherwise false. The default is @false@.
+--
+-- You can give an Amazon account permission to restore a manual DB cluster
+-- snapshot from another Amazon account by the
+-- ModifyDBClusterSnapshotAttribute API action.
+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
+-- @DescribeDBClusterSnapshots@ 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
+-- called a 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 DB cluster snapshots to be returned. You can specify one of
+-- the following values:
+--
+-- -   @automated@ - Return all DB cluster snapshots that have been
+--     automatically taken by Amazon Neptune for my Amazon account.
+--
+-- -   @manual@ - Return all DB cluster snapshots that have been taken by
+--     my Amazon account.
+--
+-- -   @shared@ - Return all manual DB cluster snapshots that have been
+--     shared to my Amazon account.
+--
+-- -   @public@ - Return all DB cluster snapshots that have been marked as
+--     public.
+--
+-- If you don\'t specify a @SnapshotType@ value, then both automated and
+-- manual DB cluster snapshots are returned. You can include shared DB
+-- cluster snapshots with these results by setting the @IncludeShared@
+-- parameter to @true@. You can include public DB 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
+      ]
+
+-- | /See:/ 'newDescribeDBClusterSnapshotsResponse' smart constructor.
+data DescribeDBClusterSnapshotsResponse = DescribeDBClusterSnapshotsResponse'
+  { -- | Provides a list of DB cluster snapshots for the user.
+    dbClusterSnapshots :: Prelude.Maybe [DBClusterSnapshot],
+    -- | An optional pagination token provided by a previous
+    -- DescribeDBClusterSnapshots 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 DB cluster snapshots for the user.
+--
+-- 'marker', 'describeDBClusterSnapshotsResponse_marker' - An optional pagination token provided by a previous
+-- DescribeDBClusterSnapshots 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 DB cluster snapshots for the user.
+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
+-- DescribeDBClusterSnapshots 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
diff --git a/gen/Amazonka/Neptune/DescribeDBClusters.hs b/gen/Amazonka/Neptune/DescribeDBClusters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeDBClusters.hs
@@ -0,0 +1,332 @@
+{-# 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.Neptune.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 DB clusters, and supports
+-- pagination.
+--
+-- This operation can also return information for Amazon RDS clusters and
+-- Amazon DocDB clusters.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeDBClusters' smart constructor.
+data DescribeDBClusters = DescribeDBClusters'
+  { -- | The user-supplied DB cluster identifier. If this parameter is specified,
+    -- information from only the specific DB cluster is returned. This
+    -- parameter isn\'t case-sensitive.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, must match an existing DBClusterIdentifier.
+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | A filter that specifies one or more DB clusters to describe.
+    --
+    -- Supported filters:
+    --
+    -- -   @db-cluster-id@ - Accepts DB cluster identifiers and DB cluster
+    --     Amazon Resource Names (ARNs). The results list will only include
+    --     information about the DB clusters identified by these ARNs.
+    --
+    -- -   @engine@ - Accepts an engine name (such as @neptune@), and restricts
+    --     the results list to DB clusters created by that engine.
+    --
+    -- For example, to invoke this API from the Amazon CLI and filter so that
+    -- only Neptune DB clusters are returned, you could use the following
+    -- command:
+    filters :: Prelude.Maybe [Filter],
+    -- | An optional pagination token provided by a previous DescribeDBClusters
+    -- 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 '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-supplied DB cluster identifier. If this parameter is specified,
+-- information from only the specific DB cluster is returned. This
+-- parameter isn\'t case-sensitive.
+--
+-- Constraints:
+--
+-- -   If supplied, must match an existing DBClusterIdentifier.
+--
+-- 'filters', 'describeDBClusters_filters' - A filter that specifies one or more DB clusters to describe.
+--
+-- Supported filters:
+--
+-- -   @db-cluster-id@ - Accepts DB cluster identifiers and DB cluster
+--     Amazon Resource Names (ARNs). The results list will only include
+--     information about the DB clusters identified by these ARNs.
+--
+-- -   @engine@ - Accepts an engine name (such as @neptune@), and restricts
+--     the results list to DB clusters created by that engine.
+--
+-- For example, to invoke this API from the Amazon CLI and filter so that
+-- only Neptune DB clusters are returned, you could use the following
+-- command:
+--
+-- 'marker', 'describeDBClusters_marker' - An optional pagination token provided by a previous DescribeDBClusters
+-- 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
+-- called a 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-supplied DB cluster identifier. If this parameter is specified,
+-- information from only the specific DB cluster is returned. This
+-- parameter isn\'t case-sensitive.
+--
+-- Constraints:
+--
+-- -   If supplied, 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 DB clusters to describe.
+--
+-- Supported filters:
+--
+-- -   @db-cluster-id@ - Accepts DB cluster identifiers and DB cluster
+--     Amazon Resource Names (ARNs). The results list will only include
+--     information about the DB clusters identified by these ARNs.
+--
+-- -   @engine@ - Accepts an engine name (such as @neptune@), and restricts
+--     the results list to DB clusters created by that engine.
+--
+-- For example, to invoke this API from the Amazon CLI and filter so that
+-- only Neptune DB clusters are returned, you could use the following
+-- command:
+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 DescribeDBClusters
+-- 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
+-- called a 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
+      ]
+
+-- | /See:/ 'newDescribeDBClustersResponse' smart constructor.
+data DescribeDBClustersResponse = DescribeDBClustersResponse'
+  { -- | Contains a list of DB clusters for the user.
+    dbClusters :: Prelude.Maybe [DBCluster],
+    -- | A pagination token that can be used in a subsequent DescribeDBClusters
+    -- request.
+    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' - Contains a list of DB clusters for the user.
+--
+-- 'marker', 'describeDBClustersResponse_marker' - A pagination token that can be used in a subsequent DescribeDBClusters
+-- request.
+--
+-- '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_
+    }
+
+-- | Contains a list of DB clusters for the user.
+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
+
+-- | A pagination token that can be used in a subsequent DescribeDBClusters
+-- request.
+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
diff --git a/gen/Amazonka/Neptune/DescribeDBEngineVersions.hs b/gen/Amazonka/Neptune/DescribeDBEngineVersions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeDBEngineVersions.hs
@@ -0,0 +1,378 @@
+{-# 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.Neptune.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 DB engines.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeDBEngineVersions' smart constructor.
+data DescribeDBEngineVersions = DescribeDBEngineVersions'
+  { -- | The name of a specific DB parameter group family to return details for.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, 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: @5.1.49@
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | 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 than
+    -- the @MaxRecords@ value is available, a pagination token called a marker
+    -- is included in the response so that the following 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 DB parameter group family to return details for.
+--
+-- Constraints:
+--
+-- -   If supplied, 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: @5.1.49@
+--
+-- 'filters', 'describeDBEngineVersions_filters' - 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 than
+-- the @MaxRecords@ value is available, a pagination token called a marker
+-- is included in the response so that the following 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 DB parameter group family to return details for.
+--
+-- Constraints:
+--
+-- -   If supplied, 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: @5.1.49@
+describeDBEngineVersions_engineVersion :: Lens.Lens' DescribeDBEngineVersions (Prelude.Maybe Prelude.Text)
+describeDBEngineVersions_engineVersion = Lens.lens (\DescribeDBEngineVersions' {engineVersion} -> engineVersion) (\s@DescribeDBEngineVersions' {} a -> s {engineVersion = a} :: DescribeDBEngineVersions)
+
+-- | 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 than
+-- the @MaxRecords@ value is available, a pagination token called a marker
+-- is included in the response so that the following 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
+      ]
+
+-- | /See:/ 'newDescribeDBEngineVersionsResponse' smart constructor.
+data DescribeDBEngineVersionsResponse = DescribeDBEngineVersionsResponse'
+  { -- | A list of @DBEngineVersion@ elements.
+    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' - A list of @DBEngineVersion@ elements.
+--
+-- '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_
+    }
+
+-- | A list of @DBEngineVersion@ elements.
+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
diff --git a/gen/Amazonka/Neptune/DescribeDBInstances.hs b/gen/Amazonka/Neptune/DescribeDBInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeDBInstances.hs
@@ -0,0 +1,341 @@
+{-# 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.Neptune.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 instances, and supports
+-- pagination.
+--
+-- This operation can also return information for Amazon RDS instances and
+-- Amazon DocDB instances.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeDBInstances' smart constructor.
+data DescribeDBInstances = DescribeDBInstances'
+  { -- | The user-supplied instance identifier. If this parameter is specified,
+    -- information from only the specific DB instance is returned. This
+    -- parameter isn\'t case-sensitive.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, must match the identifier of an existing DBInstance.
+    dbInstanceIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | A filter that specifies one or more DB instances to describe.
+    --
+    -- Supported filters:
+    --
+    -- -   @db-cluster-id@ - Accepts DB cluster identifiers and DB cluster
+    --     Amazon Resource Names (ARNs). The results list will only include
+    --     information about the DB instances associated with the DB clusters
+    --     identified by these ARNs.
+    --
+    -- -   @engine@ - Accepts an engine name (such as @neptune@), and restricts
+    --     the results list to DB instances created by that engine.
+    --
+    -- For example, to invoke this API from the Amazon CLI and filter so that
+    -- only Neptune DB instances are returned, you could use the following
+    -- command:
+    filters :: Prelude.Maybe [Filter],
+    -- | An optional pagination token provided by a previous
+    -- @DescribeDBInstances@ 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 '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-supplied instance identifier. If this parameter is specified,
+-- information from only the specific DB instance is returned. This
+-- parameter isn\'t case-sensitive.
+--
+-- Constraints:
+--
+-- -   If supplied, must match the identifier of an existing DBInstance.
+--
+-- 'filters', 'describeDBInstances_filters' - A filter that specifies one or more DB instances to describe.
+--
+-- Supported filters:
+--
+-- -   @db-cluster-id@ - Accepts DB cluster identifiers and DB cluster
+--     Amazon Resource Names (ARNs). The results list will only include
+--     information about the DB instances associated with the DB clusters
+--     identified by these ARNs.
+--
+-- -   @engine@ - Accepts an engine name (such as @neptune@), and restricts
+--     the results list to DB instances created by that engine.
+--
+-- For example, to invoke this API from the Amazon CLI and filter so that
+-- only Neptune DB instances are returned, you could use the following
+-- command:
+--
+-- 'marker', 'describeDBInstances_marker' - An optional pagination token provided by a previous
+-- @DescribeDBInstances@ 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
+-- called a 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-supplied instance identifier. If this parameter is specified,
+-- information from only the specific DB instance is returned. This
+-- parameter isn\'t case-sensitive.
+--
+-- Constraints:
+--
+-- -   If supplied, 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 DB instances to describe.
+--
+-- Supported filters:
+--
+-- -   @db-cluster-id@ - Accepts DB cluster identifiers and DB cluster
+--     Amazon Resource Names (ARNs). The results list will only include
+--     information about the DB instances associated with the DB clusters
+--     identified by these ARNs.
+--
+-- -   @engine@ - Accepts an engine name (such as @neptune@), and restricts
+--     the results list to DB instances created by that engine.
+--
+-- For example, to invoke this API from the Amazon CLI and filter so that
+-- only Neptune DB instances are returned, you could use the following
+-- command:
+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
+-- @DescribeDBInstances@ 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
+-- called a 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
+      ]
+
+-- | /See:/ 'newDescribeDBInstancesResponse' smart constructor.
+data DescribeDBInstancesResponse = DescribeDBInstancesResponse'
+  { -- | A list of DBInstance 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' - A list of DBInstance 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_
+    }
+
+-- | A list of DBInstance 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
diff --git a/gen/Amazonka/Neptune/DescribeDBParameterGroups.hs b/gen/Amazonka/Neptune/DescribeDBParameterGroups.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeDBParameterGroups.hs
@@ -0,0 +1,297 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.DescribeDBParameterGroups
+-- 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 @DBParameterGroup@ descriptions. If a
+-- @DBParameterGroupName@ is specified, the list will contain only the
+-- description of the specified DB parameter group.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.DescribeDBParameterGroups
+  ( -- * Creating a Request
+    DescribeDBParameterGroups (..),
+    newDescribeDBParameterGroups,
+
+    -- * Request Lenses
+    describeDBParameterGroups_dbParameterGroupName,
+    describeDBParameterGroups_filters,
+    describeDBParameterGroups_marker,
+    describeDBParameterGroups_maxRecords,
+
+    -- * Destructuring the Response
+    DescribeDBParameterGroupsResponse (..),
+    newDescribeDBParameterGroupsResponse,
+
+    -- * Response Lenses
+    describeDBParameterGroupsResponse_dbParameterGroups,
+    describeDBParameterGroupsResponse_marker,
+    describeDBParameterGroupsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeDBParameterGroups' smart constructor.
+data DescribeDBParameterGroups = DescribeDBParameterGroups'
+  { -- | The name of a specific DB parameter group to return details for.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, must match the name of an existing
+    --     DBClusterParameterGroup.
+    dbParameterGroupName :: Prelude.Maybe Prelude.Text,
+    -- | This parameter is not currently supported.
+    filters :: Prelude.Maybe [Filter],
+    -- | An optional pagination token provided by a previous
+    -- @DescribeDBParameterGroups@ 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 'DescribeDBParameterGroups' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dbParameterGroupName', 'describeDBParameterGroups_dbParameterGroupName' - The name of a specific DB parameter group to return details for.
+--
+-- Constraints:
+--
+-- -   If supplied, must match the name of an existing
+--     DBClusterParameterGroup.
+--
+-- 'filters', 'describeDBParameterGroups_filters' - This parameter is not currently supported.
+--
+-- 'marker', 'describeDBParameterGroups_marker' - An optional pagination token provided by a previous
+-- @DescribeDBParameterGroups@ request. If this parameter is specified, the
+-- response includes only records beyond the marker, up to the value
+-- specified by @MaxRecords@.
+--
+-- 'maxRecords', 'describeDBParameterGroups_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.
+newDescribeDBParameterGroups ::
+  DescribeDBParameterGroups
+newDescribeDBParameterGroups =
+  DescribeDBParameterGroups'
+    { dbParameterGroupName =
+        Prelude.Nothing,
+      filters = Prelude.Nothing,
+      marker = Prelude.Nothing,
+      maxRecords = Prelude.Nothing
+    }
+
+-- | The name of a specific DB parameter group to return details for.
+--
+-- Constraints:
+--
+-- -   If supplied, must match the name of an existing
+--     DBClusterParameterGroup.
+describeDBParameterGroups_dbParameterGroupName :: Lens.Lens' DescribeDBParameterGroups (Prelude.Maybe Prelude.Text)
+describeDBParameterGroups_dbParameterGroupName = Lens.lens (\DescribeDBParameterGroups' {dbParameterGroupName} -> dbParameterGroupName) (\s@DescribeDBParameterGroups' {} a -> s {dbParameterGroupName = a} :: DescribeDBParameterGroups)
+
+-- | This parameter is not currently supported.
+describeDBParameterGroups_filters :: Lens.Lens' DescribeDBParameterGroups (Prelude.Maybe [Filter])
+describeDBParameterGroups_filters = Lens.lens (\DescribeDBParameterGroups' {filters} -> filters) (\s@DescribeDBParameterGroups' {} a -> s {filters = a} :: DescribeDBParameterGroups) Prelude.. Lens.mapping Lens.coerced
+
+-- | An optional pagination token provided by a previous
+-- @DescribeDBParameterGroups@ request. If this parameter is specified, the
+-- response includes only records beyond the marker, up to the value
+-- specified by @MaxRecords@.
+describeDBParameterGroups_marker :: Lens.Lens' DescribeDBParameterGroups (Prelude.Maybe Prelude.Text)
+describeDBParameterGroups_marker = Lens.lens (\DescribeDBParameterGroups' {marker} -> marker) (\s@DescribeDBParameterGroups' {} a -> s {marker = a} :: DescribeDBParameterGroups)
+
+-- | 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.
+describeDBParameterGroups_maxRecords :: Lens.Lens' DescribeDBParameterGroups (Prelude.Maybe Prelude.Int)
+describeDBParameterGroups_maxRecords = Lens.lens (\DescribeDBParameterGroups' {maxRecords} -> maxRecords) (\s@DescribeDBParameterGroups' {} a -> s {maxRecords = a} :: DescribeDBParameterGroups)
+
+instance Core.AWSPager DescribeDBParameterGroups where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? describeDBParameterGroupsResponse_marker
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? describeDBParameterGroupsResponse_dbParameterGroups
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& describeDBParameterGroups_marker
+          Lens..~ rs
+          Lens.^? describeDBParameterGroupsResponse_marker
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest DescribeDBParameterGroups where
+  type
+    AWSResponse DescribeDBParameterGroups =
+      DescribeDBParameterGroupsResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveXMLWrapper
+      "DescribeDBParameterGroupsResult"
+      ( \s h x ->
+          DescribeDBParameterGroupsResponse'
+            Prelude.<$> ( x
+                            Data..@? "DBParameterGroups"
+                            Core..!@ Prelude.mempty
+                            Prelude.>>= Core.may (Data.parseXMLList "DBParameterGroup")
+                        )
+            Prelude.<*> (x Data..@? "Marker")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DescribeDBParameterGroups where
+  hashWithSalt _salt DescribeDBParameterGroups' {..} =
+    _salt
+      `Prelude.hashWithSalt` dbParameterGroupName
+      `Prelude.hashWithSalt` filters
+      `Prelude.hashWithSalt` marker
+      `Prelude.hashWithSalt` maxRecords
+
+instance Prelude.NFData DescribeDBParameterGroups where
+  rnf DescribeDBParameterGroups' {..} =
+    Prelude.rnf dbParameterGroupName
+      `Prelude.seq` Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf marker
+      `Prelude.seq` Prelude.rnf maxRecords
+
+instance Data.ToHeaders DescribeDBParameterGroups where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath DescribeDBParameterGroups where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DescribeDBParameterGroups where
+  toQuery DescribeDBParameterGroups' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ("DescribeDBParameterGroups" :: Prelude.ByteString),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "DBParameterGroupName" Data.=: dbParameterGroupName,
+        "Filters"
+          Data.=: Data.toQuery
+            (Data.toQueryList "Filter" Prelude.<$> filters),
+        "Marker" Data.=: marker,
+        "MaxRecords" Data.=: maxRecords
+      ]
+
+-- | /See:/ 'newDescribeDBParameterGroupsResponse' smart constructor.
+data DescribeDBParameterGroupsResponse = DescribeDBParameterGroupsResponse'
+  { -- | A list of DBParameterGroup instances.
+    dbParameterGroups :: Prelude.Maybe [DBParameterGroup],
+    -- | 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 'DescribeDBParameterGroupsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dbParameterGroups', 'describeDBParameterGroupsResponse_dbParameterGroups' - A list of DBParameterGroup instances.
+--
+-- 'marker', 'describeDBParameterGroupsResponse_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', 'describeDBParameterGroupsResponse_httpStatus' - The response's http status code.
+newDescribeDBParameterGroupsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DescribeDBParameterGroupsResponse
+newDescribeDBParameterGroupsResponse pHttpStatus_ =
+  DescribeDBParameterGroupsResponse'
+    { dbParameterGroups =
+        Prelude.Nothing,
+      marker = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | A list of DBParameterGroup instances.
+describeDBParameterGroupsResponse_dbParameterGroups :: Lens.Lens' DescribeDBParameterGroupsResponse (Prelude.Maybe [DBParameterGroup])
+describeDBParameterGroupsResponse_dbParameterGroups = Lens.lens (\DescribeDBParameterGroupsResponse' {dbParameterGroups} -> dbParameterGroups) (\s@DescribeDBParameterGroupsResponse' {} a -> s {dbParameterGroups = a} :: DescribeDBParameterGroupsResponse) 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@.
+describeDBParameterGroupsResponse_marker :: Lens.Lens' DescribeDBParameterGroupsResponse (Prelude.Maybe Prelude.Text)
+describeDBParameterGroupsResponse_marker = Lens.lens (\DescribeDBParameterGroupsResponse' {marker} -> marker) (\s@DescribeDBParameterGroupsResponse' {} a -> s {marker = a} :: DescribeDBParameterGroupsResponse)
+
+-- | The response's http status code.
+describeDBParameterGroupsResponse_httpStatus :: Lens.Lens' DescribeDBParameterGroupsResponse Prelude.Int
+describeDBParameterGroupsResponse_httpStatus = Lens.lens (\DescribeDBParameterGroupsResponse' {httpStatus} -> httpStatus) (\s@DescribeDBParameterGroupsResponse' {} a -> s {httpStatus = a} :: DescribeDBParameterGroupsResponse)
+
+instance
+  Prelude.NFData
+    DescribeDBParameterGroupsResponse
+  where
+  rnf DescribeDBParameterGroupsResponse' {..} =
+    Prelude.rnf dbParameterGroups
+      `Prelude.seq` Prelude.rnf marker
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/Neptune/DescribeDBParameters.hs b/gen/Amazonka/Neptune/DescribeDBParameters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeDBParameters.hs
@@ -0,0 +1,315 @@
+{-# 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.Neptune.DescribeDBParameters
+-- 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 DB parameter group.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.DescribeDBParameters
+  ( -- * Creating a Request
+    DescribeDBParameters (..),
+    newDescribeDBParameters,
+
+    -- * Request Lenses
+    describeDBParameters_filters,
+    describeDBParameters_marker,
+    describeDBParameters_maxRecords,
+    describeDBParameters_source,
+    describeDBParameters_dbParameterGroupName,
+
+    -- * Destructuring the Response
+    DescribeDBParametersResponse (..),
+    newDescribeDBParametersResponse,
+
+    -- * Response Lenses
+    describeDBParametersResponse_marker,
+    describeDBParametersResponse_parameters,
+    describeDBParametersResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeDBParameters' smart constructor.
+data DescribeDBParameters = DescribeDBParameters'
+  { -- | This parameter is not currently supported.
+    filters :: Prelude.Maybe [Filter],
+    -- | An optional pagination token provided by a previous
+    -- @DescribeDBParameters@ 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,
+    -- | The parameter types to return.
+    --
+    -- Default: All parameter types returned
+    --
+    -- Valid Values: @user | system | engine-default@
+    source :: Prelude.Maybe Prelude.Text,
+    -- | The name of a specific DB parameter group to return details for.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, must match the name of an existing DBParameterGroup.
+    dbParameterGroupName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeDBParameters' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeDBParameters_filters' - This parameter is not currently supported.
+--
+-- 'marker', 'describeDBParameters_marker' - An optional pagination token provided by a previous
+-- @DescribeDBParameters@ request. If this parameter is specified, the
+-- response includes only records beyond the marker, up to the value
+-- specified by @MaxRecords@.
+--
+-- 'maxRecords', 'describeDBParameters_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.
+--
+-- 'source', 'describeDBParameters_source' - The parameter types to return.
+--
+-- Default: All parameter types returned
+--
+-- Valid Values: @user | system | engine-default@
+--
+-- 'dbParameterGroupName', 'describeDBParameters_dbParameterGroupName' - The name of a specific DB parameter group to return details for.
+--
+-- Constraints:
+--
+-- -   If supplied, must match the name of an existing DBParameterGroup.
+newDescribeDBParameters ::
+  -- | 'dbParameterGroupName'
+  Prelude.Text ->
+  DescribeDBParameters
+newDescribeDBParameters pDBParameterGroupName_ =
+  DescribeDBParameters'
+    { filters = Prelude.Nothing,
+      marker = Prelude.Nothing,
+      maxRecords = Prelude.Nothing,
+      source = Prelude.Nothing,
+      dbParameterGroupName = pDBParameterGroupName_
+    }
+
+-- | This parameter is not currently supported.
+describeDBParameters_filters :: Lens.Lens' DescribeDBParameters (Prelude.Maybe [Filter])
+describeDBParameters_filters = Lens.lens (\DescribeDBParameters' {filters} -> filters) (\s@DescribeDBParameters' {} a -> s {filters = a} :: DescribeDBParameters) Prelude.. Lens.mapping Lens.coerced
+
+-- | An optional pagination token provided by a previous
+-- @DescribeDBParameters@ request. If this parameter is specified, the
+-- response includes only records beyond the marker, up to the value
+-- specified by @MaxRecords@.
+describeDBParameters_marker :: Lens.Lens' DescribeDBParameters (Prelude.Maybe Prelude.Text)
+describeDBParameters_marker = Lens.lens (\DescribeDBParameters' {marker} -> marker) (\s@DescribeDBParameters' {} a -> s {marker = a} :: DescribeDBParameters)
+
+-- | 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.
+describeDBParameters_maxRecords :: Lens.Lens' DescribeDBParameters (Prelude.Maybe Prelude.Int)
+describeDBParameters_maxRecords = Lens.lens (\DescribeDBParameters' {maxRecords} -> maxRecords) (\s@DescribeDBParameters' {} a -> s {maxRecords = a} :: DescribeDBParameters)
+
+-- | The parameter types to return.
+--
+-- Default: All parameter types returned
+--
+-- Valid Values: @user | system | engine-default@
+describeDBParameters_source :: Lens.Lens' DescribeDBParameters (Prelude.Maybe Prelude.Text)
+describeDBParameters_source = Lens.lens (\DescribeDBParameters' {source} -> source) (\s@DescribeDBParameters' {} a -> s {source = a} :: DescribeDBParameters)
+
+-- | The name of a specific DB parameter group to return details for.
+--
+-- Constraints:
+--
+-- -   If supplied, must match the name of an existing DBParameterGroup.
+describeDBParameters_dbParameterGroupName :: Lens.Lens' DescribeDBParameters Prelude.Text
+describeDBParameters_dbParameterGroupName = Lens.lens (\DescribeDBParameters' {dbParameterGroupName} -> dbParameterGroupName) (\s@DescribeDBParameters' {} a -> s {dbParameterGroupName = a} :: DescribeDBParameters)
+
+instance Core.AWSPager DescribeDBParameters where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? describeDBParametersResponse_marker
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? describeDBParametersResponse_parameters
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& describeDBParameters_marker
+          Lens..~ rs
+          Lens.^? describeDBParametersResponse_marker
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest DescribeDBParameters where
+  type
+    AWSResponse DescribeDBParameters =
+      DescribeDBParametersResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveXMLWrapper
+      "DescribeDBParametersResult"
+      ( \s h x ->
+          DescribeDBParametersResponse'
+            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 DescribeDBParameters where
+  hashWithSalt _salt DescribeDBParameters' {..} =
+    _salt
+      `Prelude.hashWithSalt` filters
+      `Prelude.hashWithSalt` marker
+      `Prelude.hashWithSalt` maxRecords
+      `Prelude.hashWithSalt` source
+      `Prelude.hashWithSalt` dbParameterGroupName
+
+instance Prelude.NFData DescribeDBParameters where
+  rnf DescribeDBParameters' {..} =
+    Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf marker
+      `Prelude.seq` Prelude.rnf maxRecords
+      `Prelude.seq` Prelude.rnf source
+      `Prelude.seq` Prelude.rnf dbParameterGroupName
+
+instance Data.ToHeaders DescribeDBParameters where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath DescribeDBParameters where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DescribeDBParameters where
+  toQuery DescribeDBParameters' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ("DescribeDBParameters" :: 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,
+        "DBParameterGroupName" Data.=: dbParameterGroupName
+      ]
+
+-- | /See:/ 'newDescribeDBParametersResponse' smart constructor.
+data DescribeDBParametersResponse = DescribeDBParametersResponse'
+  { -- | 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,
+    -- | A list of Parameter values.
+    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 'DescribeDBParametersResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeDBParametersResponse_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', 'describeDBParametersResponse_parameters' - A list of Parameter values.
+--
+-- 'httpStatus', 'describeDBParametersResponse_httpStatus' - The response's http status code.
+newDescribeDBParametersResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DescribeDBParametersResponse
+newDescribeDBParametersResponse pHttpStatus_ =
+  DescribeDBParametersResponse'
+    { 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@.
+describeDBParametersResponse_marker :: Lens.Lens' DescribeDBParametersResponse (Prelude.Maybe Prelude.Text)
+describeDBParametersResponse_marker = Lens.lens (\DescribeDBParametersResponse' {marker} -> marker) (\s@DescribeDBParametersResponse' {} a -> s {marker = a} :: DescribeDBParametersResponse)
+
+-- | A list of Parameter values.
+describeDBParametersResponse_parameters :: Lens.Lens' DescribeDBParametersResponse (Prelude.Maybe [Parameter])
+describeDBParametersResponse_parameters = Lens.lens (\DescribeDBParametersResponse' {parameters} -> parameters) (\s@DescribeDBParametersResponse' {} a -> s {parameters = a} :: DescribeDBParametersResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+describeDBParametersResponse_httpStatus :: Lens.Lens' DescribeDBParametersResponse Prelude.Int
+describeDBParametersResponse_httpStatus = Lens.lens (\DescribeDBParametersResponse' {httpStatus} -> httpStatus) (\s@DescribeDBParametersResponse' {} a -> s {httpStatus = a} :: DescribeDBParametersResponse)
+
+instance Prelude.NFData DescribeDBParametersResponse where
+  rnf DescribeDBParametersResponse' {..} =
+    Prelude.rnf marker
+      `Prelude.seq` Prelude.rnf parameters
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/Neptune/DescribeDBSubnetGroups.hs b/gen/Amazonka/Neptune/DescribeDBSubnetGroups.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeDBSubnetGroups.hs
@@ -0,0 +1,285 @@
+{-# 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.Neptune.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.
+--
+-- For an overview of CIDR ranges, go to the
+-- <http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing Wikipedia Tutorial>.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeDBSubnetGroups' smart constructor.
+data DescribeDBSubnetGroups = DescribeDBSubnetGroups'
+  { -- | The name of the DB 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
+    -- DescribeDBSubnetGroups 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 '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 DB 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
+-- DescribeDBSubnetGroups 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
+-- called a 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 DB 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
+-- DescribeDBSubnetGroups 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
+-- called a 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
+      ]
+
+-- | /See:/ 'newDescribeDBSubnetGroupsResponse' smart constructor.
+data DescribeDBSubnetGroupsResponse = DescribeDBSubnetGroupsResponse'
+  { -- | A list of DBSubnetGroup instances.
+    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' - A list of DBSubnetGroup instances.
+--
+-- '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_
+    }
+
+-- | A list of DBSubnetGroup instances.
+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
diff --git a/gen/Amazonka/Neptune/DescribeEngineDefaultClusterParameters.hs b/gen/Amazonka/Neptune/DescribeEngineDefaultClusterParameters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeEngineDefaultClusterParameters.hs
@@ -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.Neptune.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.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /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
+    -- @DescribeEngineDefaultClusterParameters@ 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,
+    -- | The name of the DB cluster parameter group family to return 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
+-- @DescribeEngineDefaultClusterParameters@ 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
+-- called a 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 DB cluster parameter group family to return 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
+-- @DescribeEngineDefaultClusterParameters@ 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
+-- called a 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 DB cluster parameter group family to return 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
diff --git a/gen/Amazonka/Neptune/DescribeEngineDefaultParameters.hs b/gen/Amazonka/Neptune/DescribeEngineDefaultParameters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeEngineDefaultParameters.hs
@@ -0,0 +1,289 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.DescribeEngineDefaultParameters
+-- 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
+-- specified database engine.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.DescribeEngineDefaultParameters
+  ( -- * Creating a Request
+    DescribeEngineDefaultParameters (..),
+    newDescribeEngineDefaultParameters,
+
+    -- * Request Lenses
+    describeEngineDefaultParameters_filters,
+    describeEngineDefaultParameters_marker,
+    describeEngineDefaultParameters_maxRecords,
+    describeEngineDefaultParameters_dbParameterGroupFamily,
+
+    -- * Destructuring the Response
+    DescribeEngineDefaultParametersResponse (..),
+    newDescribeEngineDefaultParametersResponse,
+
+    -- * Response Lenses
+    describeEngineDefaultParametersResponse_engineDefaults,
+    describeEngineDefaultParametersResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeEngineDefaultParameters' smart constructor.
+data DescribeEngineDefaultParameters = DescribeEngineDefaultParameters'
+  { -- | Not currently supported.
+    filters :: Prelude.Maybe [Filter],
+    -- | An optional pagination token provided by a previous
+    -- @DescribeEngineDefaultParameters@ 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,
+    -- | The name of the DB parameter group family.
+    dbParameterGroupFamily :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeEngineDefaultParameters' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeEngineDefaultParameters_filters' - Not currently supported.
+--
+-- 'marker', 'describeEngineDefaultParameters_marker' - An optional pagination token provided by a previous
+-- @DescribeEngineDefaultParameters@ request. If this parameter is
+-- specified, the response includes only records beyond the marker, up to
+-- the value specified by @MaxRecords@.
+--
+-- 'maxRecords', 'describeEngineDefaultParameters_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.
+--
+-- 'dbParameterGroupFamily', 'describeEngineDefaultParameters_dbParameterGroupFamily' - The name of the DB parameter group family.
+newDescribeEngineDefaultParameters ::
+  -- | 'dbParameterGroupFamily'
+  Prelude.Text ->
+  DescribeEngineDefaultParameters
+newDescribeEngineDefaultParameters
+  pDBParameterGroupFamily_ =
+    DescribeEngineDefaultParameters'
+      { filters =
+          Prelude.Nothing,
+        marker = Prelude.Nothing,
+        maxRecords = Prelude.Nothing,
+        dbParameterGroupFamily =
+          pDBParameterGroupFamily_
+      }
+
+-- | Not currently supported.
+describeEngineDefaultParameters_filters :: Lens.Lens' DescribeEngineDefaultParameters (Prelude.Maybe [Filter])
+describeEngineDefaultParameters_filters = Lens.lens (\DescribeEngineDefaultParameters' {filters} -> filters) (\s@DescribeEngineDefaultParameters' {} a -> s {filters = a} :: DescribeEngineDefaultParameters) Prelude.. Lens.mapping Lens.coerced
+
+-- | An optional pagination token provided by a previous
+-- @DescribeEngineDefaultParameters@ request. If this parameter is
+-- specified, the response includes only records beyond the marker, up to
+-- the value specified by @MaxRecords@.
+describeEngineDefaultParameters_marker :: Lens.Lens' DescribeEngineDefaultParameters (Prelude.Maybe Prelude.Text)
+describeEngineDefaultParameters_marker = Lens.lens (\DescribeEngineDefaultParameters' {marker} -> marker) (\s@DescribeEngineDefaultParameters' {} a -> s {marker = a} :: DescribeEngineDefaultParameters)
+
+-- | 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.
+describeEngineDefaultParameters_maxRecords :: Lens.Lens' DescribeEngineDefaultParameters (Prelude.Maybe Prelude.Int)
+describeEngineDefaultParameters_maxRecords = Lens.lens (\DescribeEngineDefaultParameters' {maxRecords} -> maxRecords) (\s@DescribeEngineDefaultParameters' {} a -> s {maxRecords = a} :: DescribeEngineDefaultParameters)
+
+-- | The name of the DB parameter group family.
+describeEngineDefaultParameters_dbParameterGroupFamily :: Lens.Lens' DescribeEngineDefaultParameters Prelude.Text
+describeEngineDefaultParameters_dbParameterGroupFamily = Lens.lens (\DescribeEngineDefaultParameters' {dbParameterGroupFamily} -> dbParameterGroupFamily) (\s@DescribeEngineDefaultParameters' {} a -> s {dbParameterGroupFamily = a} :: DescribeEngineDefaultParameters)
+
+instance
+  Core.AWSPager
+    DescribeEngineDefaultParameters
+  where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? describeEngineDefaultParametersResponse_engineDefaults
+            Prelude.. Lens._Just
+            Prelude.. engineDefaults_marker
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? describeEngineDefaultParametersResponse_engineDefaults
+            Prelude.. Lens._Just
+            Prelude.. engineDefaults_parameters
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& describeEngineDefaultParameters_marker
+          Lens..~ rs
+          Lens.^? describeEngineDefaultParametersResponse_engineDefaults
+          Prelude.. Lens._Just
+          Prelude.. engineDefaults_marker
+          Prelude.. Lens._Just
+
+instance
+  Core.AWSRequest
+    DescribeEngineDefaultParameters
+  where
+  type
+    AWSResponse DescribeEngineDefaultParameters =
+      DescribeEngineDefaultParametersResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveXMLWrapper
+      "DescribeEngineDefaultParametersResult"
+      ( \s h x ->
+          DescribeEngineDefaultParametersResponse'
+            Prelude.<$> (x Data..@? "EngineDefaults")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    DescribeEngineDefaultParameters
+  where
+  hashWithSalt
+    _salt
+    DescribeEngineDefaultParameters' {..} =
+      _salt
+        `Prelude.hashWithSalt` filters
+        `Prelude.hashWithSalt` marker
+        `Prelude.hashWithSalt` maxRecords
+        `Prelude.hashWithSalt` dbParameterGroupFamily
+
+instance
+  Prelude.NFData
+    DescribeEngineDefaultParameters
+  where
+  rnf DescribeEngineDefaultParameters' {..} =
+    Prelude.rnf filters
+      `Prelude.seq` Prelude.rnf marker
+      `Prelude.seq` Prelude.rnf maxRecords
+      `Prelude.seq` Prelude.rnf dbParameterGroupFamily
+
+instance
+  Data.ToHeaders
+    DescribeEngineDefaultParameters
+  where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath DescribeEngineDefaultParameters where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DescribeEngineDefaultParameters where
+  toQuery DescribeEngineDefaultParameters' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ( "DescribeEngineDefaultParameters" ::
+                      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:/ 'newDescribeEngineDefaultParametersResponse' smart constructor.
+data DescribeEngineDefaultParametersResponse = DescribeEngineDefaultParametersResponse'
+  { 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 'DescribeEngineDefaultParametersResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeEngineDefaultParametersResponse_engineDefaults' - Undocumented member.
+--
+-- 'httpStatus', 'describeEngineDefaultParametersResponse_httpStatus' - The response's http status code.
+newDescribeEngineDefaultParametersResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DescribeEngineDefaultParametersResponse
+newDescribeEngineDefaultParametersResponse
+  pHttpStatus_ =
+    DescribeEngineDefaultParametersResponse'
+      { engineDefaults =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | Undocumented member.
+describeEngineDefaultParametersResponse_engineDefaults :: Lens.Lens' DescribeEngineDefaultParametersResponse (Prelude.Maybe EngineDefaults)
+describeEngineDefaultParametersResponse_engineDefaults = Lens.lens (\DescribeEngineDefaultParametersResponse' {engineDefaults} -> engineDefaults) (\s@DescribeEngineDefaultParametersResponse' {} a -> s {engineDefaults = a} :: DescribeEngineDefaultParametersResponse)
+
+-- | The response's http status code.
+describeEngineDefaultParametersResponse_httpStatus :: Lens.Lens' DescribeEngineDefaultParametersResponse Prelude.Int
+describeEngineDefaultParametersResponse_httpStatus = Lens.lens (\DescribeEngineDefaultParametersResponse' {httpStatus} -> httpStatus) (\s@DescribeEngineDefaultParametersResponse' {} a -> s {httpStatus = a} :: DescribeEngineDefaultParametersResponse)
+
+instance
+  Prelude.NFData
+    DescribeEngineDefaultParametersResponse
+  where
+  rnf DescribeEngineDefaultParametersResponse' {..} =
+    Prelude.rnf engineDefaults
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/Neptune/DescribeEventCategories.hs b/gen/Amazonka/Neptune/DescribeEventCategories.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeEventCategories.hs
@@ -0,0 +1,191 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /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 |
+    -- db-snapshot
+    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 |
+-- db-snapshot
+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 |
+-- db-snapshot
+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
+      ]
+
+-- | /See:/ 'newDescribeEventCategoriesResponse' smart constructor.
+data DescribeEventCategoriesResponse = DescribeEventCategoriesResponse'
+  { -- | A list of EventCategoriesMap data types.
+    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 EventCategoriesMap data types.
+--
+-- '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 EventCategoriesMap data types.
+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
diff --git a/gen/Amazonka/Neptune/DescribeEventSubscriptions.hs b/gen/Amazonka/Neptune/DescribeEventSubscriptions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeEventSubscriptions.hs
@@ -0,0 +1,288 @@
+{-# 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.Neptune.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.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /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
+    -- DescribeOrderableDBInstanceOptions 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,
+    -- | The name of the event notification subscription 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
+-- DescribeOrderableDBInstanceOptions 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
+-- called a 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 event notification subscription 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
+-- DescribeOrderableDBInstanceOptions 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
+-- called a 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 event notification subscription 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
+      ]
+
+-- | /See:/ 'newDescribeEventSubscriptionsResponse' smart constructor.
+data DescribeEventSubscriptionsResponse = DescribeEventSubscriptionsResponse'
+  { -- | A list of EventSubscriptions data types.
+    eventSubscriptionsList :: Prelude.Maybe [EventSubscription],
+    -- | An optional pagination token provided by a previous
+    -- DescribeOrderableDBInstanceOptions 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 EventSubscriptions data types.
+--
+-- 'marker', 'describeEventSubscriptionsResponse_marker' - An optional pagination token provided by a previous
+-- DescribeOrderableDBInstanceOptions 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 EventSubscriptions data types.
+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
+-- DescribeOrderableDBInstanceOptions 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
diff --git a/gen/Amazonka/Neptune/DescribeEvents.hs b/gen/Amazonka/Neptune/DescribeEvents.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeEvents.hs
@@ -0,0 +1,438 @@
+{-# 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.Neptune.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 DB instances, DB security groups, DB
+-- snapshots, and DB parameter groups for the past 14 days. Events specific
+-- to a particular DB instance, DB security group, database snapshot, or DB
+-- parameter group can be obtained by providing the name as a parameter. By
+-- default, the past hour of events are returned.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeEvents' smart constructor.
+data DescribeEvents = DescribeEvents'
+  { -- | The number of minutes 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. For more information about ISO 8601, go to the
+    -- <http://en.wikipedia.org/wiki/ISO_8601 ISO8601 Wikipedia page.>
+    --
+    -- Example: 2009-07-08T18:00Z
+    endTime :: Prelude.Maybe Data.ISO8601,
+    -- | A list of event categories that trigger notifications for a 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 DescribeEvents
+    -- 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,
+    -- | 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 supplied, SourceType must also be provided.
+    --
+    -- -   If the source type is @DBInstance@, then a @DBInstanceIdentifier@
+    --     must be supplied.
+    --
+    -- -   If the source type is @DBSecurityGroup@, a @DBSecurityGroupName@
+    --     must be supplied.
+    --
+    -- -   If the source type is @DBParameterGroup@, a @DBParameterGroupName@
+    --     must be supplied.
+    --
+    -- -   If the source type is @DBSnapshot@, a @DBSnapshotIdentifier@ must be
+    --     supplied.
+    --
+    -- -   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. For more information about ISO 8601, go to the
+    -- <http://en.wikipedia.org/wiki/ISO_8601 ISO8601 Wikipedia page.>
+    --
+    -- 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. For more information about ISO 8601, go to the
+-- <http://en.wikipedia.org/wiki/ISO_8601 ISO8601 Wikipedia page.>
+--
+-- Example: 2009-07-08T18:00Z
+--
+-- 'eventCategories', 'describeEvents_eventCategories' - A list of event categories that trigger notifications for a event
+-- notification subscription.
+--
+-- 'filters', 'describeEvents_filters' - This parameter is not currently supported.
+--
+-- 'marker', 'describeEvents_marker' - An optional pagination token provided by a previous DescribeEvents
+-- 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
+-- called a 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 supplied, SourceType must also be provided.
+--
+-- -   If the source type is @DBInstance@, then a @DBInstanceIdentifier@
+--     must be supplied.
+--
+-- -   If the source type is @DBSecurityGroup@, a @DBSecurityGroupName@
+--     must be supplied.
+--
+-- -   If the source type is @DBParameterGroup@, a @DBParameterGroupName@
+--     must be supplied.
+--
+-- -   If the source type is @DBSnapshot@, a @DBSnapshotIdentifier@ must be
+--     supplied.
+--
+-- -   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. For more information about ISO 8601, go to the
+-- <http://en.wikipedia.org/wiki/ISO_8601 ISO8601 Wikipedia page.>
+--
+-- 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. For more information about ISO 8601, go to the
+-- <http://en.wikipedia.org/wiki/ISO_8601 ISO8601 Wikipedia page.>
+--
+-- 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 a 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 DescribeEvents
+-- 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
+-- called a 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 supplied, SourceType must also be provided.
+--
+-- -   If the source type is @DBInstance@, then a @DBInstanceIdentifier@
+--     must be supplied.
+--
+-- -   If the source type is @DBSecurityGroup@, a @DBSecurityGroupName@
+--     must be supplied.
+--
+-- -   If the source type is @DBParameterGroup@, a @DBParameterGroupName@
+--     must be supplied.
+--
+-- -   If the source type is @DBSnapshot@, a @DBSnapshotIdentifier@ must be
+--     supplied.
+--
+-- -   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. For more information about ISO 8601, go to the
+-- <http://en.wikipedia.org/wiki/ISO_8601 ISO8601 Wikipedia page.>
+--
+-- 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
+      ]
+
+-- | /See:/ 'newDescribeEventsResponse' smart constructor.
+data DescribeEventsResponse = DescribeEventsResponse'
+  { -- | A list of Event instances.
+    events :: Prelude.Maybe [Event],
+    -- | An optional pagination token provided by a previous Events 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' - A list of Event instances.
+--
+-- 'marker', 'describeEventsResponse_marker' - An optional pagination token provided by a previous Events 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_
+    }
+
+-- | A list of Event instances.
+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 Events 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
diff --git a/gen/Amazonka/Neptune/DescribeGlobalClusters.hs b/gen/Amazonka/Neptune/DescribeGlobalClusters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeGlobalClusters.hs
@@ -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.Neptune.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 Neptune global database clusters. This API
+-- supports pagination.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.DescribeGlobalClusters
+  ( -- * Creating a Request
+    DescribeGlobalClusters (..),
+    newDescribeGlobalClusters,
+
+    -- * Request Lenses
+    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.Neptune.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'
+  { -- | The user-supplied DB cluster identifier. If this parameter is specified,
+    -- only information about the specified DB cluster is returned. This
+    -- parameter is not case-sensitive.
+    --
+    -- Constraints: If supplied, must match an existing DB cluster identifier.
+    globalClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | (/Optional/) A pagination token returned by a previous call to
+    -- @DescribeGlobalClusters@. If this parameter is specified, the response
+    -- will only include records beyond the marker, up to the number 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 marker
+    -- token is included in the response that you can use to retrieve the
+    -- remaining results.
+    --
+    -- 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 '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:
+--
+-- 'globalClusterIdentifier', 'describeGlobalClusters_globalClusterIdentifier' - The user-supplied DB cluster identifier. If this parameter is specified,
+-- only information about the specified DB cluster is returned. This
+-- parameter is not case-sensitive.
+--
+-- Constraints: If supplied, must match an existing DB cluster identifier.
+--
+-- 'marker', 'describeGlobalClusters_marker' - (/Optional/) A pagination token returned by a previous call to
+-- @DescribeGlobalClusters@. If this parameter is specified, the response
+-- will only include records beyond the marker, up to the number 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 marker
+-- token is included in the response that you can use to retrieve the
+-- remaining results.
+--
+-- Default: @100@
+--
+-- Constraints: Minimum 20, maximum 100.
+newDescribeGlobalClusters ::
+  DescribeGlobalClusters
+newDescribeGlobalClusters =
+  DescribeGlobalClusters'
+    { globalClusterIdentifier =
+        Prelude.Nothing,
+      marker = Prelude.Nothing,
+      maxRecords = Prelude.Nothing
+    }
+
+-- | The user-supplied DB cluster identifier. If this parameter is specified,
+-- only information about the specified DB cluster is returned. This
+-- parameter is not case-sensitive.
+--
+-- Constraints: If supplied, must match an existing DB cluster identifier.
+describeGlobalClusters_globalClusterIdentifier :: Lens.Lens' DescribeGlobalClusters (Prelude.Maybe Prelude.Text)
+describeGlobalClusters_globalClusterIdentifier = Lens.lens (\DescribeGlobalClusters' {globalClusterIdentifier} -> globalClusterIdentifier) (\s@DescribeGlobalClusters' {} a -> s {globalClusterIdentifier = a} :: DescribeGlobalClusters)
+
+-- | (/Optional/) A pagination token returned by a previous call to
+-- @DescribeGlobalClusters@. If this parameter is specified, the response
+-- will only include records beyond the marker, up to the number 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 marker
+-- token is included in the response that you can use to retrieve the
+-- remaining results.
+--
+-- Default: @100@
+--
+-- Constraints: Minimum 20, maximum 100.
+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` globalClusterIdentifier
+      `Prelude.hashWithSalt` marker
+      `Prelude.hashWithSalt` maxRecords
+
+instance Prelude.NFData DescribeGlobalClusters where
+  rnf DescribeGlobalClusters' {..} =
+    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),
+        "GlobalClusterIdentifier"
+          Data.=: globalClusterIdentifier,
+        "Marker" Data.=: marker,
+        "MaxRecords" Data.=: maxRecords
+      ]
+
+-- | /See:/ 'newDescribeGlobalClustersResponse' smart constructor.
+data DescribeGlobalClustersResponse = DescribeGlobalClustersResponse'
+  { -- | The list of global clusters and instances returned by this request.
+    globalClusters :: Prelude.Maybe [GlobalCluster],
+    -- | A pagination token. If this parameter is returned in the response, more
+    -- records are available, which can be retrieved by one or more additional
+    -- calls to @DescribeGlobalClusters@.
+    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' - The list of global clusters and instances returned by this request.
+--
+-- 'marker', 'describeGlobalClustersResponse_marker' - A pagination token. If this parameter is returned in the response, more
+-- records are available, which can be retrieved by one or more additional
+-- calls to @DescribeGlobalClusters@.
+--
+-- '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_
+    }
+
+-- | The list of global clusters and instances returned by this request.
+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
+
+-- | A pagination token. If this parameter is returned in the response, more
+-- records are available, which can be retrieved by one or more additional
+-- calls to @DescribeGlobalClusters@.
+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
diff --git a/gen/Amazonka/Neptune/DescribeOrderableDBInstanceOptions.hs b/gen/Amazonka/Neptune/DescribeOrderableDBInstanceOptions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeOrderableDBInstanceOptions.hs
@@ -0,0 +1,381 @@
+{-# 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.Neptune.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 DB instance options for the specified
+-- engine.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeOrderableDBInstanceOptions' smart constructor.
+data DescribeOrderableDBInstanceOptions = DescribeOrderableDBInstanceOptions'
+  { -- | The DB instance class filter value. Specify this parameter to show only
+    -- the available offerings matching the specified DB instance class.
+    dbInstanceClass :: Prelude.Maybe Prelude.Text,
+    -- | The engine version filter value. Specify this parameter to show only the
+    -- available offerings matching 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 matching the specified license model.
+    licenseModel :: Prelude.Maybe Prelude.Text,
+    -- | An optional pagination token provided by a previous
+    -- DescribeOrderableDBInstanceOptions 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,
+    -- | The 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 DB 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 DB instance class filter value. Specify this parameter to show only
+-- the available offerings matching the specified DB instance class.
+--
+-- 'engineVersion', 'describeOrderableDBInstanceOptions_engineVersion' - The engine version filter value. Specify this parameter to show only the
+-- available offerings matching 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 matching the specified license model.
+--
+-- 'marker', 'describeOrderableDBInstanceOptions_marker' - An optional pagination token provided by a previous
+-- DescribeOrderableDBInstanceOptions 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
+-- called a 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 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 DB 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 DB instance class filter value. Specify this parameter to show only
+-- the available offerings matching the specified DB 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 matching 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 matching 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
+-- DescribeOrderableDBInstanceOptions 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
+-- called a 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 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 DB 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
+      ]
+
+-- | /See:/ 'newDescribeOrderableDBInstanceOptionsResponse' smart constructor.
+data DescribeOrderableDBInstanceOptionsResponse = DescribeOrderableDBInstanceOptionsResponse'
+  { -- | An optional pagination token provided by a previous
+    -- OrderableDBInstanceOptions 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,
+    -- | An OrderableDBInstanceOption structure containing information about
+    -- orderable options for the DB 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
+-- OrderableDBInstanceOptions request. If this parameter is specified, the
+-- response includes only records beyond the marker, up to the value
+-- specified by @MaxRecords@ .
+--
+-- 'orderableDBInstanceOptions', 'describeOrderableDBInstanceOptionsResponse_orderableDBInstanceOptions' - An OrderableDBInstanceOption structure containing information about
+-- orderable options for the DB 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
+-- OrderableDBInstanceOptions 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)
+
+-- | An OrderableDBInstanceOption structure containing information about
+-- orderable options for the DB 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
diff --git a/gen/Amazonka/Neptune/DescribePendingMaintenanceActions.hs b/gen/Amazonka/Neptune/DescribePendingMaintenanceActions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribePendingMaintenanceActions.hs
@@ -0,0 +1,350 @@
+{-# 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.Neptune.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, DB instances) that have at
+-- least one pending maintenance action.
+--
+-- This operation returns paginated results.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /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 DB cluster identifiers and DB cluster
+    --     Amazon Resource Names (ARNs). The results list will only include
+    --     pending maintenance actions for the DB clusters identified by these
+    --     ARNs.
+    --
+    -- -   @db-instance-id@ - Accepts DB instance identifiers and DB instance
+    --     ARNs. The results list will only include pending maintenance actions
+    --     for the DB instances identified by these ARNs.
+    filters :: Prelude.Maybe [Filter],
+    -- | An optional pagination token provided by a previous
+    -- @DescribePendingMaintenanceActions@ request. If this parameter is
+    -- specified, the response includes only records beyond the marker, up to a
+    -- number of records 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,
+    -- | 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 DB cluster identifiers and DB cluster
+--     Amazon Resource Names (ARNs). The results list will only include
+--     pending maintenance actions for the DB clusters identified by these
+--     ARNs.
+--
+-- -   @db-instance-id@ - Accepts DB instance identifiers and DB instance
+--     ARNs. The results list will only include pending maintenance actions
+--     for the DB instances identified by these ARNs.
+--
+-- 'marker', 'describePendingMaintenanceActions_marker' - An optional pagination token provided by a previous
+-- @DescribePendingMaintenanceActions@ request. If this parameter is
+-- specified, the response includes only records beyond the marker, up to a
+-- number of records 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
+-- called a 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 DB cluster identifiers and DB cluster
+--     Amazon Resource Names (ARNs). The results list will only include
+--     pending maintenance actions for the DB clusters identified by these
+--     ARNs.
+--
+-- -   @db-instance-id@ - Accepts DB instance identifiers and DB instance
+--     ARNs. The results list will only include 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
+-- @DescribePendingMaintenanceActions@ request. If this parameter is
+-- specified, the response includes only records beyond the marker, up to a
+-- number of records 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
+-- called a 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
+      ]
+
+-- | /See:/ 'newDescribePendingMaintenanceActionsResponse' smart constructor.
+data DescribePendingMaintenanceActionsResponse = DescribePendingMaintenanceActionsResponse'
+  { -- | An optional pagination token provided by a previous
+    -- @DescribePendingMaintenanceActions@ request. If this parameter is
+    -- specified, the response includes only records beyond the marker, up to a
+    -- number of records specified by @MaxRecords@.
+    marker :: Prelude.Maybe Prelude.Text,
+    -- | A list of the pending maintenance actions for the resource.
+    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
+-- @DescribePendingMaintenanceActions@ request. If this parameter is
+-- specified, the response includes only records beyond the marker, up to a
+-- number of records specified by @MaxRecords@.
+--
+-- 'pendingMaintenanceActions', 'describePendingMaintenanceActionsResponse_pendingMaintenanceActions' - A list of the pending maintenance actions for the resource.
+--
+-- '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
+-- @DescribePendingMaintenanceActions@ request. If this parameter is
+-- specified, the response includes only records beyond the marker, up to a
+-- number of records 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)
+
+-- | A list of the pending maintenance actions for the resource.
+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
diff --git a/gen/Amazonka/Neptune/DescribeValidDBInstanceModifications.hs b/gen/Amazonka/Neptune/DescribeValidDBInstanceModifications.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/DescribeValidDBInstanceModifications.hs
@@ -0,0 +1,189 @@
+{-# 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.Neptune.DescribeValidDBInstanceModifications
+-- 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 can call DescribeValidDBInstanceModifications to learn what
+-- modifications you can make to your DB instance. You can use this
+-- information when you call ModifyDBInstance.
+module Amazonka.Neptune.DescribeValidDBInstanceModifications
+  ( -- * Creating a Request
+    DescribeValidDBInstanceModifications (..),
+    newDescribeValidDBInstanceModifications,
+
+    -- * Request Lenses
+    describeValidDBInstanceModifications_dbInstanceIdentifier,
+
+    -- * Destructuring the Response
+    DescribeValidDBInstanceModificationsResponse (..),
+    newDescribeValidDBInstanceModificationsResponse,
+
+    -- * Response Lenses
+    describeValidDBInstanceModificationsResponse_validDBInstanceModificationsMessage,
+    describeValidDBInstanceModificationsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeValidDBInstanceModifications' smart constructor.
+data DescribeValidDBInstanceModifications = DescribeValidDBInstanceModifications'
+  { -- | The customer identifier or the ARN of your DB instance.
+    dbInstanceIdentifier :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeValidDBInstanceModifications' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeValidDBInstanceModifications_dbInstanceIdentifier' - The customer identifier or the ARN of your DB instance.
+newDescribeValidDBInstanceModifications ::
+  -- | 'dbInstanceIdentifier'
+  Prelude.Text ->
+  DescribeValidDBInstanceModifications
+newDescribeValidDBInstanceModifications
+  pDBInstanceIdentifier_ =
+    DescribeValidDBInstanceModifications'
+      { dbInstanceIdentifier =
+          pDBInstanceIdentifier_
+      }
+
+-- | The customer identifier or the ARN of your DB instance.
+describeValidDBInstanceModifications_dbInstanceIdentifier :: Lens.Lens' DescribeValidDBInstanceModifications Prelude.Text
+describeValidDBInstanceModifications_dbInstanceIdentifier = Lens.lens (\DescribeValidDBInstanceModifications' {dbInstanceIdentifier} -> dbInstanceIdentifier) (\s@DescribeValidDBInstanceModifications' {} a -> s {dbInstanceIdentifier = a} :: DescribeValidDBInstanceModifications)
+
+instance
+  Core.AWSRequest
+    DescribeValidDBInstanceModifications
+  where
+  type
+    AWSResponse DescribeValidDBInstanceModifications =
+      DescribeValidDBInstanceModificationsResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveXMLWrapper
+      "DescribeValidDBInstanceModificationsResult"
+      ( \s h x ->
+          DescribeValidDBInstanceModificationsResponse'
+            Prelude.<$> (x Data..@? "ValidDBInstanceModificationsMessage")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    DescribeValidDBInstanceModifications
+  where
+  hashWithSalt
+    _salt
+    DescribeValidDBInstanceModifications' {..} =
+      _salt `Prelude.hashWithSalt` dbInstanceIdentifier
+
+instance
+  Prelude.NFData
+    DescribeValidDBInstanceModifications
+  where
+  rnf DescribeValidDBInstanceModifications' {..} =
+    Prelude.rnf dbInstanceIdentifier
+
+instance
+  Data.ToHeaders
+    DescribeValidDBInstanceModifications
+  where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance
+  Data.ToPath
+    DescribeValidDBInstanceModifications
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    DescribeValidDBInstanceModifications
+  where
+  toQuery DescribeValidDBInstanceModifications' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ( "DescribeValidDBInstanceModifications" ::
+                      Prelude.ByteString
+                  ),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "DBInstanceIdentifier" Data.=: dbInstanceIdentifier
+      ]
+
+-- | /See:/ 'newDescribeValidDBInstanceModificationsResponse' smart constructor.
+data DescribeValidDBInstanceModificationsResponse = DescribeValidDBInstanceModificationsResponse'
+  { validDBInstanceModificationsMessage :: Prelude.Maybe ValidDBInstanceModificationsMessage,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeValidDBInstanceModificationsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'validDBInstanceModificationsMessage', 'describeValidDBInstanceModificationsResponse_validDBInstanceModificationsMessage' - Undocumented member.
+--
+-- 'httpStatus', 'describeValidDBInstanceModificationsResponse_httpStatus' - The response's http status code.
+newDescribeValidDBInstanceModificationsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DescribeValidDBInstanceModificationsResponse
+newDescribeValidDBInstanceModificationsResponse
+  pHttpStatus_ =
+    DescribeValidDBInstanceModificationsResponse'
+      { validDBInstanceModificationsMessage =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | Undocumented member.
+describeValidDBInstanceModificationsResponse_validDBInstanceModificationsMessage :: Lens.Lens' DescribeValidDBInstanceModificationsResponse (Prelude.Maybe ValidDBInstanceModificationsMessage)
+describeValidDBInstanceModificationsResponse_validDBInstanceModificationsMessage = Lens.lens (\DescribeValidDBInstanceModificationsResponse' {validDBInstanceModificationsMessage} -> validDBInstanceModificationsMessage) (\s@DescribeValidDBInstanceModificationsResponse' {} a -> s {validDBInstanceModificationsMessage = a} :: DescribeValidDBInstanceModificationsResponse)
+
+-- | The response's http status code.
+describeValidDBInstanceModificationsResponse_httpStatus :: Lens.Lens' DescribeValidDBInstanceModificationsResponse Prelude.Int
+describeValidDBInstanceModificationsResponse_httpStatus = Lens.lens (\DescribeValidDBInstanceModificationsResponse' {httpStatus} -> httpStatus) (\s@DescribeValidDBInstanceModificationsResponse' {} a -> s {httpStatus = a} :: DescribeValidDBInstanceModificationsResponse)
+
+instance
+  Prelude.NFData
+    DescribeValidDBInstanceModificationsResponse
+  where
+  rnf DescribeValidDBInstanceModificationsResponse' {..} =
+    Prelude.rnf validDBInstanceModificationsMessage
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/Neptune/FailoverDBCluster.hs b/gen/Amazonka/Neptune/FailoverDBCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/FailoverDBCluster.hs
@@ -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.Neptune.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 DB cluster.
+--
+-- A failover for a DB cluster promotes one of the Read Replicas (read-only
+-- instances) in the DB cluster to be the primary instance (the cluster
+-- writer).
+--
+-- Amazon Neptune will automatically fail over to a Read Replica, if one
+-- exists, when the primary instance fails. You can force a failover when
+-- you want to simulate a failure of a primary instance for testing.
+-- Because each instance in a DB cluster has its own endpoint address, you
+-- will need to clean up and re-establish any existing connections that use
+-- those endpoint addresses when the failover is complete.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newFailoverDBCluster' smart constructor.
+data FailoverDBCluster = FailoverDBCluster'
+  { -- | A DB 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 Read Replica in the DB
+    -- 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 DB 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 Read Replica in the DB
+-- cluster. For example, @mydbcluster-replica1@.
+newFailoverDBCluster ::
+  FailoverDBCluster
+newFailoverDBCluster =
+  FailoverDBCluster'
+    { dbClusterIdentifier =
+        Prelude.Nothing,
+      targetDBInstanceIdentifier = Prelude.Nothing
+    }
+
+-- | A DB 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 Read Replica in the DB
+-- 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
diff --git a/gen/Amazonka/Neptune/FailoverGlobalCluster.hs b/gen/Amazonka/Neptune/FailoverGlobalCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/FailoverGlobalCluster.hs
@@ -0,0 +1,215 @@
+{-# 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.Neptune.FailoverGlobalCluster
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Initiates the failover process for a Neptune global database.
+--
+-- A failover for a Neptune global database promotes one of secondary
+-- read-only DB clusters to be the primary DB cluster and demotes the
+-- primary DB cluster to being a secondary (read-only) DB cluster. In other
+-- words, the role of the current primary DB cluster and the selected
+-- target secondary DB cluster are switched. The selected secondary DB
+-- cluster assumes full read\/write capabilities for the Neptune global
+-- database.
+--
+-- This action applies __only__ to Neptune global databases. This action is
+-- only intended for use on healthy Neptune global databases with healthy
+-- Neptune DB clusters and no region-wide outages, to test disaster
+-- recovery scenarios or to reconfigure the global database topology.
+module Amazonka.Neptune.FailoverGlobalCluster
+  ( -- * Creating a Request
+    FailoverGlobalCluster (..),
+    newFailoverGlobalCluster,
+
+    -- * Request Lenses
+    failoverGlobalCluster_globalClusterIdentifier,
+    failoverGlobalCluster_targetDbClusterIdentifier,
+
+    -- * Destructuring the Response
+    FailoverGlobalClusterResponse (..),
+    newFailoverGlobalClusterResponse,
+
+    -- * Response Lenses
+    failoverGlobalClusterResponse_globalCluster,
+    failoverGlobalClusterResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newFailoverGlobalCluster' smart constructor.
+data FailoverGlobalCluster = FailoverGlobalCluster'
+  { -- | Identifier of the Neptune global database that should be failed over.
+    -- The identifier is the unique key assigned by the user when the Neptune
+    -- global database was created. In other words, it\'s the name of the
+    -- global database that you want to fail over.
+    --
+    -- Constraints: Must match the identifier of an existing Neptune global
+    -- database.
+    globalClusterIdentifier :: Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the secondary Neptune DB cluster that
+    -- you want to promote to primary for the global database.
+    targetDbClusterIdentifier :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'FailoverGlobalCluster' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'failoverGlobalCluster_globalClusterIdentifier' - Identifier of the Neptune global database that should be failed over.
+-- The identifier is the unique key assigned by the user when the Neptune
+-- global database was created. In other words, it\'s the name of the
+-- global database that you want to fail over.
+--
+-- Constraints: Must match the identifier of an existing Neptune global
+-- database.
+--
+-- 'targetDbClusterIdentifier', 'failoverGlobalCluster_targetDbClusterIdentifier' - The Amazon Resource Name (ARN) of the secondary Neptune DB cluster that
+-- you want to promote to primary for the global database.
+newFailoverGlobalCluster ::
+  -- | 'globalClusterIdentifier'
+  Prelude.Text ->
+  -- | 'targetDbClusterIdentifier'
+  Prelude.Text ->
+  FailoverGlobalCluster
+newFailoverGlobalCluster
+  pGlobalClusterIdentifier_
+  pTargetDbClusterIdentifier_ =
+    FailoverGlobalCluster'
+      { globalClusterIdentifier =
+          pGlobalClusterIdentifier_,
+        targetDbClusterIdentifier =
+          pTargetDbClusterIdentifier_
+      }
+
+-- | Identifier of the Neptune global database that should be failed over.
+-- The identifier is the unique key assigned by the user when the Neptune
+-- global database was created. In other words, it\'s the name of the
+-- global database that you want to fail over.
+--
+-- Constraints: Must match the identifier of an existing Neptune global
+-- database.
+failoverGlobalCluster_globalClusterIdentifier :: Lens.Lens' FailoverGlobalCluster Prelude.Text
+failoverGlobalCluster_globalClusterIdentifier = Lens.lens (\FailoverGlobalCluster' {globalClusterIdentifier} -> globalClusterIdentifier) (\s@FailoverGlobalCluster' {} a -> s {globalClusterIdentifier = a} :: FailoverGlobalCluster)
+
+-- | The Amazon Resource Name (ARN) of the secondary Neptune DB cluster that
+-- you want to promote to primary for the global database.
+failoverGlobalCluster_targetDbClusterIdentifier :: Lens.Lens' FailoverGlobalCluster Prelude.Text
+failoverGlobalCluster_targetDbClusterIdentifier = Lens.lens (\FailoverGlobalCluster' {targetDbClusterIdentifier} -> targetDbClusterIdentifier) (\s@FailoverGlobalCluster' {} a -> s {targetDbClusterIdentifier = a} :: FailoverGlobalCluster)
+
+instance Core.AWSRequest FailoverGlobalCluster where
+  type
+    AWSResponse FailoverGlobalCluster =
+      FailoverGlobalClusterResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveXMLWrapper
+      "FailoverGlobalClusterResult"
+      ( \s h x ->
+          FailoverGlobalClusterResponse'
+            Prelude.<$> (x Data..@? "GlobalCluster")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable FailoverGlobalCluster where
+  hashWithSalt _salt FailoverGlobalCluster' {..} =
+    _salt
+      `Prelude.hashWithSalt` globalClusterIdentifier
+      `Prelude.hashWithSalt` targetDbClusterIdentifier
+
+instance Prelude.NFData FailoverGlobalCluster where
+  rnf FailoverGlobalCluster' {..} =
+    Prelude.rnf globalClusterIdentifier
+      `Prelude.seq` Prelude.rnf targetDbClusterIdentifier
+
+instance Data.ToHeaders FailoverGlobalCluster where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath FailoverGlobalCluster where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery FailoverGlobalCluster where
+  toQuery FailoverGlobalCluster' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ("FailoverGlobalCluster" :: Prelude.ByteString),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "GlobalClusterIdentifier"
+          Data.=: globalClusterIdentifier,
+        "TargetDbClusterIdentifier"
+          Data.=: targetDbClusterIdentifier
+      ]
+
+-- | /See:/ 'newFailoverGlobalClusterResponse' smart constructor.
+data FailoverGlobalClusterResponse = FailoverGlobalClusterResponse'
+  { 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 'FailoverGlobalClusterResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'failoverGlobalClusterResponse_globalCluster' - Undocumented member.
+--
+-- 'httpStatus', 'failoverGlobalClusterResponse_httpStatus' - The response's http status code.
+newFailoverGlobalClusterResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  FailoverGlobalClusterResponse
+newFailoverGlobalClusterResponse pHttpStatus_ =
+  FailoverGlobalClusterResponse'
+    { globalCluster =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Undocumented member.
+failoverGlobalClusterResponse_globalCluster :: Lens.Lens' FailoverGlobalClusterResponse (Prelude.Maybe GlobalCluster)
+failoverGlobalClusterResponse_globalCluster = Lens.lens (\FailoverGlobalClusterResponse' {globalCluster} -> globalCluster) (\s@FailoverGlobalClusterResponse' {} a -> s {globalCluster = a} :: FailoverGlobalClusterResponse)
+
+-- | The response's http status code.
+failoverGlobalClusterResponse_httpStatus :: Lens.Lens' FailoverGlobalClusterResponse Prelude.Int
+failoverGlobalClusterResponse_httpStatus = Lens.lens (\FailoverGlobalClusterResponse' {httpStatus} -> httpStatus) (\s@FailoverGlobalClusterResponse' {} a -> s {httpStatus = a} :: FailoverGlobalClusterResponse)
+
+instance Prelude.NFData FailoverGlobalClusterResponse where
+  rnf FailoverGlobalClusterResponse' {..} =
+    Prelude.rnf globalCluster
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/Neptune/Lens.hs b/gen/Amazonka/Neptune/Lens.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Lens.hs
@@ -0,0 +1,1213 @@
+{-# 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.Neptune.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.Neptune.Lens
+  ( -- * Operations
+
+    -- ** AddRoleToDBCluster
+    addRoleToDBCluster_featureName,
+    addRoleToDBCluster_dbClusterIdentifier,
+    addRoleToDBCluster_roleArn,
+
+    -- ** 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,
+
+    -- ** CopyDBParameterGroup
+    copyDBParameterGroup_tags,
+    copyDBParameterGroup_sourceDBParameterGroupIdentifier,
+    copyDBParameterGroup_targetDBParameterGroupIdentifier,
+    copyDBParameterGroup_targetDBParameterGroupDescription,
+    copyDBParameterGroupResponse_dbParameterGroup,
+    copyDBParameterGroupResponse_httpStatus,
+
+    -- ** CreateDBCluster
+    createDBCluster_availabilityZones,
+    createDBCluster_backupRetentionPeriod,
+    createDBCluster_characterSetName,
+    createDBCluster_copyTagsToSnapshot,
+    createDBCluster_dbClusterParameterGroupName,
+    createDBCluster_dbSubnetGroupName,
+    createDBCluster_databaseName,
+    createDBCluster_deletionProtection,
+    createDBCluster_enableCloudwatchLogsExports,
+    createDBCluster_enableIAMDatabaseAuthentication,
+    createDBCluster_engineVersion,
+    createDBCluster_globalClusterIdentifier,
+    createDBCluster_kmsKeyId,
+    createDBCluster_masterUserPassword,
+    createDBCluster_masterUsername,
+    createDBCluster_optionGroupName,
+    createDBCluster_port,
+    createDBCluster_preSignedUrl,
+    createDBCluster_preferredBackupWindow,
+    createDBCluster_preferredMaintenanceWindow,
+    createDBCluster_replicationSourceIdentifier,
+    createDBCluster_serverlessV2ScalingConfiguration,
+    createDBCluster_storageEncrypted,
+    createDBCluster_tags,
+    createDBCluster_vpcSecurityGroupIds,
+    createDBCluster_dbClusterIdentifier,
+    createDBCluster_engine,
+    createDBClusterResponse_dbCluster,
+    createDBClusterResponse_httpStatus,
+
+    -- ** CreateDBClusterEndpoint
+    createDBClusterEndpoint_excludedMembers,
+    createDBClusterEndpoint_staticMembers,
+    createDBClusterEndpoint_tags,
+    createDBClusterEndpoint_dbClusterIdentifier,
+    createDBClusterEndpoint_dbClusterEndpointIdentifier,
+    createDBClusterEndpoint_endpointType,
+    createDBClusterEndpointResponse_customEndpointType,
+    createDBClusterEndpointResponse_dbClusterEndpointArn,
+    createDBClusterEndpointResponse_dbClusterEndpointIdentifier,
+    createDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier,
+    createDBClusterEndpointResponse_dbClusterIdentifier,
+    createDBClusterEndpointResponse_endpoint,
+    createDBClusterEndpointResponse_endpointType,
+    createDBClusterEndpointResponse_excludedMembers,
+    createDBClusterEndpointResponse_staticMembers,
+    createDBClusterEndpointResponse_status,
+    createDBClusterEndpointResponse_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_allocatedStorage,
+    createDBInstance_autoMinorVersionUpgrade,
+    createDBInstance_availabilityZone,
+    createDBInstance_backupRetentionPeriod,
+    createDBInstance_characterSetName,
+    createDBInstance_copyTagsToSnapshot,
+    createDBInstance_dbClusterIdentifier,
+    createDBInstance_dbName,
+    createDBInstance_dbParameterGroupName,
+    createDBInstance_dbSecurityGroups,
+    createDBInstance_dbSubnetGroupName,
+    createDBInstance_deletionProtection,
+    createDBInstance_domain,
+    createDBInstance_domainIAMRoleName,
+    createDBInstance_enableCloudwatchLogsExports,
+    createDBInstance_enableIAMDatabaseAuthentication,
+    createDBInstance_enablePerformanceInsights,
+    createDBInstance_engineVersion,
+    createDBInstance_iops,
+    createDBInstance_kmsKeyId,
+    createDBInstance_licenseModel,
+    createDBInstance_masterUserPassword,
+    createDBInstance_masterUsername,
+    createDBInstance_monitoringInterval,
+    createDBInstance_monitoringRoleArn,
+    createDBInstance_multiAZ,
+    createDBInstance_optionGroupName,
+    createDBInstance_performanceInsightsKMSKeyId,
+    createDBInstance_port,
+    createDBInstance_preferredBackupWindow,
+    createDBInstance_preferredMaintenanceWindow,
+    createDBInstance_promotionTier,
+    createDBInstance_publiclyAccessible,
+    createDBInstance_storageEncrypted,
+    createDBInstance_storageType,
+    createDBInstance_tags,
+    createDBInstance_tdeCredentialArn,
+    createDBInstance_tdeCredentialPassword,
+    createDBInstance_timezone,
+    createDBInstance_vpcSecurityGroupIds,
+    createDBInstance_dbInstanceIdentifier,
+    createDBInstance_dbInstanceClass,
+    createDBInstance_engine,
+    createDBInstanceResponse_dbInstance,
+    createDBInstanceResponse_httpStatus,
+
+    -- ** CreateDBParameterGroup
+    createDBParameterGroup_tags,
+    createDBParameterGroup_dbParameterGroupName,
+    createDBParameterGroup_dbParameterGroupFamily,
+    createDBParameterGroup_description,
+    createDBParameterGroupResponse_dbParameterGroup,
+    createDBParameterGroupResponse_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_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,
+
+    -- ** DeleteDBClusterEndpoint
+    deleteDBClusterEndpoint_dbClusterEndpointIdentifier,
+    deleteDBClusterEndpointResponse_customEndpointType,
+    deleteDBClusterEndpointResponse_dbClusterEndpointArn,
+    deleteDBClusterEndpointResponse_dbClusterEndpointIdentifier,
+    deleteDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier,
+    deleteDBClusterEndpointResponse_dbClusterIdentifier,
+    deleteDBClusterEndpointResponse_endpoint,
+    deleteDBClusterEndpointResponse_endpointType,
+    deleteDBClusterEndpointResponse_excludedMembers,
+    deleteDBClusterEndpointResponse_staticMembers,
+    deleteDBClusterEndpointResponse_status,
+    deleteDBClusterEndpointResponse_httpStatus,
+
+    -- ** DeleteDBClusterParameterGroup
+    deleteDBClusterParameterGroup_dbClusterParameterGroupName,
+
+    -- ** DeleteDBClusterSnapshot
+    deleteDBClusterSnapshot_dbClusterSnapshotIdentifier,
+    deleteDBClusterSnapshotResponse_dbClusterSnapshot,
+    deleteDBClusterSnapshotResponse_httpStatus,
+
+    -- ** DeleteDBInstance
+    deleteDBInstance_finalDBSnapshotIdentifier,
+    deleteDBInstance_skipFinalSnapshot,
+    deleteDBInstance_dbInstanceIdentifier,
+    deleteDBInstanceResponse_dbInstance,
+    deleteDBInstanceResponse_httpStatus,
+
+    -- ** DeleteDBParameterGroup
+    deleteDBParameterGroup_dbParameterGroupName,
+
+    -- ** DeleteDBSubnetGroup
+    deleteDBSubnetGroup_dbSubnetGroupName,
+
+    -- ** DeleteEventSubscription
+    deleteEventSubscription_subscriptionName,
+    deleteEventSubscriptionResponse_eventSubscription,
+    deleteEventSubscriptionResponse_httpStatus,
+
+    -- ** DeleteGlobalCluster
+    deleteGlobalCluster_globalClusterIdentifier,
+    deleteGlobalClusterResponse_globalCluster,
+    deleteGlobalClusterResponse_httpStatus,
+
+    -- ** DescribeDBClusterEndpoints
+    describeDBClusterEndpoints_dbClusterEndpointIdentifier,
+    describeDBClusterEndpoints_dbClusterIdentifier,
+    describeDBClusterEndpoints_filters,
+    describeDBClusterEndpoints_marker,
+    describeDBClusterEndpoints_maxRecords,
+    describeDBClusterEndpointsResponse_dbClusterEndpoints,
+    describeDBClusterEndpointsResponse_marker,
+    describeDBClusterEndpointsResponse_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,
+
+    -- ** DescribeDBParameterGroups
+    describeDBParameterGroups_dbParameterGroupName,
+    describeDBParameterGroups_filters,
+    describeDBParameterGroups_marker,
+    describeDBParameterGroups_maxRecords,
+    describeDBParameterGroupsResponse_dbParameterGroups,
+    describeDBParameterGroupsResponse_marker,
+    describeDBParameterGroupsResponse_httpStatus,
+
+    -- ** DescribeDBParameters
+    describeDBParameters_filters,
+    describeDBParameters_marker,
+    describeDBParameters_maxRecords,
+    describeDBParameters_source,
+    describeDBParameters_dbParameterGroupName,
+    describeDBParametersResponse_marker,
+    describeDBParametersResponse_parameters,
+    describeDBParametersResponse_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,
+
+    -- ** DescribeEngineDefaultParameters
+    describeEngineDefaultParameters_filters,
+    describeEngineDefaultParameters_marker,
+    describeEngineDefaultParameters_maxRecords,
+    describeEngineDefaultParameters_dbParameterGroupFamily,
+    describeEngineDefaultParametersResponse_engineDefaults,
+    describeEngineDefaultParametersResponse_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_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,
+
+    -- ** DescribeValidDBInstanceModifications
+    describeValidDBInstanceModifications_dbInstanceIdentifier,
+    describeValidDBInstanceModificationsResponse_validDBInstanceModificationsMessage,
+    describeValidDBInstanceModificationsResponse_httpStatus,
+
+    -- ** FailoverDBCluster
+    failoverDBCluster_dbClusterIdentifier,
+    failoverDBCluster_targetDBInstanceIdentifier,
+    failoverDBClusterResponse_dbCluster,
+    failoverDBClusterResponse_httpStatus,
+
+    -- ** FailoverGlobalCluster
+    failoverGlobalCluster_globalClusterIdentifier,
+    failoverGlobalCluster_targetDbClusterIdentifier,
+    failoverGlobalClusterResponse_globalCluster,
+    failoverGlobalClusterResponse_httpStatus,
+
+    -- ** ListTagsForResource
+    listTagsForResource_filters,
+    listTagsForResource_resourceName,
+    listTagsForResourceResponse_tagList,
+    listTagsForResourceResponse_httpStatus,
+
+    -- ** ModifyDBCluster
+    modifyDBCluster_allowMajorVersionUpgrade,
+    modifyDBCluster_applyImmediately,
+    modifyDBCluster_backupRetentionPeriod,
+    modifyDBCluster_cloudwatchLogsExportConfiguration,
+    modifyDBCluster_copyTagsToSnapshot,
+    modifyDBCluster_dbClusterParameterGroupName,
+    modifyDBCluster_dbInstanceParameterGroupName,
+    modifyDBCluster_deletionProtection,
+    modifyDBCluster_enableIAMDatabaseAuthentication,
+    modifyDBCluster_engineVersion,
+    modifyDBCluster_masterUserPassword,
+    modifyDBCluster_newDBClusterIdentifier,
+    modifyDBCluster_optionGroupName,
+    modifyDBCluster_port,
+    modifyDBCluster_preferredBackupWindow,
+    modifyDBCluster_preferredMaintenanceWindow,
+    modifyDBCluster_serverlessV2ScalingConfiguration,
+    modifyDBCluster_vpcSecurityGroupIds,
+    modifyDBCluster_dbClusterIdentifier,
+    modifyDBClusterResponse_dbCluster,
+    modifyDBClusterResponse_httpStatus,
+
+    -- ** ModifyDBClusterEndpoint
+    modifyDBClusterEndpoint_endpointType,
+    modifyDBClusterEndpoint_excludedMembers,
+    modifyDBClusterEndpoint_staticMembers,
+    modifyDBClusterEndpoint_dbClusterEndpointIdentifier,
+    modifyDBClusterEndpointResponse_customEndpointType,
+    modifyDBClusterEndpointResponse_dbClusterEndpointArn,
+    modifyDBClusterEndpointResponse_dbClusterEndpointIdentifier,
+    modifyDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier,
+    modifyDBClusterEndpointResponse_dbClusterIdentifier,
+    modifyDBClusterEndpointResponse_endpoint,
+    modifyDBClusterEndpointResponse_endpointType,
+    modifyDBClusterEndpointResponse_excludedMembers,
+    modifyDBClusterEndpointResponse_staticMembers,
+    modifyDBClusterEndpointResponse_status,
+    modifyDBClusterEndpointResponse_httpStatus,
+
+    -- ** ModifyDBClusterParameterGroup
+    modifyDBClusterParameterGroup_dbClusterParameterGroupName,
+    modifyDBClusterParameterGroup_parameters,
+    dbClusterParameterGroupNameMessage_dbClusterParameterGroupName,
+
+    -- ** ModifyDBClusterSnapshotAttribute
+    modifyDBClusterSnapshotAttribute_valuesToAdd,
+    modifyDBClusterSnapshotAttribute_valuesToRemove,
+    modifyDBClusterSnapshotAttribute_dbClusterSnapshotIdentifier,
+    modifyDBClusterSnapshotAttribute_attributeName,
+    modifyDBClusterSnapshotAttributeResponse_dbClusterSnapshotAttributesResult,
+    modifyDBClusterSnapshotAttributeResponse_httpStatus,
+
+    -- ** ModifyDBInstance
+    modifyDBInstance_allocatedStorage,
+    modifyDBInstance_allowMajorVersionUpgrade,
+    modifyDBInstance_applyImmediately,
+    modifyDBInstance_autoMinorVersionUpgrade,
+    modifyDBInstance_backupRetentionPeriod,
+    modifyDBInstance_cACertificateIdentifier,
+    modifyDBInstance_cloudwatchLogsExportConfiguration,
+    modifyDBInstance_copyTagsToSnapshot,
+    modifyDBInstance_dbInstanceClass,
+    modifyDBInstance_dbParameterGroupName,
+    modifyDBInstance_dbPortNumber,
+    modifyDBInstance_dbSecurityGroups,
+    modifyDBInstance_dbSubnetGroupName,
+    modifyDBInstance_deletionProtection,
+    modifyDBInstance_domain,
+    modifyDBInstance_domainIAMRoleName,
+    modifyDBInstance_enableIAMDatabaseAuthentication,
+    modifyDBInstance_enablePerformanceInsights,
+    modifyDBInstance_engineVersion,
+    modifyDBInstance_iops,
+    modifyDBInstance_licenseModel,
+    modifyDBInstance_masterUserPassword,
+    modifyDBInstance_monitoringInterval,
+    modifyDBInstance_monitoringRoleArn,
+    modifyDBInstance_multiAZ,
+    modifyDBInstance_newDBInstanceIdentifier,
+    modifyDBInstance_optionGroupName,
+    modifyDBInstance_performanceInsightsKMSKeyId,
+    modifyDBInstance_preferredBackupWindow,
+    modifyDBInstance_preferredMaintenanceWindow,
+    modifyDBInstance_promotionTier,
+    modifyDBInstance_publiclyAccessible,
+    modifyDBInstance_storageType,
+    modifyDBInstance_tdeCredentialArn,
+    modifyDBInstance_tdeCredentialPassword,
+    modifyDBInstance_vpcSecurityGroupIds,
+    modifyDBInstance_dbInstanceIdentifier,
+    modifyDBInstanceResponse_dbInstance,
+    modifyDBInstanceResponse_httpStatus,
+
+    -- ** ModifyDBParameterGroup
+    modifyDBParameterGroup_dbParameterGroupName,
+    modifyDBParameterGroup_parameters,
+    dbParameterGroupNameMessage_dbParameterGroupName,
+
+    -- ** 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_allowMajorVersionUpgrade,
+    modifyGlobalCluster_deletionProtection,
+    modifyGlobalCluster_engineVersion,
+    modifyGlobalCluster_newGlobalClusterIdentifier,
+    modifyGlobalCluster_globalClusterIdentifier,
+    modifyGlobalClusterResponse_globalCluster,
+    modifyGlobalClusterResponse_httpStatus,
+
+    -- ** PromoteReadReplicaDBCluster
+    promoteReadReplicaDBCluster_dbClusterIdentifier,
+    promoteReadReplicaDBClusterResponse_dbCluster,
+    promoteReadReplicaDBClusterResponse_httpStatus,
+
+    -- ** RebootDBInstance
+    rebootDBInstance_forceFailover,
+    rebootDBInstance_dbInstanceIdentifier,
+    rebootDBInstanceResponse_dbInstance,
+    rebootDBInstanceResponse_httpStatus,
+
+    -- ** RemoveFromGlobalCluster
+    removeFromGlobalCluster_globalClusterIdentifier,
+    removeFromGlobalCluster_dbClusterIdentifier,
+    removeFromGlobalClusterResponse_globalCluster,
+    removeFromGlobalClusterResponse_httpStatus,
+
+    -- ** RemoveRoleFromDBCluster
+    removeRoleFromDBCluster_featureName,
+    removeRoleFromDBCluster_dbClusterIdentifier,
+    removeRoleFromDBCluster_roleArn,
+
+    -- ** RemoveSourceIdentifierFromSubscription
+    removeSourceIdentifierFromSubscription_subscriptionName,
+    removeSourceIdentifierFromSubscription_sourceIdentifier,
+    removeSourceIdentifierFromSubscriptionResponse_eventSubscription,
+    removeSourceIdentifierFromSubscriptionResponse_httpStatus,
+
+    -- ** RemoveTagsFromResource
+    removeTagsFromResource_resourceName,
+    removeTagsFromResource_tagKeys,
+
+    -- ** ResetDBClusterParameterGroup
+    resetDBClusterParameterGroup_parameters,
+    resetDBClusterParameterGroup_resetAllParameters,
+    resetDBClusterParameterGroup_dbClusterParameterGroupName,
+    dbClusterParameterGroupNameMessage_dbClusterParameterGroupName,
+
+    -- ** ResetDBParameterGroup
+    resetDBParameterGroup_parameters,
+    resetDBParameterGroup_resetAllParameters,
+    resetDBParameterGroup_dbParameterGroupName,
+    dbParameterGroupNameMessage_dbParameterGroupName,
+
+    -- ** RestoreDBClusterFromSnapshot
+    restoreDBClusterFromSnapshot_availabilityZones,
+    restoreDBClusterFromSnapshot_copyTagsToSnapshot,
+    restoreDBClusterFromSnapshot_dbClusterParameterGroupName,
+    restoreDBClusterFromSnapshot_dbSubnetGroupName,
+    restoreDBClusterFromSnapshot_databaseName,
+    restoreDBClusterFromSnapshot_deletionProtection,
+    restoreDBClusterFromSnapshot_enableCloudwatchLogsExports,
+    restoreDBClusterFromSnapshot_enableIAMDatabaseAuthentication,
+    restoreDBClusterFromSnapshot_engineVersion,
+    restoreDBClusterFromSnapshot_kmsKeyId,
+    restoreDBClusterFromSnapshot_optionGroupName,
+    restoreDBClusterFromSnapshot_port,
+    restoreDBClusterFromSnapshot_serverlessV2ScalingConfiguration,
+    restoreDBClusterFromSnapshot_tags,
+    restoreDBClusterFromSnapshot_vpcSecurityGroupIds,
+    restoreDBClusterFromSnapshot_dbClusterIdentifier,
+    restoreDBClusterFromSnapshot_snapshotIdentifier,
+    restoreDBClusterFromSnapshot_engine,
+    restoreDBClusterFromSnapshotResponse_dbCluster,
+    restoreDBClusterFromSnapshotResponse_httpStatus,
+
+    -- ** RestoreDBClusterToPointInTime
+    restoreDBClusterToPointInTime_dbClusterParameterGroupName,
+    restoreDBClusterToPointInTime_dbSubnetGroupName,
+    restoreDBClusterToPointInTime_deletionProtection,
+    restoreDBClusterToPointInTime_enableCloudwatchLogsExports,
+    restoreDBClusterToPointInTime_enableIAMDatabaseAuthentication,
+    restoreDBClusterToPointInTime_kmsKeyId,
+    restoreDBClusterToPointInTime_optionGroupName,
+    restoreDBClusterToPointInTime_port,
+    restoreDBClusterToPointInTime_restoreToTime,
+    restoreDBClusterToPointInTime_restoreType,
+    restoreDBClusterToPointInTime_serverlessV2ScalingConfiguration,
+    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,
+
+    -- ** CharacterSet
+    characterSet_characterSetDescription,
+    characterSet_characterSetName,
+
+    -- ** CloudwatchLogsExportConfiguration
+    cloudwatchLogsExportConfiguration_disableLogTypes,
+    cloudwatchLogsExportConfiguration_enableLogTypes,
+
+    -- ** DBCluster
+    dbCluster_allocatedStorage,
+    dbCluster_associatedRoles,
+    dbCluster_automaticRestartTime,
+    dbCluster_availabilityZones,
+    dbCluster_backupRetentionPeriod,
+    dbCluster_characterSetName,
+    dbCluster_cloneGroupId,
+    dbCluster_clusterCreateTime,
+    dbCluster_copyTagsToSnapshot,
+    dbCluster_crossAccountClone,
+    dbCluster_dbClusterArn,
+    dbCluster_dbClusterIdentifier,
+    dbCluster_dbClusterMembers,
+    dbCluster_dbClusterOptionGroupMemberships,
+    dbCluster_dbClusterParameterGroup,
+    dbCluster_dbSubnetGroup,
+    dbCluster_databaseName,
+    dbCluster_dbClusterResourceId,
+    dbCluster_deletionProtection,
+    dbCluster_earliestRestorableTime,
+    dbCluster_enabledCloudwatchLogsExports,
+    dbCluster_endpoint,
+    dbCluster_engine,
+    dbCluster_engineVersion,
+    dbCluster_hostedZoneId,
+    dbCluster_iAMDatabaseAuthenticationEnabled,
+    dbCluster_kmsKeyId,
+    dbCluster_latestRestorableTime,
+    dbCluster_masterUsername,
+    dbCluster_multiAZ,
+    dbCluster_percentProgress,
+    dbCluster_port,
+    dbCluster_preferredBackupWindow,
+    dbCluster_preferredMaintenanceWindow,
+    dbCluster_readReplicaIdentifiers,
+    dbCluster_readerEndpoint,
+    dbCluster_replicationSourceIdentifier,
+    dbCluster_serverlessV2ScalingConfiguration,
+    dbCluster_status,
+    dbCluster_storageEncrypted,
+    dbCluster_vpcSecurityGroups,
+
+    -- ** DBClusterEndpoint
+    dbClusterEndpoint_customEndpointType,
+    dbClusterEndpoint_dbClusterEndpointArn,
+    dbClusterEndpoint_dbClusterEndpointIdentifier,
+    dbClusterEndpoint_dbClusterEndpointResourceIdentifier,
+    dbClusterEndpoint_dbClusterIdentifier,
+    dbClusterEndpoint_endpoint,
+    dbClusterEndpoint_endpointType,
+    dbClusterEndpoint_excludedMembers,
+    dbClusterEndpoint_staticMembers,
+    dbClusterEndpoint_status,
+
+    -- ** DBClusterMember
+    dbClusterMember_dbClusterParameterGroupStatus,
+    dbClusterMember_dbInstanceIdentifier,
+    dbClusterMember_isClusterWriter,
+    dbClusterMember_promotionTier,
+
+    -- ** DBClusterOptionGroupStatus
+    dbClusterOptionGroupStatus_dbClusterOptionGroupName,
+    dbClusterOptionGroupStatus_status,
+
+    -- ** DBClusterParameterGroup
+    dbClusterParameterGroup_dbClusterParameterGroupArn,
+    dbClusterParameterGroup_dbClusterParameterGroupName,
+    dbClusterParameterGroup_dbParameterGroupFamily,
+    dbClusterParameterGroup_description,
+
+    -- ** DBClusterParameterGroupNameMessage
+    dbClusterParameterGroupNameMessage_dbClusterParameterGroupName,
+
+    -- ** DBClusterRole
+    dbClusterRole_featureName,
+    dbClusterRole_roleArn,
+    dbClusterRole_status,
+
+    -- ** DBClusterSnapshot
+    dbClusterSnapshot_allocatedStorage,
+    dbClusterSnapshot_availabilityZones,
+    dbClusterSnapshot_clusterCreateTime,
+    dbClusterSnapshot_dbClusterIdentifier,
+    dbClusterSnapshot_dbClusterSnapshotArn,
+    dbClusterSnapshot_dbClusterSnapshotIdentifier,
+    dbClusterSnapshot_engine,
+    dbClusterSnapshot_engineVersion,
+    dbClusterSnapshot_iAMDatabaseAuthenticationEnabled,
+    dbClusterSnapshot_kmsKeyId,
+    dbClusterSnapshot_licenseModel,
+    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_defaultCharacterSet,
+    dbEngineVersion_engine,
+    dbEngineVersion_engineVersion,
+    dbEngineVersion_exportableLogTypes,
+    dbEngineVersion_supportedCharacterSets,
+    dbEngineVersion_supportedTimezones,
+    dbEngineVersion_supportsGlobalDatabases,
+    dbEngineVersion_supportsLogExportsToCloudwatchLogs,
+    dbEngineVersion_supportsReadReplica,
+    dbEngineVersion_validUpgradeTarget,
+
+    -- ** DBInstance
+    dbInstance_allocatedStorage,
+    dbInstance_autoMinorVersionUpgrade,
+    dbInstance_availabilityZone,
+    dbInstance_backupRetentionPeriod,
+    dbInstance_cACertificateIdentifier,
+    dbInstance_characterSetName,
+    dbInstance_copyTagsToSnapshot,
+    dbInstance_dbClusterIdentifier,
+    dbInstance_dbInstanceArn,
+    dbInstance_dbInstanceClass,
+    dbInstance_dbInstanceIdentifier,
+    dbInstance_dbInstanceStatus,
+    dbInstance_dbName,
+    dbInstance_dbParameterGroups,
+    dbInstance_dbSecurityGroups,
+    dbInstance_dbSubnetGroup,
+    dbInstance_dbInstancePort,
+    dbInstance_dbiResourceId,
+    dbInstance_deletionProtection,
+    dbInstance_domainMemberships,
+    dbInstance_enabledCloudwatchLogsExports,
+    dbInstance_endpoint,
+    dbInstance_engine,
+    dbInstance_engineVersion,
+    dbInstance_enhancedMonitoringResourceArn,
+    dbInstance_iAMDatabaseAuthenticationEnabled,
+    dbInstance_instanceCreateTime,
+    dbInstance_iops,
+    dbInstance_kmsKeyId,
+    dbInstance_latestRestorableTime,
+    dbInstance_licenseModel,
+    dbInstance_masterUsername,
+    dbInstance_monitoringInterval,
+    dbInstance_monitoringRoleArn,
+    dbInstance_multiAZ,
+    dbInstance_optionGroupMemberships,
+    dbInstance_pendingModifiedValues,
+    dbInstance_performanceInsightsEnabled,
+    dbInstance_performanceInsightsKMSKeyId,
+    dbInstance_preferredBackupWindow,
+    dbInstance_preferredMaintenanceWindow,
+    dbInstance_promotionTier,
+    dbInstance_publiclyAccessible,
+    dbInstance_readReplicaDBClusterIdentifiers,
+    dbInstance_readReplicaDBInstanceIdentifiers,
+    dbInstance_readReplicaSourceDBInstanceIdentifier,
+    dbInstance_secondaryAvailabilityZone,
+    dbInstance_statusInfos,
+    dbInstance_storageEncrypted,
+    dbInstance_storageType,
+    dbInstance_tdeCredentialArn,
+    dbInstance_timezone,
+    dbInstance_vpcSecurityGroups,
+
+    -- ** DBInstanceStatusInfo
+    dbInstanceStatusInfo_message,
+    dbInstanceStatusInfo_normal,
+    dbInstanceStatusInfo_status,
+    dbInstanceStatusInfo_statusType,
+
+    -- ** DBParameterGroup
+    dbParameterGroup_dbParameterGroupArn,
+    dbParameterGroup_dbParameterGroupFamily,
+    dbParameterGroup_dbParameterGroupName,
+    dbParameterGroup_description,
+
+    -- ** DBParameterGroupNameMessage
+    dbParameterGroupNameMessage_dbParameterGroupName,
+
+    -- ** DBParameterGroupStatus
+    dbParameterGroupStatus_dbParameterGroupName,
+    dbParameterGroupStatus_parameterApplyStatus,
+
+    -- ** DBSecurityGroupMembership
+    dbSecurityGroupMembership_dbSecurityGroupName,
+    dbSecurityGroupMembership_status,
+
+    -- ** DBSubnetGroup
+    dbSubnetGroup_dbSubnetGroupArn,
+    dbSubnetGroup_dbSubnetGroupDescription,
+    dbSubnetGroup_dbSubnetGroupName,
+    dbSubnetGroup_subnetGroupStatus,
+    dbSubnetGroup_subnets,
+    dbSubnetGroup_vpcId,
+
+    -- ** DomainMembership
+    domainMembership_domain,
+    domainMembership_fqdn,
+    domainMembership_iAMRoleName,
+    domainMembership_status,
+
+    -- ** DoubleRange
+    doubleRange_from,
+    doubleRange_to,
+
+    -- ** 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_deletionProtection,
+    globalCluster_engine,
+    globalCluster_engineVersion,
+    globalCluster_globalClusterArn,
+    globalCluster_globalClusterIdentifier,
+    globalCluster_globalClusterMembers,
+    globalCluster_globalClusterResourceId,
+    globalCluster_status,
+    globalCluster_storageEncrypted,
+
+    -- ** GlobalClusterMember
+    globalClusterMember_dbClusterArn,
+    globalClusterMember_isWriter,
+    globalClusterMember_readers,
+
+    -- ** OptionGroupMembership
+    optionGroupMembership_optionGroupName,
+    optionGroupMembership_status,
+
+    -- ** OrderableDBInstanceOption
+    orderableDBInstanceOption_availabilityZones,
+    orderableDBInstanceOption_dbInstanceClass,
+    orderableDBInstanceOption_engine,
+    orderableDBInstanceOption_engineVersion,
+    orderableDBInstanceOption_licenseModel,
+    orderableDBInstanceOption_maxIopsPerDbInstance,
+    orderableDBInstanceOption_maxIopsPerGib,
+    orderableDBInstanceOption_maxStorageSize,
+    orderableDBInstanceOption_minIopsPerDbInstance,
+    orderableDBInstanceOption_minIopsPerGib,
+    orderableDBInstanceOption_minStorageSize,
+    orderableDBInstanceOption_multiAZCapable,
+    orderableDBInstanceOption_readReplicaCapable,
+    orderableDBInstanceOption_storageType,
+    orderableDBInstanceOption_supportsEnhancedMonitoring,
+    orderableDBInstanceOption_supportsGlobalDatabases,
+    orderableDBInstanceOption_supportsIAMDatabaseAuthentication,
+    orderableDBInstanceOption_supportsIops,
+    orderableDBInstanceOption_supportsPerformanceInsights,
+    orderableDBInstanceOption_supportsStorageEncryption,
+    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,
+
+    -- ** Range
+    range_from,
+    range_step,
+    range_to,
+
+    -- ** ResourcePendingMaintenanceActions
+    resourcePendingMaintenanceActions_pendingMaintenanceActionDetails,
+    resourcePendingMaintenanceActions_resourceIdentifier,
+
+    -- ** ServerlessV2ScalingConfiguration
+    serverlessV2ScalingConfiguration_maxCapacity,
+    serverlessV2ScalingConfiguration_minCapacity,
+
+    -- ** ServerlessV2ScalingConfigurationInfo
+    serverlessV2ScalingConfigurationInfo_maxCapacity,
+    serverlessV2ScalingConfigurationInfo_minCapacity,
+
+    -- ** Subnet
+    subnet_subnetAvailabilityZone,
+    subnet_subnetIdentifier,
+    subnet_subnetStatus,
+
+    -- ** Tag
+    tag_key,
+    tag_value,
+
+    -- ** Timezone
+    timezone_timezoneName,
+
+    -- ** UpgradeTarget
+    upgradeTarget_autoUpgrade,
+    upgradeTarget_description,
+    upgradeTarget_engine,
+    upgradeTarget_engineVersion,
+    upgradeTarget_isMajorVersionUpgrade,
+    upgradeTarget_supportsGlobalDatabases,
+
+    -- ** ValidDBInstanceModificationsMessage
+    validDBInstanceModificationsMessage_storage,
+
+    -- ** ValidStorageOptions
+    validStorageOptions_iopsToStorageRatio,
+    validStorageOptions_provisionedIops,
+    validStorageOptions_storageSize,
+    validStorageOptions_storageType,
+
+    -- ** VpcSecurityGroupMembership
+    vpcSecurityGroupMembership_status,
+    vpcSecurityGroupMembership_vpcSecurityGroupId,
+  )
+where
+
+import Amazonka.Neptune.AddRoleToDBCluster
+import Amazonka.Neptune.AddSourceIdentifierToSubscription
+import Amazonka.Neptune.AddTagsToResource
+import Amazonka.Neptune.ApplyPendingMaintenanceAction
+import Amazonka.Neptune.CopyDBClusterParameterGroup
+import Amazonka.Neptune.CopyDBClusterSnapshot
+import Amazonka.Neptune.CopyDBParameterGroup
+import Amazonka.Neptune.CreateDBCluster
+import Amazonka.Neptune.CreateDBClusterEndpoint
+import Amazonka.Neptune.CreateDBClusterParameterGroup
+import Amazonka.Neptune.CreateDBClusterSnapshot
+import Amazonka.Neptune.CreateDBInstance
+import Amazonka.Neptune.CreateDBParameterGroup
+import Amazonka.Neptune.CreateDBSubnetGroup
+import Amazonka.Neptune.CreateEventSubscription
+import Amazonka.Neptune.CreateGlobalCluster
+import Amazonka.Neptune.DeleteDBCluster
+import Amazonka.Neptune.DeleteDBClusterEndpoint
+import Amazonka.Neptune.DeleteDBClusterParameterGroup
+import Amazonka.Neptune.DeleteDBClusterSnapshot
+import Amazonka.Neptune.DeleteDBInstance
+import Amazonka.Neptune.DeleteDBParameterGroup
+import Amazonka.Neptune.DeleteDBSubnetGroup
+import Amazonka.Neptune.DeleteEventSubscription
+import Amazonka.Neptune.DeleteGlobalCluster
+import Amazonka.Neptune.DescribeDBClusterEndpoints
+import Amazonka.Neptune.DescribeDBClusterParameterGroups
+import Amazonka.Neptune.DescribeDBClusterParameters
+import Amazonka.Neptune.DescribeDBClusterSnapshotAttributes
+import Amazonka.Neptune.DescribeDBClusterSnapshots
+import Amazonka.Neptune.DescribeDBClusters
+import Amazonka.Neptune.DescribeDBEngineVersions
+import Amazonka.Neptune.DescribeDBInstances
+import Amazonka.Neptune.DescribeDBParameterGroups
+import Amazonka.Neptune.DescribeDBParameters
+import Amazonka.Neptune.DescribeDBSubnetGroups
+import Amazonka.Neptune.DescribeEngineDefaultClusterParameters
+import Amazonka.Neptune.DescribeEngineDefaultParameters
+import Amazonka.Neptune.DescribeEventCategories
+import Amazonka.Neptune.DescribeEventSubscriptions
+import Amazonka.Neptune.DescribeEvents
+import Amazonka.Neptune.DescribeGlobalClusters
+import Amazonka.Neptune.DescribeOrderableDBInstanceOptions
+import Amazonka.Neptune.DescribePendingMaintenanceActions
+import Amazonka.Neptune.DescribeValidDBInstanceModifications
+import Amazonka.Neptune.FailoverDBCluster
+import Amazonka.Neptune.FailoverGlobalCluster
+import Amazonka.Neptune.ListTagsForResource
+import Amazonka.Neptune.ModifyDBCluster
+import Amazonka.Neptune.ModifyDBClusterEndpoint
+import Amazonka.Neptune.ModifyDBClusterParameterGroup
+import Amazonka.Neptune.ModifyDBClusterSnapshotAttribute
+import Amazonka.Neptune.ModifyDBInstance
+import Amazonka.Neptune.ModifyDBParameterGroup
+import Amazonka.Neptune.ModifyDBSubnetGroup
+import Amazonka.Neptune.ModifyEventSubscription
+import Amazonka.Neptune.ModifyGlobalCluster
+import Amazonka.Neptune.PromoteReadReplicaDBCluster
+import Amazonka.Neptune.RebootDBInstance
+import Amazonka.Neptune.RemoveFromGlobalCluster
+import Amazonka.Neptune.RemoveRoleFromDBCluster
+import Amazonka.Neptune.RemoveSourceIdentifierFromSubscription
+import Amazonka.Neptune.RemoveTagsFromResource
+import Amazonka.Neptune.ResetDBClusterParameterGroup
+import Amazonka.Neptune.ResetDBParameterGroup
+import Amazonka.Neptune.RestoreDBClusterFromSnapshot
+import Amazonka.Neptune.RestoreDBClusterToPointInTime
+import Amazonka.Neptune.StartDBCluster
+import Amazonka.Neptune.StopDBCluster
+import Amazonka.Neptune.Types.AvailabilityZone
+import Amazonka.Neptune.Types.CharacterSet
+import Amazonka.Neptune.Types.CloudwatchLogsExportConfiguration
+import Amazonka.Neptune.Types.DBCluster
+import Amazonka.Neptune.Types.DBClusterEndpoint
+import Amazonka.Neptune.Types.DBClusterMember
+import Amazonka.Neptune.Types.DBClusterOptionGroupStatus
+import Amazonka.Neptune.Types.DBClusterParameterGroup
+import Amazonka.Neptune.Types.DBClusterParameterGroupNameMessage
+import Amazonka.Neptune.Types.DBClusterRole
+import Amazonka.Neptune.Types.DBClusterSnapshot
+import Amazonka.Neptune.Types.DBClusterSnapshotAttribute
+import Amazonka.Neptune.Types.DBClusterSnapshotAttributesResult
+import Amazonka.Neptune.Types.DBEngineVersion
+import Amazonka.Neptune.Types.DBInstance
+import Amazonka.Neptune.Types.DBInstanceStatusInfo
+import Amazonka.Neptune.Types.DBParameterGroup
+import Amazonka.Neptune.Types.DBParameterGroupNameMessage
+import Amazonka.Neptune.Types.DBParameterGroupStatus
+import Amazonka.Neptune.Types.DBSecurityGroupMembership
+import Amazonka.Neptune.Types.DBSubnetGroup
+import Amazonka.Neptune.Types.DomainMembership
+import Amazonka.Neptune.Types.DoubleRange
+import Amazonka.Neptune.Types.Endpoint
+import Amazonka.Neptune.Types.EngineDefaults
+import Amazonka.Neptune.Types.Event
+import Amazonka.Neptune.Types.EventCategoriesMap
+import Amazonka.Neptune.Types.EventSubscription
+import Amazonka.Neptune.Types.Filter
+import Amazonka.Neptune.Types.GlobalCluster
+import Amazonka.Neptune.Types.GlobalClusterMember
+import Amazonka.Neptune.Types.OptionGroupMembership
+import Amazonka.Neptune.Types.OrderableDBInstanceOption
+import Amazonka.Neptune.Types.Parameter
+import Amazonka.Neptune.Types.PendingCloudwatchLogsExports
+import Amazonka.Neptune.Types.PendingMaintenanceAction
+import Amazonka.Neptune.Types.PendingModifiedValues
+import Amazonka.Neptune.Types.Range
+import Amazonka.Neptune.Types.ResourcePendingMaintenanceActions
+import Amazonka.Neptune.Types.ServerlessV2ScalingConfiguration
+import Amazonka.Neptune.Types.ServerlessV2ScalingConfigurationInfo
+import Amazonka.Neptune.Types.Subnet
+import Amazonka.Neptune.Types.Tag
+import Amazonka.Neptune.Types.Timezone
+import Amazonka.Neptune.Types.UpgradeTarget
+import Amazonka.Neptune.Types.ValidDBInstanceModificationsMessage
+import Amazonka.Neptune.Types.ValidStorageOptions
+import Amazonka.Neptune.Types.VpcSecurityGroupMembership
diff --git a/gen/Amazonka/Neptune/ListTagsForResource.hs b/gen/Amazonka/Neptune/ListTagsForResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/ListTagsForResource.hs
@@ -0,0 +1,186 @@
+{-# 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.Neptune.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 Neptune resource.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListTagsForResource' smart constructor.
+data ListTagsForResource = ListTagsForResource'
+  { -- | This parameter is not currently supported.
+    filters :: Prelude.Maybe [Filter],
+    -- | The Amazon Neptune resource with tags to be listed. This value is an
+    -- Amazon Resource Name (ARN). For information about creating an ARN, see
+    -- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing 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 Neptune resource with tags to be listed. This value is an
+-- Amazon Resource Name (ARN). For information about creating an ARN, see
+-- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing 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 Neptune resource with tags to be listed. This value is an
+-- Amazon Resource Name (ARN). For information about creating an ARN, see
+-- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing 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
+      ]
+
+-- | /See:/ 'newListTagsForResourceResponse' smart constructor.
+data ListTagsForResourceResponse = ListTagsForResourceResponse'
+  { -- | List of tags returned by the ListTagsForResource operation.
+    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' - List of tags returned by the ListTagsForResource operation.
+--
+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.
+newListTagsForResourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListTagsForResourceResponse
+newListTagsForResourceResponse pHttpStatus_ =
+  ListTagsForResourceResponse'
+    { tagList =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | List of tags returned by the ListTagsForResource operation.
+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
diff --git a/gen/Amazonka/Neptune/ModifyDBCluster.hs b/gen/Amazonka/Neptune/ModifyDBCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/ModifyDBCluster.hs
@@ -0,0 +1,711 @@
+{-# 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.Neptune.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)
+--
+-- Modify a setting for a DB cluster. You can change one or more database
+-- configuration parameters by specifying these parameters and the new
+-- values in the request.
+module Amazonka.Neptune.ModifyDBCluster
+  ( -- * Creating a Request
+    ModifyDBCluster (..),
+    newModifyDBCluster,
+
+    -- * Request Lenses
+    modifyDBCluster_allowMajorVersionUpgrade,
+    modifyDBCluster_applyImmediately,
+    modifyDBCluster_backupRetentionPeriod,
+    modifyDBCluster_cloudwatchLogsExportConfiguration,
+    modifyDBCluster_copyTagsToSnapshot,
+    modifyDBCluster_dbClusterParameterGroupName,
+    modifyDBCluster_dbInstanceParameterGroupName,
+    modifyDBCluster_deletionProtection,
+    modifyDBCluster_enableIAMDatabaseAuthentication,
+    modifyDBCluster_engineVersion,
+    modifyDBCluster_masterUserPassword,
+    modifyDBCluster_newDBClusterIdentifier,
+    modifyDBCluster_optionGroupName,
+    modifyDBCluster_port,
+    modifyDBCluster_preferredBackupWindow,
+    modifyDBCluster_preferredMaintenanceWindow,
+    modifyDBCluster_serverlessV2ScalingConfiguration,
+    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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newModifyDBCluster' smart constructor.
+data ModifyDBCluster = ModifyDBCluster'
+  { -- | A value that indicates whether upgrades between different major versions
+    -- are allowed.
+    --
+    -- Constraints: You must set the allow-major-version-upgrade flag when
+    -- providing an @EngineVersion@ parameter that uses a different major
+    -- version than the DB cluster\'s current version.
+    allowMajorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
+    -- | A value that 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 DB
+    -- cluster. If this parameter is set to @false@, changes to the DB cluster
+    -- are applied during the next maintenance window.
+    --
+    -- The @ApplyImmediately@ parameter only affects @NewDBClusterIdentifier@
+    -- values. If you set the @ApplyImmediately@ parameter value to false, then
+    -- changes to @NewDBClusterIdentifier@ 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
+    -- CloudWatch Logs for a specific DB cluster.
+    cloudwatchLogsExportConfiguration :: Prelude.Maybe CloudwatchLogsExportConfiguration,
+    -- | /If set to @true@, tags are copied to any snapshot of the DB cluster
+    -- that is created./
+    copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,
+    -- | The name of the DB cluster parameter group to use for the DB cluster.
+    dbClusterParameterGroupName :: Prelude.Maybe Prelude.Text,
+    -- | The name of the DB parameter group to apply to all instances of the DB
+    -- cluster.
+    --
+    -- When you apply a parameter group using @DBInstanceParameterGroupName@,
+    -- parameter changes aren\'t applied during the next maintenance window but
+    -- instead are applied immediately.
+    --
+    -- Default: The existing name setting
+    --
+    -- Constraints:
+    --
+    -- -   The DB parameter group must be in the same DB parameter group family
+    --     as the target DB cluster version.
+    --
+    -- -   The @DBInstanceParameterGroupName@ parameter is only valid in
+    --     combination with the @AllowMajorVersionUpgrade@ parameter.
+    dbInstanceParameterGroupName :: Prelude.Maybe Prelude.Text,
+    -- | A value that indicates whether the DB cluster has deletion protection
+    -- enabled. The database can\'t be deleted when deletion protection is
+    -- enabled. By default, deletion protection is disabled.
+    deletionProtection :: Prelude.Maybe Prelude.Bool,
+    -- | True to enable mapping of Amazon Identity and Access Management (IAM)
+    -- accounts to database accounts, and otherwise false.
+    --
+    -- Default: @false@
+    enableIAMDatabaseAuthentication :: Prelude.Maybe Prelude.Bool,
+    -- | The version number of the database engine to which you want to upgrade.
+    -- Changing this parameter results in an outage. The change is applied
+    -- during the next maintenance window unless the @ApplyImmediately@
+    -- parameter is set to true.
+    --
+    -- For a list of valid engine versions, see
+    -- <https://docs.aws.amazon.com/neptune/latest/userguide/engine-releases.html Engine Releases for Amazon Neptune>,
+    -- or call
+    -- <https://docs.aws.amazon.com/neptune/latest/userguide/api-other-apis.html#DescribeDBEngineVersions DescribeDBEngineVersions>.
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | Not supported by Neptune.
+    masterUserPassword :: Prelude.Maybe Prelude.Text,
+    -- | The new DB cluster identifier for the DB cluster when renaming a DB
+    -- 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,
+    -- | /Not supported by Neptune./
+    optionGroupName :: Prelude.Maybe Prelude.Text,
+    -- | The port number on which the DB cluster accepts connections.
+    --
+    -- Constraints: Value must be @1150-65535@
+    --
+    -- Default: The same port as the original DB 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 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 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,
+    serverlessV2ScalingConfiguration :: Prelude.Maybe ServerlessV2ScalingConfiguration,
+    -- | A list of VPC security groups that the DB cluster will belong to.
+    vpcSecurityGroupIds :: Prelude.Maybe [Prelude.Text],
+    -- | The DB cluster identifier for the cluster 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:
+--
+-- 'allowMajorVersionUpgrade', 'modifyDBCluster_allowMajorVersionUpgrade' - A value that indicates whether upgrades between different major versions
+-- are allowed.
+--
+-- Constraints: You must set the allow-major-version-upgrade flag when
+-- providing an @EngineVersion@ parameter that uses a different major
+-- version than the DB cluster\'s current version.
+--
+-- 'applyImmediately', 'modifyDBCluster_applyImmediately' - A value that 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 DB
+-- cluster. If this parameter is set to @false@, changes to the DB cluster
+-- are applied during the next maintenance window.
+--
+-- The @ApplyImmediately@ parameter only affects @NewDBClusterIdentifier@
+-- values. If you set the @ApplyImmediately@ parameter value to false, then
+-- changes to @NewDBClusterIdentifier@ 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
+-- CloudWatch Logs for a specific DB cluster.
+--
+-- 'copyTagsToSnapshot', 'modifyDBCluster_copyTagsToSnapshot' - /If set to @true@, tags are copied to any snapshot of the DB cluster
+-- that is created./
+--
+-- 'dbClusterParameterGroupName', 'modifyDBCluster_dbClusterParameterGroupName' - The name of the DB cluster parameter group to use for the DB cluster.
+--
+-- 'dbInstanceParameterGroupName', 'modifyDBCluster_dbInstanceParameterGroupName' - The name of the DB parameter group to apply to all instances of the DB
+-- cluster.
+--
+-- When you apply a parameter group using @DBInstanceParameterGroupName@,
+-- parameter changes aren\'t applied during the next maintenance window but
+-- instead are applied immediately.
+--
+-- Default: The existing name setting
+--
+-- Constraints:
+--
+-- -   The DB parameter group must be in the same DB parameter group family
+--     as the target DB cluster version.
+--
+-- -   The @DBInstanceParameterGroupName@ parameter is only valid in
+--     combination with the @AllowMajorVersionUpgrade@ parameter.
+--
+-- 'deletionProtection', 'modifyDBCluster_deletionProtection' - A value that indicates whether the DB cluster has deletion protection
+-- enabled. The database can\'t be deleted when deletion protection is
+-- enabled. By default, deletion protection is disabled.
+--
+-- 'enableIAMDatabaseAuthentication', 'modifyDBCluster_enableIAMDatabaseAuthentication' - True to enable mapping of Amazon Identity and Access Management (IAM)
+-- accounts to database accounts, and otherwise false.
+--
+-- Default: @false@
+--
+-- 'engineVersion', 'modifyDBCluster_engineVersion' - The version number of the database engine to which you want to upgrade.
+-- Changing this parameter results in an outage. The change is applied
+-- during the next maintenance window unless the @ApplyImmediately@
+-- parameter is set to true.
+--
+-- For a list of valid engine versions, see
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/engine-releases.html Engine Releases for Amazon Neptune>,
+-- or call
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/api-other-apis.html#DescribeDBEngineVersions DescribeDBEngineVersions>.
+--
+-- 'masterUserPassword', 'modifyDBCluster_masterUserPassword' - Not supported by Neptune.
+--
+-- 'newDBClusterIdentifier'', 'modifyDBCluster_newDBClusterIdentifier' - The new DB cluster identifier for the DB cluster when renaming a DB
+-- 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@
+--
+-- 'optionGroupName', 'modifyDBCluster_optionGroupName' - /Not supported by Neptune./
+--
+-- 'port', 'modifyDBCluster_port' - The port number on which the DB cluster accepts connections.
+--
+-- Constraints: Value must be @1150-65535@
+--
+-- Default: The same port as the original DB 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 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 Region, occurring on a random day of the
+-- week.
+--
+-- Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
+--
+-- Constraints: Minimum 30-minute window.
+--
+-- 'serverlessV2ScalingConfiguration', 'modifyDBCluster_serverlessV2ScalingConfiguration' - Undocumented member.
+--
+-- 'vpcSecurityGroupIds', 'modifyDBCluster_vpcSecurityGroupIds' - A list of VPC security groups that the DB cluster will belong to.
+--
+-- 'dbClusterIdentifier', 'modifyDBCluster_dbClusterIdentifier' - The DB cluster identifier for the cluster 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'
+    { allowMajorVersionUpgrade =
+        Prelude.Nothing,
+      applyImmediately = Prelude.Nothing,
+      backupRetentionPeriod = Prelude.Nothing,
+      cloudwatchLogsExportConfiguration = Prelude.Nothing,
+      copyTagsToSnapshot = Prelude.Nothing,
+      dbClusterParameterGroupName = Prelude.Nothing,
+      dbInstanceParameterGroupName = Prelude.Nothing,
+      deletionProtection = Prelude.Nothing,
+      enableIAMDatabaseAuthentication = Prelude.Nothing,
+      engineVersion = Prelude.Nothing,
+      masterUserPassword = Prelude.Nothing,
+      newDBClusterIdentifier' = Prelude.Nothing,
+      optionGroupName = Prelude.Nothing,
+      port = Prelude.Nothing,
+      preferredBackupWindow = Prelude.Nothing,
+      preferredMaintenanceWindow = Prelude.Nothing,
+      serverlessV2ScalingConfiguration = Prelude.Nothing,
+      vpcSecurityGroupIds = Prelude.Nothing,
+      dbClusterIdentifier = pDBClusterIdentifier_
+    }
+
+-- | A value that indicates whether upgrades between different major versions
+-- are allowed.
+--
+-- Constraints: You must set the allow-major-version-upgrade flag when
+-- providing an @EngineVersion@ parameter that uses a different major
+-- version than the DB cluster\'s current version.
+modifyDBCluster_allowMajorVersionUpgrade :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Bool)
+modifyDBCluster_allowMajorVersionUpgrade = Lens.lens (\ModifyDBCluster' {allowMajorVersionUpgrade} -> allowMajorVersionUpgrade) (\s@ModifyDBCluster' {} a -> s {allowMajorVersionUpgrade = a} :: ModifyDBCluster)
+
+-- | A value that 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 DB
+-- cluster. If this parameter is set to @false@, changes to the DB cluster
+-- are applied during the next maintenance window.
+--
+-- The @ApplyImmediately@ parameter only affects @NewDBClusterIdentifier@
+-- values. If you set the @ApplyImmediately@ parameter value to false, then
+-- changes to @NewDBClusterIdentifier@ 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
+-- CloudWatch Logs for a specific DB cluster.
+modifyDBCluster_cloudwatchLogsExportConfiguration :: Lens.Lens' ModifyDBCluster (Prelude.Maybe CloudwatchLogsExportConfiguration)
+modifyDBCluster_cloudwatchLogsExportConfiguration = Lens.lens (\ModifyDBCluster' {cloudwatchLogsExportConfiguration} -> cloudwatchLogsExportConfiguration) (\s@ModifyDBCluster' {} a -> s {cloudwatchLogsExportConfiguration = a} :: ModifyDBCluster)
+
+-- | /If set to @true@, tags are copied to any snapshot of the DB cluster
+-- that is created./
+modifyDBCluster_copyTagsToSnapshot :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Bool)
+modifyDBCluster_copyTagsToSnapshot = Lens.lens (\ModifyDBCluster' {copyTagsToSnapshot} -> copyTagsToSnapshot) (\s@ModifyDBCluster' {} a -> s {copyTagsToSnapshot = a} :: ModifyDBCluster)
+
+-- | The name of the DB cluster parameter group to use for the DB cluster.
+modifyDBCluster_dbClusterParameterGroupName :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Text)
+modifyDBCluster_dbClusterParameterGroupName = Lens.lens (\ModifyDBCluster' {dbClusterParameterGroupName} -> dbClusterParameterGroupName) (\s@ModifyDBCluster' {} a -> s {dbClusterParameterGroupName = a} :: ModifyDBCluster)
+
+-- | The name of the DB parameter group to apply to all instances of the DB
+-- cluster.
+--
+-- When you apply a parameter group using @DBInstanceParameterGroupName@,
+-- parameter changes aren\'t applied during the next maintenance window but
+-- instead are applied immediately.
+--
+-- Default: The existing name setting
+--
+-- Constraints:
+--
+-- -   The DB parameter group must be in the same DB parameter group family
+--     as the target DB cluster version.
+--
+-- -   The @DBInstanceParameterGroupName@ parameter is only valid in
+--     combination with the @AllowMajorVersionUpgrade@ parameter.
+modifyDBCluster_dbInstanceParameterGroupName :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Text)
+modifyDBCluster_dbInstanceParameterGroupName = Lens.lens (\ModifyDBCluster' {dbInstanceParameterGroupName} -> dbInstanceParameterGroupName) (\s@ModifyDBCluster' {} a -> s {dbInstanceParameterGroupName = a} :: ModifyDBCluster)
+
+-- | A value that indicates whether the DB cluster has deletion protection
+-- enabled. The database can\'t be deleted when deletion protection is
+-- enabled. By default, deletion protection is disabled.
+modifyDBCluster_deletionProtection :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Bool)
+modifyDBCluster_deletionProtection = Lens.lens (\ModifyDBCluster' {deletionProtection} -> deletionProtection) (\s@ModifyDBCluster' {} a -> s {deletionProtection = a} :: ModifyDBCluster)
+
+-- | True to enable mapping of Amazon Identity and Access Management (IAM)
+-- accounts to database accounts, and otherwise false.
+--
+-- Default: @false@
+modifyDBCluster_enableIAMDatabaseAuthentication :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Bool)
+modifyDBCluster_enableIAMDatabaseAuthentication = Lens.lens (\ModifyDBCluster' {enableIAMDatabaseAuthentication} -> enableIAMDatabaseAuthentication) (\s@ModifyDBCluster' {} a -> s {enableIAMDatabaseAuthentication = a} :: ModifyDBCluster)
+
+-- | The version number of the database engine to which you want to upgrade.
+-- Changing this parameter results in an outage. The change is applied
+-- during the next maintenance window unless the @ApplyImmediately@
+-- parameter is set to true.
+--
+-- For a list of valid engine versions, see
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/engine-releases.html Engine Releases for Amazon Neptune>,
+-- or call
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/api-other-apis.html#DescribeDBEngineVersions DescribeDBEngineVersions>.
+modifyDBCluster_engineVersion :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Text)
+modifyDBCluster_engineVersion = Lens.lens (\ModifyDBCluster' {engineVersion} -> engineVersion) (\s@ModifyDBCluster' {} a -> s {engineVersion = a} :: ModifyDBCluster)
+
+-- | Not supported by Neptune.
+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 DB cluster identifier for the DB cluster when renaming a DB
+-- 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)
+
+-- | /Not supported by Neptune./
+modifyDBCluster_optionGroupName :: Lens.Lens' ModifyDBCluster (Prelude.Maybe Prelude.Text)
+modifyDBCluster_optionGroupName = Lens.lens (\ModifyDBCluster' {optionGroupName} -> optionGroupName) (\s@ModifyDBCluster' {} a -> s {optionGroupName = a} :: ModifyDBCluster)
+
+-- | The port number on which the DB cluster accepts connections.
+--
+-- Constraints: Value must be @1150-65535@
+--
+-- Default: The same port as the original DB 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 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 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)
+
+-- | Undocumented member.
+modifyDBCluster_serverlessV2ScalingConfiguration :: Lens.Lens' ModifyDBCluster (Prelude.Maybe ServerlessV2ScalingConfiguration)
+modifyDBCluster_serverlessV2ScalingConfiguration = Lens.lens (\ModifyDBCluster' {serverlessV2ScalingConfiguration} -> serverlessV2ScalingConfiguration) (\s@ModifyDBCluster' {} a -> s {serverlessV2ScalingConfiguration = a} :: ModifyDBCluster)
+
+-- | A list of VPC security groups that the DB 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 DB cluster identifier for the cluster 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` allowMajorVersionUpgrade
+      `Prelude.hashWithSalt` applyImmediately
+      `Prelude.hashWithSalt` backupRetentionPeriod
+      `Prelude.hashWithSalt` cloudwatchLogsExportConfiguration
+      `Prelude.hashWithSalt` copyTagsToSnapshot
+      `Prelude.hashWithSalt` dbClusterParameterGroupName
+      `Prelude.hashWithSalt` dbInstanceParameterGroupName
+      `Prelude.hashWithSalt` deletionProtection
+      `Prelude.hashWithSalt` enableIAMDatabaseAuthentication
+      `Prelude.hashWithSalt` engineVersion
+      `Prelude.hashWithSalt` masterUserPassword
+      `Prelude.hashWithSalt` newDBClusterIdentifier'
+      `Prelude.hashWithSalt` optionGroupName
+      `Prelude.hashWithSalt` port
+      `Prelude.hashWithSalt` preferredBackupWindow
+      `Prelude.hashWithSalt` preferredMaintenanceWindow
+      `Prelude.hashWithSalt` serverlessV2ScalingConfiguration
+      `Prelude.hashWithSalt` vpcSecurityGroupIds
+      `Prelude.hashWithSalt` dbClusterIdentifier
+
+instance Prelude.NFData ModifyDBCluster where
+  rnf ModifyDBCluster' {..} =
+    Prelude.rnf allowMajorVersionUpgrade
+      `Prelude.seq` Prelude.rnf applyImmediately
+      `Prelude.seq` Prelude.rnf backupRetentionPeriod
+      `Prelude.seq` Prelude.rnf cloudwatchLogsExportConfiguration
+      `Prelude.seq` Prelude.rnf copyTagsToSnapshot
+      `Prelude.seq` Prelude.rnf dbClusterParameterGroupName
+      `Prelude.seq` Prelude.rnf dbInstanceParameterGroupName
+      `Prelude.seq` Prelude.rnf deletionProtection
+      `Prelude.seq` Prelude.rnf enableIAMDatabaseAuthentication
+      `Prelude.seq` Prelude.rnf engineVersion
+      `Prelude.seq` Prelude.rnf masterUserPassword
+      `Prelude.seq` Prelude.rnf newDBClusterIdentifier'
+      `Prelude.seq` Prelude.rnf optionGroupName
+      `Prelude.seq` Prelude.rnf port
+      `Prelude.seq` Prelude.rnf preferredBackupWindow
+      `Prelude.seq` Prelude.rnf preferredMaintenanceWindow
+      `Prelude.seq` Prelude.rnf
+        serverlessV2ScalingConfiguration
+      `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),
+        "AllowMajorVersionUpgrade"
+          Data.=: allowMajorVersionUpgrade,
+        "ApplyImmediately" Data.=: applyImmediately,
+        "BackupRetentionPeriod"
+          Data.=: backupRetentionPeriod,
+        "CloudwatchLogsExportConfiguration"
+          Data.=: cloudwatchLogsExportConfiguration,
+        "CopyTagsToSnapshot" Data.=: copyTagsToSnapshot,
+        "DBClusterParameterGroupName"
+          Data.=: dbClusterParameterGroupName,
+        "DBInstanceParameterGroupName"
+          Data.=: dbInstanceParameterGroupName,
+        "DeletionProtection" Data.=: deletionProtection,
+        "EnableIAMDatabaseAuthentication"
+          Data.=: enableIAMDatabaseAuthentication,
+        "EngineVersion" Data.=: engineVersion,
+        "MasterUserPassword" Data.=: masterUserPassword,
+        "NewDBClusterIdentifier"
+          Data.=: newDBClusterIdentifier',
+        "OptionGroupName" Data.=: optionGroupName,
+        "Port" Data.=: port,
+        "PreferredBackupWindow"
+          Data.=: preferredBackupWindow,
+        "PreferredMaintenanceWindow"
+          Data.=: preferredMaintenanceWindow,
+        "ServerlessV2ScalingConfiguration"
+          Data.=: serverlessV2ScalingConfiguration,
+        "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
diff --git a/gen/Amazonka/Neptune/ModifyDBClusterEndpoint.hs b/gen/Amazonka/Neptune/ModifyDBClusterEndpoint.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/ModifyDBClusterEndpoint.hs
@@ -0,0 +1,393 @@
+{-# 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.Neptune.ModifyDBClusterEndpoint
+-- 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 properties of an endpoint in an Amazon Neptune DB cluster.
+module Amazonka.Neptune.ModifyDBClusterEndpoint
+  ( -- * Creating a Request
+    ModifyDBClusterEndpoint (..),
+    newModifyDBClusterEndpoint,
+
+    -- * Request Lenses
+    modifyDBClusterEndpoint_endpointType,
+    modifyDBClusterEndpoint_excludedMembers,
+    modifyDBClusterEndpoint_staticMembers,
+    modifyDBClusterEndpoint_dbClusterEndpointIdentifier,
+
+    -- * Destructuring the Response
+    ModifyDBClusterEndpointResponse (..),
+    newModifyDBClusterEndpointResponse,
+
+    -- * Response Lenses
+    modifyDBClusterEndpointResponse_customEndpointType,
+    modifyDBClusterEndpointResponse_dbClusterEndpointArn,
+    modifyDBClusterEndpointResponse_dbClusterEndpointIdentifier,
+    modifyDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier,
+    modifyDBClusterEndpointResponse_dbClusterIdentifier,
+    modifyDBClusterEndpointResponse_endpoint,
+    modifyDBClusterEndpointResponse_endpointType,
+    modifyDBClusterEndpointResponse_excludedMembers,
+    modifyDBClusterEndpointResponse_staticMembers,
+    modifyDBClusterEndpointResponse_status,
+    modifyDBClusterEndpointResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newModifyDBClusterEndpoint' smart constructor.
+data ModifyDBClusterEndpoint = ModifyDBClusterEndpoint'
+  { -- | The type of the endpoint. One of: @READER@, @WRITER@, @ANY@.
+    endpointType :: Prelude.Maybe Prelude.Text,
+    -- | List of DB instance identifiers that aren\'t part of the custom endpoint
+    -- group. All other eligible instances are reachable through the custom
+    -- endpoint. Only relevant if the list of static members is empty.
+    excludedMembers :: Prelude.Maybe [Prelude.Text],
+    -- | List of DB instance identifiers that are part of the custom endpoint
+    -- group.
+    staticMembers :: Prelude.Maybe [Prelude.Text],
+    -- | The identifier of the endpoint to modify. This parameter is stored as a
+    -- lowercase string.
+    dbClusterEndpointIdentifier :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ModifyDBClusterEndpoint' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'endpointType', 'modifyDBClusterEndpoint_endpointType' - The type of the endpoint. One of: @READER@, @WRITER@, @ANY@.
+--
+-- 'excludedMembers', 'modifyDBClusterEndpoint_excludedMembers' - List of DB instance identifiers that aren\'t part of the custom endpoint
+-- group. All other eligible instances are reachable through the custom
+-- endpoint. Only relevant if the list of static members is empty.
+--
+-- 'staticMembers', 'modifyDBClusterEndpoint_staticMembers' - List of DB instance identifiers that are part of the custom endpoint
+-- group.
+--
+-- 'dbClusterEndpointIdentifier', 'modifyDBClusterEndpoint_dbClusterEndpointIdentifier' - The identifier of the endpoint to modify. This parameter is stored as a
+-- lowercase string.
+newModifyDBClusterEndpoint ::
+  -- | 'dbClusterEndpointIdentifier'
+  Prelude.Text ->
+  ModifyDBClusterEndpoint
+newModifyDBClusterEndpoint
+  pDBClusterEndpointIdentifier_ =
+    ModifyDBClusterEndpoint'
+      { endpointType =
+          Prelude.Nothing,
+        excludedMembers = Prelude.Nothing,
+        staticMembers = Prelude.Nothing,
+        dbClusterEndpointIdentifier =
+          pDBClusterEndpointIdentifier_
+      }
+
+-- | The type of the endpoint. One of: @READER@, @WRITER@, @ANY@.
+modifyDBClusterEndpoint_endpointType :: Lens.Lens' ModifyDBClusterEndpoint (Prelude.Maybe Prelude.Text)
+modifyDBClusterEndpoint_endpointType = Lens.lens (\ModifyDBClusterEndpoint' {endpointType} -> endpointType) (\s@ModifyDBClusterEndpoint' {} a -> s {endpointType = a} :: ModifyDBClusterEndpoint)
+
+-- | List of DB instance identifiers that aren\'t part of the custom endpoint
+-- group. All other eligible instances are reachable through the custom
+-- endpoint. Only relevant if the list of static members is empty.
+modifyDBClusterEndpoint_excludedMembers :: Lens.Lens' ModifyDBClusterEndpoint (Prelude.Maybe [Prelude.Text])
+modifyDBClusterEndpoint_excludedMembers = Lens.lens (\ModifyDBClusterEndpoint' {excludedMembers} -> excludedMembers) (\s@ModifyDBClusterEndpoint' {} a -> s {excludedMembers = a} :: ModifyDBClusterEndpoint) Prelude.. Lens.mapping Lens.coerced
+
+-- | List of DB instance identifiers that are part of the custom endpoint
+-- group.
+modifyDBClusterEndpoint_staticMembers :: Lens.Lens' ModifyDBClusterEndpoint (Prelude.Maybe [Prelude.Text])
+modifyDBClusterEndpoint_staticMembers = Lens.lens (\ModifyDBClusterEndpoint' {staticMembers} -> staticMembers) (\s@ModifyDBClusterEndpoint' {} a -> s {staticMembers = a} :: ModifyDBClusterEndpoint) Prelude.. Lens.mapping Lens.coerced
+
+-- | The identifier of the endpoint to modify. This parameter is stored as a
+-- lowercase string.
+modifyDBClusterEndpoint_dbClusterEndpointIdentifier :: Lens.Lens' ModifyDBClusterEndpoint Prelude.Text
+modifyDBClusterEndpoint_dbClusterEndpointIdentifier = Lens.lens (\ModifyDBClusterEndpoint' {dbClusterEndpointIdentifier} -> dbClusterEndpointIdentifier) (\s@ModifyDBClusterEndpoint' {} a -> s {dbClusterEndpointIdentifier = a} :: ModifyDBClusterEndpoint)
+
+instance Core.AWSRequest ModifyDBClusterEndpoint where
+  type
+    AWSResponse ModifyDBClusterEndpoint =
+      ModifyDBClusterEndpointResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveXMLWrapper
+      "ModifyDBClusterEndpointResult"
+      ( \s h x ->
+          ModifyDBClusterEndpointResponse'
+            Prelude.<$> (x Data..@? "CustomEndpointType")
+            Prelude.<*> (x Data..@? "DBClusterEndpointArn")
+            Prelude.<*> (x Data..@? "DBClusterEndpointIdentifier")
+            Prelude.<*> (x Data..@? "DBClusterEndpointResourceIdentifier")
+            Prelude.<*> (x Data..@? "DBClusterIdentifier")
+            Prelude.<*> (x Data..@? "Endpoint")
+            Prelude.<*> (x Data..@? "EndpointType")
+            Prelude.<*> ( x
+                            Data..@? "ExcludedMembers"
+                            Core..!@ Prelude.mempty
+                            Prelude.>>= Core.may (Data.parseXMLList "member")
+                        )
+            Prelude.<*> ( x
+                            Data..@? "StaticMembers"
+                            Core..!@ Prelude.mempty
+                            Prelude.>>= Core.may (Data.parseXMLList "member")
+                        )
+            Prelude.<*> (x Data..@? "Status")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ModifyDBClusterEndpoint where
+  hashWithSalt _salt ModifyDBClusterEndpoint' {..} =
+    _salt
+      `Prelude.hashWithSalt` endpointType
+      `Prelude.hashWithSalt` excludedMembers
+      `Prelude.hashWithSalt` staticMembers
+      `Prelude.hashWithSalt` dbClusterEndpointIdentifier
+
+instance Prelude.NFData ModifyDBClusterEndpoint where
+  rnf ModifyDBClusterEndpoint' {..} =
+    Prelude.rnf endpointType
+      `Prelude.seq` Prelude.rnf excludedMembers
+      `Prelude.seq` Prelude.rnf staticMembers
+      `Prelude.seq` Prelude.rnf dbClusterEndpointIdentifier
+
+instance Data.ToHeaders ModifyDBClusterEndpoint where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath ModifyDBClusterEndpoint where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ModifyDBClusterEndpoint where
+  toQuery ModifyDBClusterEndpoint' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ("ModifyDBClusterEndpoint" :: Prelude.ByteString),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "EndpointType" Data.=: endpointType,
+        "ExcludedMembers"
+          Data.=: Data.toQuery
+            ( Data.toQueryList "member"
+                Prelude.<$> excludedMembers
+            ),
+        "StaticMembers"
+          Data.=: Data.toQuery
+            ( Data.toQueryList "member"
+                Prelude.<$> staticMembers
+            ),
+        "DBClusterEndpointIdentifier"
+          Data.=: dbClusterEndpointIdentifier
+      ]
+
+-- | This data type represents the information you need to connect to an
+-- Amazon Neptune DB cluster. This data type is used as a response element
+-- in the following actions:
+--
+-- -   @CreateDBClusterEndpoint@
+--
+-- -   @DescribeDBClusterEndpoints@
+--
+-- -   @ModifyDBClusterEndpoint@
+--
+-- -   @DeleteDBClusterEndpoint@
+--
+-- For the data structure that represents Amazon RDS DB instance endpoints,
+-- see @Endpoint@.
+--
+-- /See:/ 'newModifyDBClusterEndpointResponse' smart constructor.
+data ModifyDBClusterEndpointResponse = ModifyDBClusterEndpointResponse'
+  { -- | The type associated with a custom endpoint. One of: @READER@, @WRITER@,
+    -- @ANY@.
+    customEndpointType :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) for the endpoint.
+    dbClusterEndpointArn :: Prelude.Maybe Prelude.Text,
+    -- | The identifier associated with the endpoint. This parameter is stored as
+    -- a lowercase string.
+    dbClusterEndpointIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | A unique system-generated identifier for an endpoint. It remains the
+    -- same for the whole life of the endpoint.
+    dbClusterEndpointResourceIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The DB cluster identifier of the DB cluster associated with the
+    -- endpoint. This parameter is stored as a lowercase string.
+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The DNS address of the endpoint.
+    endpoint :: Prelude.Maybe Prelude.Text,
+    -- | The type of the endpoint. One of: @READER@, @WRITER@, @CUSTOM@.
+    endpointType :: Prelude.Maybe Prelude.Text,
+    -- | List of DB instance identifiers that aren\'t part of the custom endpoint
+    -- group. All other eligible instances are reachable through the custom
+    -- endpoint. Only relevant if the list of static members is empty.
+    excludedMembers :: Prelude.Maybe [Prelude.Text],
+    -- | List of DB instance identifiers that are part of the custom endpoint
+    -- group.
+    staticMembers :: Prelude.Maybe [Prelude.Text],
+    -- | The current status of the endpoint. One of: @creating@, @available@,
+    -- @deleting@, @inactive@, @modifying@. The @inactive@ state applies to an
+    -- endpoint that cannot be used for a certain kind of cluster, such as a
+    -- @writer@ endpoint for a read-only secondary cluster in a global
+    -- database.
+    status :: 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 'ModifyDBClusterEndpointResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'customEndpointType', 'modifyDBClusterEndpointResponse_customEndpointType' - The type associated with a custom endpoint. One of: @READER@, @WRITER@,
+-- @ANY@.
+--
+-- 'dbClusterEndpointArn', 'modifyDBClusterEndpointResponse_dbClusterEndpointArn' - The Amazon Resource Name (ARN) for the endpoint.
+--
+-- 'dbClusterEndpointIdentifier', 'modifyDBClusterEndpointResponse_dbClusterEndpointIdentifier' - The identifier associated with the endpoint. This parameter is stored as
+-- a lowercase string.
+--
+-- 'dbClusterEndpointResourceIdentifier', 'modifyDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier' - A unique system-generated identifier for an endpoint. It remains the
+-- same for the whole life of the endpoint.
+--
+-- 'dbClusterIdentifier', 'modifyDBClusterEndpointResponse_dbClusterIdentifier' - The DB cluster identifier of the DB cluster associated with the
+-- endpoint. This parameter is stored as a lowercase string.
+--
+-- 'endpoint', 'modifyDBClusterEndpointResponse_endpoint' - The DNS address of the endpoint.
+--
+-- 'endpointType', 'modifyDBClusterEndpointResponse_endpointType' - The type of the endpoint. One of: @READER@, @WRITER@, @CUSTOM@.
+--
+-- 'excludedMembers', 'modifyDBClusterEndpointResponse_excludedMembers' - List of DB instance identifiers that aren\'t part of the custom endpoint
+-- group. All other eligible instances are reachable through the custom
+-- endpoint. Only relevant if the list of static members is empty.
+--
+-- 'staticMembers', 'modifyDBClusterEndpointResponse_staticMembers' - List of DB instance identifiers that are part of the custom endpoint
+-- group.
+--
+-- 'status', 'modifyDBClusterEndpointResponse_status' - The current status of the endpoint. One of: @creating@, @available@,
+-- @deleting@, @inactive@, @modifying@. The @inactive@ state applies to an
+-- endpoint that cannot be used for a certain kind of cluster, such as a
+-- @writer@ endpoint for a read-only secondary cluster in a global
+-- database.
+--
+-- 'httpStatus', 'modifyDBClusterEndpointResponse_httpStatus' - The response's http status code.
+newModifyDBClusterEndpointResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ModifyDBClusterEndpointResponse
+newModifyDBClusterEndpointResponse pHttpStatus_ =
+  ModifyDBClusterEndpointResponse'
+    { customEndpointType =
+        Prelude.Nothing,
+      dbClusterEndpointArn = Prelude.Nothing,
+      dbClusterEndpointIdentifier =
+        Prelude.Nothing,
+      dbClusterEndpointResourceIdentifier =
+        Prelude.Nothing,
+      dbClusterIdentifier = Prelude.Nothing,
+      endpoint = Prelude.Nothing,
+      endpointType = Prelude.Nothing,
+      excludedMembers = Prelude.Nothing,
+      staticMembers = Prelude.Nothing,
+      status = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The type associated with a custom endpoint. One of: @READER@, @WRITER@,
+-- @ANY@.
+modifyDBClusterEndpointResponse_customEndpointType :: Lens.Lens' ModifyDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+modifyDBClusterEndpointResponse_customEndpointType = Lens.lens (\ModifyDBClusterEndpointResponse' {customEndpointType} -> customEndpointType) (\s@ModifyDBClusterEndpointResponse' {} a -> s {customEndpointType = a} :: ModifyDBClusterEndpointResponse)
+
+-- | The Amazon Resource Name (ARN) for the endpoint.
+modifyDBClusterEndpointResponse_dbClusterEndpointArn :: Lens.Lens' ModifyDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+modifyDBClusterEndpointResponse_dbClusterEndpointArn = Lens.lens (\ModifyDBClusterEndpointResponse' {dbClusterEndpointArn} -> dbClusterEndpointArn) (\s@ModifyDBClusterEndpointResponse' {} a -> s {dbClusterEndpointArn = a} :: ModifyDBClusterEndpointResponse)
+
+-- | The identifier associated with the endpoint. This parameter is stored as
+-- a lowercase string.
+modifyDBClusterEndpointResponse_dbClusterEndpointIdentifier :: Lens.Lens' ModifyDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+modifyDBClusterEndpointResponse_dbClusterEndpointIdentifier = Lens.lens (\ModifyDBClusterEndpointResponse' {dbClusterEndpointIdentifier} -> dbClusterEndpointIdentifier) (\s@ModifyDBClusterEndpointResponse' {} a -> s {dbClusterEndpointIdentifier = a} :: ModifyDBClusterEndpointResponse)
+
+-- | A unique system-generated identifier for an endpoint. It remains the
+-- same for the whole life of the endpoint.
+modifyDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier :: Lens.Lens' ModifyDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+modifyDBClusterEndpointResponse_dbClusterEndpointResourceIdentifier = Lens.lens (\ModifyDBClusterEndpointResponse' {dbClusterEndpointResourceIdentifier} -> dbClusterEndpointResourceIdentifier) (\s@ModifyDBClusterEndpointResponse' {} a -> s {dbClusterEndpointResourceIdentifier = a} :: ModifyDBClusterEndpointResponse)
+
+-- | The DB cluster identifier of the DB cluster associated with the
+-- endpoint. This parameter is stored as a lowercase string.
+modifyDBClusterEndpointResponse_dbClusterIdentifier :: Lens.Lens' ModifyDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+modifyDBClusterEndpointResponse_dbClusterIdentifier = Lens.lens (\ModifyDBClusterEndpointResponse' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@ModifyDBClusterEndpointResponse' {} a -> s {dbClusterIdentifier = a} :: ModifyDBClusterEndpointResponse)
+
+-- | The DNS address of the endpoint.
+modifyDBClusterEndpointResponse_endpoint :: Lens.Lens' ModifyDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+modifyDBClusterEndpointResponse_endpoint = Lens.lens (\ModifyDBClusterEndpointResponse' {endpoint} -> endpoint) (\s@ModifyDBClusterEndpointResponse' {} a -> s {endpoint = a} :: ModifyDBClusterEndpointResponse)
+
+-- | The type of the endpoint. One of: @READER@, @WRITER@, @CUSTOM@.
+modifyDBClusterEndpointResponse_endpointType :: Lens.Lens' ModifyDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+modifyDBClusterEndpointResponse_endpointType = Lens.lens (\ModifyDBClusterEndpointResponse' {endpointType} -> endpointType) (\s@ModifyDBClusterEndpointResponse' {} a -> s {endpointType = a} :: ModifyDBClusterEndpointResponse)
+
+-- | List of DB instance identifiers that aren\'t part of the custom endpoint
+-- group. All other eligible instances are reachable through the custom
+-- endpoint. Only relevant if the list of static members is empty.
+modifyDBClusterEndpointResponse_excludedMembers :: Lens.Lens' ModifyDBClusterEndpointResponse (Prelude.Maybe [Prelude.Text])
+modifyDBClusterEndpointResponse_excludedMembers = Lens.lens (\ModifyDBClusterEndpointResponse' {excludedMembers} -> excludedMembers) (\s@ModifyDBClusterEndpointResponse' {} a -> s {excludedMembers = a} :: ModifyDBClusterEndpointResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | List of DB instance identifiers that are part of the custom endpoint
+-- group.
+modifyDBClusterEndpointResponse_staticMembers :: Lens.Lens' ModifyDBClusterEndpointResponse (Prelude.Maybe [Prelude.Text])
+modifyDBClusterEndpointResponse_staticMembers = Lens.lens (\ModifyDBClusterEndpointResponse' {staticMembers} -> staticMembers) (\s@ModifyDBClusterEndpointResponse' {} a -> s {staticMembers = a} :: ModifyDBClusterEndpointResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The current status of the endpoint. One of: @creating@, @available@,
+-- @deleting@, @inactive@, @modifying@. The @inactive@ state applies to an
+-- endpoint that cannot be used for a certain kind of cluster, such as a
+-- @writer@ endpoint for a read-only secondary cluster in a global
+-- database.
+modifyDBClusterEndpointResponse_status :: Lens.Lens' ModifyDBClusterEndpointResponse (Prelude.Maybe Prelude.Text)
+modifyDBClusterEndpointResponse_status = Lens.lens (\ModifyDBClusterEndpointResponse' {status} -> status) (\s@ModifyDBClusterEndpointResponse' {} a -> s {status = a} :: ModifyDBClusterEndpointResponse)
+
+-- | The response's http status code.
+modifyDBClusterEndpointResponse_httpStatus :: Lens.Lens' ModifyDBClusterEndpointResponse Prelude.Int
+modifyDBClusterEndpointResponse_httpStatus = Lens.lens (\ModifyDBClusterEndpointResponse' {httpStatus} -> httpStatus) (\s@ModifyDBClusterEndpointResponse' {} a -> s {httpStatus = a} :: ModifyDBClusterEndpointResponse)
+
+instance
+  Prelude.NFData
+    ModifyDBClusterEndpointResponse
+  where
+  rnf ModifyDBClusterEndpointResponse' {..} =
+    Prelude.rnf customEndpointType
+      `Prelude.seq` Prelude.rnf dbClusterEndpointArn
+      `Prelude.seq` Prelude.rnf dbClusterEndpointIdentifier
+      `Prelude.seq` Prelude.rnf dbClusterEndpointResourceIdentifier
+      `Prelude.seq` Prelude.rnf dbClusterIdentifier
+      `Prelude.seq` Prelude.rnf endpoint
+      `Prelude.seq` Prelude.rnf endpointType
+      `Prelude.seq` Prelude.rnf excludedMembers
+      `Prelude.seq` Prelude.rnf staticMembers
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/Neptune/ModifyDBClusterParameterGroup.hs b/gen/Amazonka/Neptune/ModifyDBClusterParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/ModifyDBClusterParameterGroup.hs
@@ -0,0 +1,156 @@
+{-# 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.Neptune.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 DB 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 without failover to the DB cluster
+-- associated with the parameter group before the change can take effect.
+--
+-- After you create a DB cluster parameter group, you should wait at least
+-- 5 minutes before creating your first DB cluster that uses that DB
+-- cluster parameter group as the default parameter group. This allows
+-- Amazon Neptune to fully complete the create action before the parameter
+-- group is used as the default for a new DB cluster. This is especially
+-- important for parameters that are critical when creating the default
+-- database for a DB cluster, such as the character set for the default
+-- database defined by the @character_set_database@ parameter. You can use
+-- the /Parameter Groups/ option of the Amazon Neptune console or the
+-- DescribeDBClusterParameters command to verify that your DB cluster
+-- parameter group has been created or modified.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newModifyDBClusterParameterGroup' smart constructor.
+data ModifyDBClusterParameterGroup = ModifyDBClusterParameterGroup'
+  { -- | The name of the DB cluster parameter group to modify.
+    dbClusterParameterGroupName :: Prelude.Text,
+    -- | A list of parameters in the DB 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 DB cluster parameter group to modify.
+--
+-- 'parameters', 'modifyDBClusterParameterGroup_parameters' - A list of parameters in the DB cluster parameter group to modify.
+newModifyDBClusterParameterGroup ::
+  -- | 'dbClusterParameterGroupName'
+  Prelude.Text ->
+  ModifyDBClusterParameterGroup
+newModifyDBClusterParameterGroup
+  pDBClusterParameterGroupName_ =
+    ModifyDBClusterParameterGroup'
+      { dbClusterParameterGroupName =
+          pDBClusterParameterGroupName_,
+        parameters = Prelude.mempty
+      }
+
+-- | The name of the DB 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 DB 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
+      ]
diff --git a/gen/Amazonka/Neptune/ModifyDBClusterSnapshotAttribute.hs b/gen/Amazonka/Neptune/ModifyDBClusterSnapshotAttribute.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/ModifyDBClusterSnapshotAttribute.hs
@@ -0,0 +1,315 @@
+{-# 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.Neptune.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 DB cluster snapshot.
+--
+-- To share a manual DB cluster snapshot with other Amazon accounts,
+-- specify @restore@ as the @AttributeName@ and use the @ValuesToAdd@
+-- parameter to add a list of IDs of the Amazon accounts that are
+-- authorized to restore the manual DB cluster snapshot. Use the value
+-- @all@ to make the manual DB cluster snapshot public, which means that it
+-- can be copied or restored by all Amazon accounts. Do not add the @all@
+-- value for any manual DB cluster snapshots that contain private
+-- information that you don\'t want available to all Amazon accounts. If a
+-- manual DB cluster snapshot is encrypted, it can be shared, but only by
+-- specifying a list of authorized Amazon account IDs for the @ValuesToAdd@
+-- parameter. You can\'t use @all@ as a value for that parameter in this
+-- case.
+--
+-- To view which Amazon accounts have access to copy or restore a manual DB
+-- cluster snapshot, or whether a manual DB cluster snapshot public or
+-- private, use the DescribeDBClusterSnapshotAttributes API action.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newModifyDBClusterSnapshotAttribute' smart constructor.
+data ModifyDBClusterSnapshotAttribute = ModifyDBClusterSnapshotAttribute'
+  { -- | A list of DB cluster snapshot attributes to add to the attribute
+    -- specified by @AttributeName@.
+    --
+    -- To authorize other Amazon accounts to copy or restore a manual DB
+    -- cluster snapshot, set this list to include one or more Amazon account
+    -- IDs, or @all@ to make the manual DB cluster snapshot restorable by any
+    -- Amazon account. Do not add the @all@ value for any manual DB cluster
+    -- snapshots that contain private information that you don\'t want
+    -- available to all Amazon accounts.
+    valuesToAdd :: Prelude.Maybe [Prelude.Text],
+    -- | A list of DB cluster snapshot attributes to remove from the attribute
+    -- specified by @AttributeName@.
+    --
+    -- To remove authorization for other Amazon accounts to copy or restore a
+    -- manual DB cluster snapshot, set this list to include one or more Amazon
+    -- account identifiers, or @all@ to remove authorization for any Amazon
+    -- account to copy or restore the DB cluster snapshot. If you specify
+    -- @all@, an Amazon account whose account ID is explicitly added to the
+    -- @restore@ attribute can still copy or restore a manual DB cluster
+    -- snapshot.
+    valuesToRemove :: Prelude.Maybe [Prelude.Text],
+    -- | The identifier for the DB cluster snapshot to modify the attributes for.
+    dbClusterSnapshotIdentifier :: Prelude.Text,
+    -- | The name of the DB cluster snapshot attribute to modify.
+    --
+    -- To manage authorization for other Amazon accounts to copy or restore a
+    -- manual DB 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 DB cluster snapshot attributes to add to the attribute
+-- specified by @AttributeName@.
+--
+-- To authorize other Amazon accounts to copy or restore a manual DB
+-- cluster snapshot, set this list to include one or more Amazon account
+-- IDs, or @all@ to make the manual DB cluster snapshot restorable by any
+-- Amazon account. Do not add the @all@ value for any manual DB cluster
+-- snapshots that contain private information that you don\'t want
+-- available to all Amazon accounts.
+--
+-- 'valuesToRemove', 'modifyDBClusterSnapshotAttribute_valuesToRemove' - A list of DB cluster snapshot attributes to remove from the attribute
+-- specified by @AttributeName@.
+--
+-- To remove authorization for other Amazon accounts to copy or restore a
+-- manual DB cluster snapshot, set this list to include one or more Amazon
+-- account identifiers, or @all@ to remove authorization for any Amazon
+-- account to copy or restore the DB cluster snapshot. If you specify
+-- @all@, an Amazon account whose account ID is explicitly added to the
+-- @restore@ attribute can still copy or restore a manual DB cluster
+-- snapshot.
+--
+-- 'dbClusterSnapshotIdentifier', 'modifyDBClusterSnapshotAttribute_dbClusterSnapshotIdentifier' - The identifier for the DB cluster snapshot to modify the attributes for.
+--
+-- 'attributeName', 'modifyDBClusterSnapshotAttribute_attributeName' - The name of the DB cluster snapshot attribute to modify.
+--
+-- To manage authorization for other Amazon accounts to copy or restore a
+-- manual DB 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 DB cluster snapshot attributes to add to the attribute
+-- specified by @AttributeName@.
+--
+-- To authorize other Amazon accounts to copy or restore a manual DB
+-- cluster snapshot, set this list to include one or more Amazon account
+-- IDs, or @all@ to make the manual DB cluster snapshot restorable by any
+-- Amazon account. Do not add the @all@ value for any manual DB cluster
+-- snapshots that contain private information that you don\'t want
+-- available to all Amazon 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 DB cluster snapshot attributes to remove from the attribute
+-- specified by @AttributeName@.
+--
+-- To remove authorization for other Amazon accounts to copy or restore a
+-- manual DB cluster snapshot, set this list to include one or more Amazon
+-- account identifiers, or @all@ to remove authorization for any Amazon
+-- account to copy or restore the DB cluster snapshot. If you specify
+-- @all@, an Amazon account whose account ID is explicitly added to the
+-- @restore@ attribute can still copy or restore a manual DB 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 DB 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 DB cluster snapshot attribute to modify.
+--
+-- To manage authorization for other Amazon accounts to copy or restore a
+-- manual DB 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
diff --git a/gen/Amazonka/Neptune/ModifyDBInstance.hs b/gen/Amazonka/Neptune/ModifyDBInstance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/ModifyDBInstance.hs
@@ -0,0 +1,1159 @@
+{-# 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.Neptune.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 a DB instance. You can change one or more database
+-- configuration parameters by specifying these parameters and the new
+-- values in the request. To learn what modifications you can make to your
+-- DB instance, call DescribeValidDBInstanceModifications before you call
+-- ModifyDBInstance.
+module Amazonka.Neptune.ModifyDBInstance
+  ( -- * Creating a Request
+    ModifyDBInstance (..),
+    newModifyDBInstance,
+
+    -- * Request Lenses
+    modifyDBInstance_allocatedStorage,
+    modifyDBInstance_allowMajorVersionUpgrade,
+    modifyDBInstance_applyImmediately,
+    modifyDBInstance_autoMinorVersionUpgrade,
+    modifyDBInstance_backupRetentionPeriod,
+    modifyDBInstance_cACertificateIdentifier,
+    modifyDBInstance_cloudwatchLogsExportConfiguration,
+    modifyDBInstance_copyTagsToSnapshot,
+    modifyDBInstance_dbInstanceClass,
+    modifyDBInstance_dbParameterGroupName,
+    modifyDBInstance_dbPortNumber,
+    modifyDBInstance_dbSecurityGroups,
+    modifyDBInstance_dbSubnetGroupName,
+    modifyDBInstance_deletionProtection,
+    modifyDBInstance_domain,
+    modifyDBInstance_domainIAMRoleName,
+    modifyDBInstance_enableIAMDatabaseAuthentication,
+    modifyDBInstance_enablePerformanceInsights,
+    modifyDBInstance_engineVersion,
+    modifyDBInstance_iops,
+    modifyDBInstance_licenseModel,
+    modifyDBInstance_masterUserPassword,
+    modifyDBInstance_monitoringInterval,
+    modifyDBInstance_monitoringRoleArn,
+    modifyDBInstance_multiAZ,
+    modifyDBInstance_newDBInstanceIdentifier,
+    modifyDBInstance_optionGroupName,
+    modifyDBInstance_performanceInsightsKMSKeyId,
+    modifyDBInstance_preferredBackupWindow,
+    modifyDBInstance_preferredMaintenanceWindow,
+    modifyDBInstance_promotionTier,
+    modifyDBInstance_publiclyAccessible,
+    modifyDBInstance_storageType,
+    modifyDBInstance_tdeCredentialArn,
+    modifyDBInstance_tdeCredentialPassword,
+    modifyDBInstance_vpcSecurityGroupIds,
+    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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newModifyDBInstance' smart constructor.
+data ModifyDBInstance = ModifyDBInstance'
+  { -- | Not supported by Neptune.
+    allocatedStorage :: Prelude.Maybe Prelude.Int,
+    -- | Indicates that major version upgrades are allowed. Changing this
+    -- parameter doesn\'t result in an outage and the change is asynchronously
+    -- applied as soon as possible.
+    allowMajorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
+    -- | 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 DB instance.
+    --
+    -- If this parameter is set to @false@, changes to the DB instance are
+    -- applied during the next maintenance window. Some parameter changes can
+    -- cause an outage and are applied on the next call to RebootDBInstance, or
+    -- the next failure reboot.
+    --
+    -- Default: @false@
+    applyImmediately :: Prelude.Maybe Prelude.Bool,
+    -- | Indicates that minor version upgrades are applied automatically to the
+    -- DB instance during the maintenance window. Changing this parameter
+    -- doesn\'t result in an outage except in the following case and the change
+    -- is asynchronously applied as soon as possible. An outage will result if
+    -- this parameter is set to @true@ during the maintenance window, and a
+    -- newer minor version is available, and Neptune has enabled auto patching
+    -- for that engine version.
+    autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
+    -- | Not applicable. The retention period for automated backups is managed by
+    -- the DB cluster. For more information, see ModifyDBCluster.
+    --
+    -- Default: Uses existing setting
+    backupRetentionPeriod :: Prelude.Maybe Prelude.Int,
+    -- | Indicates the certificate that needs to be associated with the instance.
+    cACertificateIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The configuration setting for the log types to be enabled for export to
+    -- CloudWatch Logs for a specific DB instance or DB cluster.
+    cloudwatchLogsExportConfiguration :: Prelude.Maybe CloudwatchLogsExportConfiguration,
+    -- | True to copy all tags from the DB instance to snapshots of the DB
+    -- instance, and otherwise false. The default is false.
+    copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,
+    -- | The new compute and memory capacity of the DB instance, for example,
+    -- @db.m4.large@. Not all DB instance classes are available in all Amazon
+    -- Regions.
+    --
+    -- If you modify the DB 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,
+    -- | The name of the DB parameter group to apply to the DB instance. Changing
+    -- this setting doesn\'t result in an outage. The parameter group name
+    -- itself is changed immediately, but the actual parameter changes are not
+    -- applied until you reboot the instance without failover. The db instance
+    -- will NOT be rebooted automatically and the parameter changes will NOT be
+    -- applied during the next maintenance window.
+    --
+    -- Default: Uses existing setting
+    --
+    -- Constraints: The DB parameter group must be in the same DB parameter
+    -- group family as this DB instance.
+    dbParameterGroupName :: Prelude.Maybe Prelude.Text,
+    -- | The port number on which the database accepts connections.
+    --
+    -- The value of the @DBPortNumber@ parameter must not match any of the port
+    -- values specified for options in the option group for the DB instance.
+    --
+    -- Your database will restart when you change the @DBPortNumber@ value
+    -- regardless of the value of the @ApplyImmediately@ parameter.
+    --
+    -- Default: @8182@
+    dbPortNumber :: Prelude.Maybe Prelude.Int,
+    -- | A list of DB security groups to authorize on this DB instance. Changing
+    -- this setting doesn\'t result in an outage and the change is
+    -- asynchronously applied as soon as possible.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, must match existing DBSecurityGroups.
+    dbSecurityGroups :: Prelude.Maybe [Prelude.Text],
+    -- | The new DB subnet group for the DB instance. You can use this parameter
+    -- to move your DB instance to a different VPC.
+    --
+    -- Changing the subnet group causes an outage during the change. The change
+    -- is applied during the next maintenance window, unless you specify @true@
+    -- for the @ApplyImmediately@ parameter.
+    --
+    -- Constraints: If supplied, must match the name of an existing
+    -- DBSubnetGroup.
+    --
+    -- Example: @mySubnetGroup@
+    dbSubnetGroupName :: Prelude.Maybe Prelude.Text,
+    -- | A value that indicates whether the DB instance has deletion protection
+    -- enabled. The database can\'t be deleted when deletion protection is
+    -- enabled. By default, deletion protection is disabled. See
+    -- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
+    deletionProtection :: Prelude.Maybe Prelude.Bool,
+    -- | Not supported.
+    domain :: Prelude.Maybe Prelude.Text,
+    -- | Not supported
+    domainIAMRoleName :: Prelude.Maybe Prelude.Text,
+    -- | True to enable mapping of Amazon Identity and Access Management (IAM)
+    -- accounts to database accounts, and otherwise false.
+    --
+    -- You can enable IAM database authentication for the following database
+    -- engines
+    --
+    -- Not applicable. Mapping Amazon IAM accounts to database accounts is
+    -- managed by the DB cluster. For more information, see ModifyDBCluster.
+    --
+    -- Default: @false@
+    enableIAMDatabaseAuthentication :: Prelude.Maybe Prelude.Bool,
+    -- | /(Not supported by Neptune)/
+    enablePerformanceInsights :: Prelude.Maybe Prelude.Bool,
+    -- | The version number of the database engine to upgrade to. Currently,
+    -- setting this parameter has no effect. To upgrade your database engine to
+    -- the most recent release, use the ApplyPendingMaintenanceAction API.
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | The new Provisioned IOPS (I\/O operations per second) value for the
+    -- instance.
+    --
+    -- Changing this setting doesn\'t result in an outage and the change is
+    -- applied during the next maintenance window unless the @ApplyImmediately@
+    -- parameter is set to @true@ for this request.
+    --
+    -- Default: Uses existing setting
+    iops :: Prelude.Maybe Prelude.Int,
+    -- | Not supported by Neptune.
+    licenseModel :: Prelude.Maybe Prelude.Text,
+    -- | Not supported by Neptune.
+    masterUserPassword :: Prelude.Maybe Prelude.Text,
+    -- | The interval, in seconds, between points when Enhanced Monitoring
+    -- metrics are collected for the DB instance. To disable collecting
+    -- Enhanced Monitoring metrics, specify 0. The default is 0.
+    --
+    -- If @MonitoringRoleArn@ is specified, then you must also set
+    -- @MonitoringInterval@ to a value other than 0.
+    --
+    -- Valid Values: @0, 1, 5, 10, 15, 30, 60@
+    monitoringInterval :: Prelude.Maybe Prelude.Int,
+    -- | The ARN for the IAM role that permits Neptune to send enhanced
+    -- monitoring metrics to Amazon CloudWatch Logs. For example,
+    -- @arn:aws:iam:123456789012:role\/emaccess@.
+    --
+    -- If @MonitoringInterval@ is set to a value other than 0, then you must
+    -- supply a @MonitoringRoleArn@ value.
+    monitoringRoleArn :: Prelude.Maybe Prelude.Text,
+    -- | Specifies if the DB instance is a Multi-AZ deployment. Changing this
+    -- parameter doesn\'t result in an outage and the change is applied during
+    -- the next maintenance window unless the @ApplyImmediately@ parameter is
+    -- set to @true@ for this request.
+    multiAZ :: Prelude.Maybe Prelude.Bool,
+    -- | The new DB instance identifier for the DB instance when renaming a DB
+    -- instance. When you change the DB instance identifier, an instance reboot
+    -- will occur immediately if you set @Apply Immediately@ to true, or will
+    -- occur during the next maintenance window if @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,
+    -- | /(Not supported by Neptune)/
+    optionGroupName :: Prelude.Maybe Prelude.Text,
+    -- | /(Not supported by Neptune)/
+    performanceInsightsKMSKeyId :: Prelude.Maybe Prelude.Text,
+    -- | The daily time range during which automated backups are created if
+    -- automated backups are enabled.
+    --
+    -- Not applicable. The daily time range for creating automated backups is
+    -- managed by the DB cluster. For more information, see ModifyDBCluster.
+    --
+    -- Constraints:
+    --
+    -- -   Must be in the format hh24:mi-hh24:mi
+    --
+    -- -   Must be in Universal Time Coordinated (UTC)
+    --
+    -- -   Must not conflict with the preferred maintenance window
+    --
+    -- -   Must be at least 30 minutes
+    preferredBackupWindow :: 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, then changing this parameter will cause a
+    -- reboot of the DB instance. If 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 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 a Read 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,
+    -- | This flag should no longer be used.
+    publiclyAccessible :: Prelude.Maybe Prelude.Bool,
+    -- | Not supported.
+    storageType :: Prelude.Maybe Prelude.Text,
+    -- | The ARN from the key store with which to associate the instance for TDE
+    -- encryption.
+    tdeCredentialArn :: Prelude.Maybe Prelude.Text,
+    -- | The password for the given ARN from the key store in order to access the
+    -- device.
+    tdeCredentialPassword :: Prelude.Maybe Prelude.Text,
+    -- | A list of EC2 VPC security groups to authorize on this DB instance. This
+    -- change is asynchronously applied as soon as possible.
+    --
+    -- Not applicable. The associated list of EC2 VPC security groups is
+    -- managed by the DB cluster. For more information, see ModifyDBCluster.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, must match existing VpcSecurityGroupIds.
+    vpcSecurityGroupIds :: Prelude.Maybe [Prelude.Text],
+    -- | The DB 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:
+--
+-- 'allocatedStorage', 'modifyDBInstance_allocatedStorage' - Not supported by Neptune.
+--
+-- 'allowMajorVersionUpgrade', 'modifyDBInstance_allowMajorVersionUpgrade' - Indicates that major version upgrades are allowed. Changing this
+-- parameter doesn\'t result in an outage and the change is asynchronously
+-- applied as soon as possible.
+--
+-- '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 DB instance.
+--
+-- If this parameter is set to @false@, changes to the DB instance are
+-- applied during the next maintenance window. Some parameter changes can
+-- cause an outage and are applied on the next call to RebootDBInstance, or
+-- the next failure reboot.
+--
+-- Default: @false@
+--
+-- 'autoMinorVersionUpgrade', 'modifyDBInstance_autoMinorVersionUpgrade' - Indicates that minor version upgrades are applied automatically to the
+-- DB instance during the maintenance window. Changing this parameter
+-- doesn\'t result in an outage except in the following case and the change
+-- is asynchronously applied as soon as possible. An outage will result if
+-- this parameter is set to @true@ during the maintenance window, and a
+-- newer minor version is available, and Neptune has enabled auto patching
+-- for that engine version.
+--
+-- 'backupRetentionPeriod', 'modifyDBInstance_backupRetentionPeriod' - Not applicable. The retention period for automated backups is managed by
+-- the DB cluster. For more information, see ModifyDBCluster.
+--
+-- Default: Uses existing setting
+--
+-- 'cACertificateIdentifier', 'modifyDBInstance_cACertificateIdentifier' - Indicates the certificate that needs to be associated with the instance.
+--
+-- 'cloudwatchLogsExportConfiguration', 'modifyDBInstance_cloudwatchLogsExportConfiguration' - The configuration setting for the log types to be enabled for export to
+-- CloudWatch Logs for a specific DB instance or DB cluster.
+--
+-- 'copyTagsToSnapshot', 'modifyDBInstance_copyTagsToSnapshot' - True to copy all tags from the DB instance to snapshots of the DB
+-- instance, and otherwise false. The default is false.
+--
+-- 'dbInstanceClass', 'modifyDBInstance_dbInstanceClass' - The new compute and memory capacity of the DB instance, for example,
+-- @db.m4.large@. Not all DB instance classes are available in all Amazon
+-- Regions.
+--
+-- If you modify the DB 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
+--
+-- 'dbParameterGroupName', 'modifyDBInstance_dbParameterGroupName' - The name of the DB parameter group to apply to the DB instance. Changing
+-- this setting doesn\'t result in an outage. The parameter group name
+-- itself is changed immediately, but the actual parameter changes are not
+-- applied until you reboot the instance without failover. The db instance
+-- will NOT be rebooted automatically and the parameter changes will NOT be
+-- applied during the next maintenance window.
+--
+-- Default: Uses existing setting
+--
+-- Constraints: The DB parameter group must be in the same DB parameter
+-- group family as this DB instance.
+--
+-- 'dbPortNumber', 'modifyDBInstance_dbPortNumber' - The port number on which the database accepts connections.
+--
+-- The value of the @DBPortNumber@ parameter must not match any of the port
+-- values specified for options in the option group for the DB instance.
+--
+-- Your database will restart when you change the @DBPortNumber@ value
+-- regardless of the value of the @ApplyImmediately@ parameter.
+--
+-- Default: @8182@
+--
+-- 'dbSecurityGroups', 'modifyDBInstance_dbSecurityGroups' - A list of DB security groups to authorize on this DB instance. Changing
+-- this setting doesn\'t result in an outage and the change is
+-- asynchronously applied as soon as possible.
+--
+-- Constraints:
+--
+-- -   If supplied, must match existing DBSecurityGroups.
+--
+-- 'dbSubnetGroupName', 'modifyDBInstance_dbSubnetGroupName' - The new DB subnet group for the DB instance. You can use this parameter
+-- to move your DB instance to a different VPC.
+--
+-- Changing the subnet group causes an outage during the change. The change
+-- is applied during the next maintenance window, unless you specify @true@
+-- for the @ApplyImmediately@ parameter.
+--
+-- Constraints: If supplied, must match the name of an existing
+-- DBSubnetGroup.
+--
+-- Example: @mySubnetGroup@
+--
+-- 'deletionProtection', 'modifyDBInstance_deletionProtection' - A value that indicates whether the DB instance has deletion protection
+-- enabled. The database can\'t be deleted when deletion protection is
+-- enabled. By default, deletion protection is disabled. See
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
+--
+-- 'domain', 'modifyDBInstance_domain' - Not supported.
+--
+-- 'domainIAMRoleName', 'modifyDBInstance_domainIAMRoleName' - Not supported
+--
+-- 'enableIAMDatabaseAuthentication', 'modifyDBInstance_enableIAMDatabaseAuthentication' - True to enable mapping of Amazon Identity and Access Management (IAM)
+-- accounts to database accounts, and otherwise false.
+--
+-- You can enable IAM database authentication for the following database
+-- engines
+--
+-- Not applicable. Mapping Amazon IAM accounts to database accounts is
+-- managed by the DB cluster. For more information, see ModifyDBCluster.
+--
+-- Default: @false@
+--
+-- 'enablePerformanceInsights', 'modifyDBInstance_enablePerformanceInsights' - /(Not supported by Neptune)/
+--
+-- 'engineVersion', 'modifyDBInstance_engineVersion' - The version number of the database engine to upgrade to. Currently,
+-- setting this parameter has no effect. To upgrade your database engine to
+-- the most recent release, use the ApplyPendingMaintenanceAction API.
+--
+-- 'iops', 'modifyDBInstance_iops' - The new Provisioned IOPS (I\/O operations per second) value for the
+-- instance.
+--
+-- Changing this setting doesn\'t result in an outage and the change is
+-- applied during the next maintenance window unless the @ApplyImmediately@
+-- parameter is set to @true@ for this request.
+--
+-- Default: Uses existing setting
+--
+-- 'licenseModel', 'modifyDBInstance_licenseModel' - Not supported by Neptune.
+--
+-- 'masterUserPassword', 'modifyDBInstance_masterUserPassword' - Not supported by Neptune.
+--
+-- 'monitoringInterval', 'modifyDBInstance_monitoringInterval' - The interval, in seconds, between points when Enhanced Monitoring
+-- metrics are collected for the DB instance. To disable collecting
+-- Enhanced Monitoring metrics, specify 0. The default is 0.
+--
+-- If @MonitoringRoleArn@ is specified, then you must also set
+-- @MonitoringInterval@ to a value other than 0.
+--
+-- Valid Values: @0, 1, 5, 10, 15, 30, 60@
+--
+-- 'monitoringRoleArn', 'modifyDBInstance_monitoringRoleArn' - The ARN for the IAM role that permits Neptune to send enhanced
+-- monitoring metrics to Amazon CloudWatch Logs. For example,
+-- @arn:aws:iam:123456789012:role\/emaccess@.
+--
+-- If @MonitoringInterval@ is set to a value other than 0, then you must
+-- supply a @MonitoringRoleArn@ value.
+--
+-- 'multiAZ', 'modifyDBInstance_multiAZ' - Specifies if the DB instance is a Multi-AZ deployment. Changing this
+-- parameter doesn\'t result in an outage and the change is applied during
+-- the next maintenance window unless the @ApplyImmediately@ parameter is
+-- set to @true@ for this request.
+--
+-- 'newDBInstanceIdentifier'', 'modifyDBInstance_newDBInstanceIdentifier' - The new DB instance identifier for the DB instance when renaming a DB
+-- instance. When you change the DB instance identifier, an instance reboot
+-- will occur immediately if you set @Apply Immediately@ to true, or will
+-- occur during the next maintenance window if @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@
+--
+-- 'optionGroupName', 'modifyDBInstance_optionGroupName' - /(Not supported by Neptune)/
+--
+-- 'performanceInsightsKMSKeyId', 'modifyDBInstance_performanceInsightsKMSKeyId' - /(Not supported by Neptune)/
+--
+-- 'preferredBackupWindow', 'modifyDBInstance_preferredBackupWindow' - The daily time range during which automated backups are created if
+-- automated backups are enabled.
+--
+-- Not applicable. The daily time range for creating automated backups is
+-- managed by the DB cluster. For more information, see ModifyDBCluster.
+--
+-- Constraints:
+--
+-- -   Must be in the format hh24:mi-hh24:mi
+--
+-- -   Must be in Universal Time Coordinated (UTC)
+--
+-- -   Must not conflict with the preferred maintenance window
+--
+-- -   Must be at least 30 minutes
+--
+-- '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, then changing this parameter will cause a
+-- reboot of the DB instance. If 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 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 a Read Replica is promoted to
+-- the primary instance after a failure of the existing primary instance.
+--
+-- Default: 1
+--
+-- Valid Values: 0 - 15
+--
+-- 'publiclyAccessible', 'modifyDBInstance_publiclyAccessible' - This flag should no longer be used.
+--
+-- 'storageType', 'modifyDBInstance_storageType' - Not supported.
+--
+-- 'tdeCredentialArn', 'modifyDBInstance_tdeCredentialArn' - The ARN from the key store with which to associate the instance for TDE
+-- encryption.
+--
+-- 'tdeCredentialPassword', 'modifyDBInstance_tdeCredentialPassword' - The password for the given ARN from the key store in order to access the
+-- device.
+--
+-- 'vpcSecurityGroupIds', 'modifyDBInstance_vpcSecurityGroupIds' - A list of EC2 VPC security groups to authorize on this DB instance. This
+-- change is asynchronously applied as soon as possible.
+--
+-- Not applicable. The associated list of EC2 VPC security groups is
+-- managed by the DB cluster. For more information, see ModifyDBCluster.
+--
+-- Constraints:
+--
+-- -   If supplied, must match existing VpcSecurityGroupIds.
+--
+-- 'dbInstanceIdentifier', 'modifyDBInstance_dbInstanceIdentifier' - The DB 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'
+    { allocatedStorage =
+        Prelude.Nothing,
+      allowMajorVersionUpgrade = Prelude.Nothing,
+      applyImmediately = Prelude.Nothing,
+      autoMinorVersionUpgrade = Prelude.Nothing,
+      backupRetentionPeriod = Prelude.Nothing,
+      cACertificateIdentifier = Prelude.Nothing,
+      cloudwatchLogsExportConfiguration = Prelude.Nothing,
+      copyTagsToSnapshot = Prelude.Nothing,
+      dbInstanceClass = Prelude.Nothing,
+      dbParameterGroupName = Prelude.Nothing,
+      dbPortNumber = Prelude.Nothing,
+      dbSecurityGroups = Prelude.Nothing,
+      dbSubnetGroupName = Prelude.Nothing,
+      deletionProtection = Prelude.Nothing,
+      domain = Prelude.Nothing,
+      domainIAMRoleName = Prelude.Nothing,
+      enableIAMDatabaseAuthentication = Prelude.Nothing,
+      enablePerformanceInsights = Prelude.Nothing,
+      engineVersion = Prelude.Nothing,
+      iops = Prelude.Nothing,
+      licenseModel = Prelude.Nothing,
+      masterUserPassword = Prelude.Nothing,
+      monitoringInterval = Prelude.Nothing,
+      monitoringRoleArn = Prelude.Nothing,
+      multiAZ = Prelude.Nothing,
+      newDBInstanceIdentifier' = Prelude.Nothing,
+      optionGroupName = Prelude.Nothing,
+      performanceInsightsKMSKeyId = Prelude.Nothing,
+      preferredBackupWindow = Prelude.Nothing,
+      preferredMaintenanceWindow = Prelude.Nothing,
+      promotionTier = Prelude.Nothing,
+      publiclyAccessible = Prelude.Nothing,
+      storageType = Prelude.Nothing,
+      tdeCredentialArn = Prelude.Nothing,
+      tdeCredentialPassword = Prelude.Nothing,
+      vpcSecurityGroupIds = Prelude.Nothing,
+      dbInstanceIdentifier = pDBInstanceIdentifier_
+    }
+
+-- | Not supported by Neptune.
+modifyDBInstance_allocatedStorage :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
+modifyDBInstance_allocatedStorage = Lens.lens (\ModifyDBInstance' {allocatedStorage} -> allocatedStorage) (\s@ModifyDBInstance' {} a -> s {allocatedStorage = a} :: ModifyDBInstance)
+
+-- | Indicates that major version upgrades are allowed. Changing this
+-- parameter doesn\'t result in an outage and the change is asynchronously
+-- applied as soon as possible.
+modifyDBInstance_allowMajorVersionUpgrade :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
+modifyDBInstance_allowMajorVersionUpgrade = Lens.lens (\ModifyDBInstance' {allowMajorVersionUpgrade} -> allowMajorVersionUpgrade) (\s@ModifyDBInstance' {} a -> s {allowMajorVersionUpgrade = a} :: 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 DB instance.
+--
+-- If this parameter is set to @false@, changes to the DB instance are
+-- applied during the next maintenance window. Some parameter changes can
+-- cause an outage and are applied on the next call to RebootDBInstance, or
+-- the next failure 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)
+
+-- | Indicates that minor version upgrades are applied automatically to the
+-- DB instance during the maintenance window. Changing this parameter
+-- doesn\'t result in an outage except in the following case and the change
+-- is asynchronously applied as soon as possible. An outage will result if
+-- this parameter is set to @true@ during the maintenance window, and a
+-- newer minor version is available, and Neptune has enabled auto patching
+-- for that engine version.
+modifyDBInstance_autoMinorVersionUpgrade :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
+modifyDBInstance_autoMinorVersionUpgrade = Lens.lens (\ModifyDBInstance' {autoMinorVersionUpgrade} -> autoMinorVersionUpgrade) (\s@ModifyDBInstance' {} a -> s {autoMinorVersionUpgrade = a} :: ModifyDBInstance)
+
+-- | Not applicable. The retention period for automated backups is managed by
+-- the DB cluster. For more information, see ModifyDBCluster.
+--
+-- Default: Uses existing setting
+modifyDBInstance_backupRetentionPeriod :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
+modifyDBInstance_backupRetentionPeriod = Lens.lens (\ModifyDBInstance' {backupRetentionPeriod} -> backupRetentionPeriod) (\s@ModifyDBInstance' {} a -> s {backupRetentionPeriod = 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)
+
+-- | The configuration setting for the log types to be enabled for export to
+-- CloudWatch Logs for a specific DB instance or DB cluster.
+modifyDBInstance_cloudwatchLogsExportConfiguration :: Lens.Lens' ModifyDBInstance (Prelude.Maybe CloudwatchLogsExportConfiguration)
+modifyDBInstance_cloudwatchLogsExportConfiguration = Lens.lens (\ModifyDBInstance' {cloudwatchLogsExportConfiguration} -> cloudwatchLogsExportConfiguration) (\s@ModifyDBInstance' {} a -> s {cloudwatchLogsExportConfiguration = a} :: ModifyDBInstance)
+
+-- | True to copy all tags from the DB instance to snapshots of the DB
+-- instance, and otherwise false. The default is false.
+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 DB instance, for example,
+-- @db.m4.large@. Not all DB instance classes are available in all Amazon
+-- Regions.
+--
+-- If you modify the DB 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)
+
+-- | The name of the DB parameter group to apply to the DB instance. Changing
+-- this setting doesn\'t result in an outage. The parameter group name
+-- itself is changed immediately, but the actual parameter changes are not
+-- applied until you reboot the instance without failover. The db instance
+-- will NOT be rebooted automatically and the parameter changes will NOT be
+-- applied during the next maintenance window.
+--
+-- Default: Uses existing setting
+--
+-- Constraints: The DB parameter group must be in the same DB parameter
+-- group family as this DB instance.
+modifyDBInstance_dbParameterGroupName :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
+modifyDBInstance_dbParameterGroupName = Lens.lens (\ModifyDBInstance' {dbParameterGroupName} -> dbParameterGroupName) (\s@ModifyDBInstance' {} a -> s {dbParameterGroupName = a} :: ModifyDBInstance)
+
+-- | The port number on which the database accepts connections.
+--
+-- The value of the @DBPortNumber@ parameter must not match any of the port
+-- values specified for options in the option group for the DB instance.
+--
+-- Your database will restart when you change the @DBPortNumber@ value
+-- regardless of the value of the @ApplyImmediately@ parameter.
+--
+-- Default: @8182@
+modifyDBInstance_dbPortNumber :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
+modifyDBInstance_dbPortNumber = Lens.lens (\ModifyDBInstance' {dbPortNumber} -> dbPortNumber) (\s@ModifyDBInstance' {} a -> s {dbPortNumber = a} :: ModifyDBInstance)
+
+-- | A list of DB security groups to authorize on this DB instance. Changing
+-- this setting doesn\'t result in an outage and the change is
+-- asynchronously applied as soon as possible.
+--
+-- Constraints:
+--
+-- -   If supplied, must match existing DBSecurityGroups.
+modifyDBInstance_dbSecurityGroups :: Lens.Lens' ModifyDBInstance (Prelude.Maybe [Prelude.Text])
+modifyDBInstance_dbSecurityGroups = Lens.lens (\ModifyDBInstance' {dbSecurityGroups} -> dbSecurityGroups) (\s@ModifyDBInstance' {} a -> s {dbSecurityGroups = a} :: ModifyDBInstance) Prelude.. Lens.mapping Lens.coerced
+
+-- | The new DB subnet group for the DB instance. You can use this parameter
+-- to move your DB instance to a different VPC.
+--
+-- Changing the subnet group causes an outage during the change. The change
+-- is applied during the next maintenance window, unless you specify @true@
+-- for the @ApplyImmediately@ parameter.
+--
+-- Constraints: If supplied, must match the name of an existing
+-- DBSubnetGroup.
+--
+-- Example: @mySubnetGroup@
+modifyDBInstance_dbSubnetGroupName :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
+modifyDBInstance_dbSubnetGroupName = Lens.lens (\ModifyDBInstance' {dbSubnetGroupName} -> dbSubnetGroupName) (\s@ModifyDBInstance' {} a -> s {dbSubnetGroupName = a} :: ModifyDBInstance)
+
+-- | A value that indicates whether the DB instance has deletion protection
+-- enabled. The database can\'t be deleted when deletion protection is
+-- enabled. By default, deletion protection is disabled. See
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
+modifyDBInstance_deletionProtection :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
+modifyDBInstance_deletionProtection = Lens.lens (\ModifyDBInstance' {deletionProtection} -> deletionProtection) (\s@ModifyDBInstance' {} a -> s {deletionProtection = a} :: ModifyDBInstance)
+
+-- | Not supported.
+modifyDBInstance_domain :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
+modifyDBInstance_domain = Lens.lens (\ModifyDBInstance' {domain} -> domain) (\s@ModifyDBInstance' {} a -> s {domain = a} :: ModifyDBInstance)
+
+-- | Not supported
+modifyDBInstance_domainIAMRoleName :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
+modifyDBInstance_domainIAMRoleName = Lens.lens (\ModifyDBInstance' {domainIAMRoleName} -> domainIAMRoleName) (\s@ModifyDBInstance' {} a -> s {domainIAMRoleName = a} :: ModifyDBInstance)
+
+-- | True to enable mapping of Amazon Identity and Access Management (IAM)
+-- accounts to database accounts, and otherwise false.
+--
+-- You can enable IAM database authentication for the following database
+-- engines
+--
+-- Not applicable. Mapping Amazon IAM accounts to database accounts is
+-- managed by the DB cluster. For more information, see ModifyDBCluster.
+--
+-- Default: @false@
+modifyDBInstance_enableIAMDatabaseAuthentication :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
+modifyDBInstance_enableIAMDatabaseAuthentication = Lens.lens (\ModifyDBInstance' {enableIAMDatabaseAuthentication} -> enableIAMDatabaseAuthentication) (\s@ModifyDBInstance' {} a -> s {enableIAMDatabaseAuthentication = a} :: ModifyDBInstance)
+
+-- | /(Not supported by Neptune)/
+modifyDBInstance_enablePerformanceInsights :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
+modifyDBInstance_enablePerformanceInsights = Lens.lens (\ModifyDBInstance' {enablePerformanceInsights} -> enablePerformanceInsights) (\s@ModifyDBInstance' {} a -> s {enablePerformanceInsights = a} :: ModifyDBInstance)
+
+-- | The version number of the database engine to upgrade to. Currently,
+-- setting this parameter has no effect. To upgrade your database engine to
+-- the most recent release, use the ApplyPendingMaintenanceAction API.
+modifyDBInstance_engineVersion :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
+modifyDBInstance_engineVersion = Lens.lens (\ModifyDBInstance' {engineVersion} -> engineVersion) (\s@ModifyDBInstance' {} a -> s {engineVersion = a} :: ModifyDBInstance)
+
+-- | The new Provisioned IOPS (I\/O operations per second) value for the
+-- instance.
+--
+-- Changing this setting doesn\'t result in an outage and the change is
+-- applied during the next maintenance window unless the @ApplyImmediately@
+-- parameter is set to @true@ for this request.
+--
+-- Default: Uses existing setting
+modifyDBInstance_iops :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
+modifyDBInstance_iops = Lens.lens (\ModifyDBInstance' {iops} -> iops) (\s@ModifyDBInstance' {} a -> s {iops = a} :: ModifyDBInstance)
+
+-- | Not supported by Neptune.
+modifyDBInstance_licenseModel :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
+modifyDBInstance_licenseModel = Lens.lens (\ModifyDBInstance' {licenseModel} -> licenseModel) (\s@ModifyDBInstance' {} a -> s {licenseModel = a} :: ModifyDBInstance)
+
+-- | Not supported by Neptune.
+modifyDBInstance_masterUserPassword :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
+modifyDBInstance_masterUserPassword = Lens.lens (\ModifyDBInstance' {masterUserPassword} -> masterUserPassword) (\s@ModifyDBInstance' {} a -> s {masterUserPassword = a} :: ModifyDBInstance)
+
+-- | The interval, in seconds, between points when Enhanced Monitoring
+-- metrics are collected for the DB instance. To disable collecting
+-- Enhanced Monitoring metrics, specify 0. The default is 0.
+--
+-- If @MonitoringRoleArn@ is specified, then you must also set
+-- @MonitoringInterval@ to a value other than 0.
+--
+-- Valid Values: @0, 1, 5, 10, 15, 30, 60@
+modifyDBInstance_monitoringInterval :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
+modifyDBInstance_monitoringInterval = Lens.lens (\ModifyDBInstance' {monitoringInterval} -> monitoringInterval) (\s@ModifyDBInstance' {} a -> s {monitoringInterval = a} :: ModifyDBInstance)
+
+-- | The ARN for the IAM role that permits Neptune to send enhanced
+-- monitoring metrics to Amazon CloudWatch Logs. For example,
+-- @arn:aws:iam:123456789012:role\/emaccess@.
+--
+-- If @MonitoringInterval@ is set to a value other than 0, then you must
+-- supply a @MonitoringRoleArn@ value.
+modifyDBInstance_monitoringRoleArn :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
+modifyDBInstance_monitoringRoleArn = Lens.lens (\ModifyDBInstance' {monitoringRoleArn} -> monitoringRoleArn) (\s@ModifyDBInstance' {} a -> s {monitoringRoleArn = a} :: ModifyDBInstance)
+
+-- | Specifies if the DB instance is a Multi-AZ deployment. Changing this
+-- parameter doesn\'t result in an outage and the change is applied during
+-- the next maintenance window unless the @ApplyImmediately@ parameter is
+-- set to @true@ for this request.
+modifyDBInstance_multiAZ :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
+modifyDBInstance_multiAZ = Lens.lens (\ModifyDBInstance' {multiAZ} -> multiAZ) (\s@ModifyDBInstance' {} a -> s {multiAZ = a} :: ModifyDBInstance)
+
+-- | The new DB instance identifier for the DB instance when renaming a DB
+-- instance. When you change the DB instance identifier, an instance reboot
+-- will occur immediately if you set @Apply Immediately@ to true, or will
+-- occur during the next maintenance window if @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)
+
+-- | /(Not supported by Neptune)/
+modifyDBInstance_optionGroupName :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
+modifyDBInstance_optionGroupName = Lens.lens (\ModifyDBInstance' {optionGroupName} -> optionGroupName) (\s@ModifyDBInstance' {} a -> s {optionGroupName = a} :: ModifyDBInstance)
+
+-- | /(Not supported by Neptune)/
+modifyDBInstance_performanceInsightsKMSKeyId :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
+modifyDBInstance_performanceInsightsKMSKeyId = Lens.lens (\ModifyDBInstance' {performanceInsightsKMSKeyId} -> performanceInsightsKMSKeyId) (\s@ModifyDBInstance' {} a -> s {performanceInsightsKMSKeyId = a} :: ModifyDBInstance)
+
+-- | The daily time range during which automated backups are created if
+-- automated backups are enabled.
+--
+-- Not applicable. The daily time range for creating automated backups is
+-- managed by the DB cluster. For more information, see ModifyDBCluster.
+--
+-- Constraints:
+--
+-- -   Must be in the format hh24:mi-hh24:mi
+--
+-- -   Must be in Universal Time Coordinated (UTC)
+--
+-- -   Must not conflict with the preferred maintenance window
+--
+-- -   Must be at least 30 minutes
+modifyDBInstance_preferredBackupWindow :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
+modifyDBInstance_preferredBackupWindow = Lens.lens (\ModifyDBInstance' {preferredBackupWindow} -> preferredBackupWindow) (\s@ModifyDBInstance' {} a -> s {preferredBackupWindow = 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, then changing this parameter will cause a
+-- reboot of the DB instance. If 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 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 a Read 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)
+
+-- | This flag should no longer be used.
+modifyDBInstance_publiclyAccessible :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
+modifyDBInstance_publiclyAccessible = Lens.lens (\ModifyDBInstance' {publiclyAccessible} -> publiclyAccessible) (\s@ModifyDBInstance' {} a -> s {publiclyAccessible = a} :: ModifyDBInstance)
+
+-- | Not supported.
+modifyDBInstance_storageType :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
+modifyDBInstance_storageType = Lens.lens (\ModifyDBInstance' {storageType} -> storageType) (\s@ModifyDBInstance' {} a -> s {storageType = a} :: ModifyDBInstance)
+
+-- | The ARN from the key store with which to associate the instance for TDE
+-- encryption.
+modifyDBInstance_tdeCredentialArn :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
+modifyDBInstance_tdeCredentialArn = Lens.lens (\ModifyDBInstance' {tdeCredentialArn} -> tdeCredentialArn) (\s@ModifyDBInstance' {} a -> s {tdeCredentialArn = a} :: ModifyDBInstance)
+
+-- | The password for the given ARN from the key store in order to access the
+-- device.
+modifyDBInstance_tdeCredentialPassword :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
+modifyDBInstance_tdeCredentialPassword = Lens.lens (\ModifyDBInstance' {tdeCredentialPassword} -> tdeCredentialPassword) (\s@ModifyDBInstance' {} a -> s {tdeCredentialPassword = a} :: ModifyDBInstance)
+
+-- | A list of EC2 VPC security groups to authorize on this DB instance. This
+-- change is asynchronously applied as soon as possible.
+--
+-- Not applicable. The associated list of EC2 VPC security groups is
+-- managed by the DB cluster. For more information, see ModifyDBCluster.
+--
+-- Constraints:
+--
+-- -   If supplied, must match existing VpcSecurityGroupIds.
+modifyDBInstance_vpcSecurityGroupIds :: Lens.Lens' ModifyDBInstance (Prelude.Maybe [Prelude.Text])
+modifyDBInstance_vpcSecurityGroupIds = Lens.lens (\ModifyDBInstance' {vpcSecurityGroupIds} -> vpcSecurityGroupIds) (\s@ModifyDBInstance' {} a -> s {vpcSecurityGroupIds = a} :: ModifyDBInstance) Prelude.. Lens.mapping Lens.coerced
+
+-- | The DB 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` allocatedStorage
+      `Prelude.hashWithSalt` allowMajorVersionUpgrade
+      `Prelude.hashWithSalt` applyImmediately
+      `Prelude.hashWithSalt` autoMinorVersionUpgrade
+      `Prelude.hashWithSalt` backupRetentionPeriod
+      `Prelude.hashWithSalt` cACertificateIdentifier
+      `Prelude.hashWithSalt` cloudwatchLogsExportConfiguration
+      `Prelude.hashWithSalt` copyTagsToSnapshot
+      `Prelude.hashWithSalt` dbInstanceClass
+      `Prelude.hashWithSalt` dbParameterGroupName
+      `Prelude.hashWithSalt` dbPortNumber
+      `Prelude.hashWithSalt` dbSecurityGroups
+      `Prelude.hashWithSalt` dbSubnetGroupName
+      `Prelude.hashWithSalt` deletionProtection
+      `Prelude.hashWithSalt` domain
+      `Prelude.hashWithSalt` domainIAMRoleName
+      `Prelude.hashWithSalt` enableIAMDatabaseAuthentication
+      `Prelude.hashWithSalt` enablePerformanceInsights
+      `Prelude.hashWithSalt` engineVersion
+      `Prelude.hashWithSalt` iops
+      `Prelude.hashWithSalt` licenseModel
+      `Prelude.hashWithSalt` masterUserPassword
+      `Prelude.hashWithSalt` monitoringInterval
+      `Prelude.hashWithSalt` monitoringRoleArn
+      `Prelude.hashWithSalt` multiAZ
+      `Prelude.hashWithSalt` newDBInstanceIdentifier'
+      `Prelude.hashWithSalt` optionGroupName
+      `Prelude.hashWithSalt` performanceInsightsKMSKeyId
+      `Prelude.hashWithSalt` preferredBackupWindow
+      `Prelude.hashWithSalt` preferredMaintenanceWindow
+      `Prelude.hashWithSalt` promotionTier
+      `Prelude.hashWithSalt` publiclyAccessible
+      `Prelude.hashWithSalt` storageType
+      `Prelude.hashWithSalt` tdeCredentialArn
+      `Prelude.hashWithSalt` tdeCredentialPassword
+      `Prelude.hashWithSalt` vpcSecurityGroupIds
+      `Prelude.hashWithSalt` dbInstanceIdentifier
+
+instance Prelude.NFData ModifyDBInstance where
+  rnf ModifyDBInstance' {..} =
+    Prelude.rnf allocatedStorage
+      `Prelude.seq` Prelude.rnf allowMajorVersionUpgrade
+      `Prelude.seq` Prelude.rnf applyImmediately
+      `Prelude.seq` Prelude.rnf autoMinorVersionUpgrade
+      `Prelude.seq` Prelude.rnf backupRetentionPeriod
+      `Prelude.seq` Prelude.rnf cACertificateIdentifier
+      `Prelude.seq` Prelude.rnf cloudwatchLogsExportConfiguration
+      `Prelude.seq` Prelude.rnf copyTagsToSnapshot
+      `Prelude.seq` Prelude.rnf dbInstanceClass
+      `Prelude.seq` Prelude.rnf dbParameterGroupName
+      `Prelude.seq` Prelude.rnf dbPortNumber
+      `Prelude.seq` Prelude.rnf dbSecurityGroups
+      `Prelude.seq` Prelude.rnf dbSubnetGroupName
+      `Prelude.seq` Prelude.rnf deletionProtection
+      `Prelude.seq` Prelude.rnf domain
+      `Prelude.seq` Prelude.rnf domainIAMRoleName
+      `Prelude.seq` Prelude.rnf
+        enableIAMDatabaseAuthentication
+      `Prelude.seq` Prelude.rnf
+        enablePerformanceInsights
+      `Prelude.seq` Prelude.rnf engineVersion
+      `Prelude.seq` Prelude.rnf iops
+      `Prelude.seq` Prelude.rnf licenseModel
+      `Prelude.seq` Prelude.rnf
+        masterUserPassword
+      `Prelude.seq` Prelude.rnf
+        monitoringInterval
+      `Prelude.seq` Prelude.rnf
+        monitoringRoleArn
+      `Prelude.seq` Prelude.rnf multiAZ
+      `Prelude.seq` Prelude.rnf
+        newDBInstanceIdentifier'
+      `Prelude.seq` Prelude.rnf
+        optionGroupName
+      `Prelude.seq` Prelude.rnf
+        performanceInsightsKMSKeyId
+      `Prelude.seq` Prelude.rnf
+        preferredBackupWindow
+      `Prelude.seq` Prelude.rnf
+        preferredMaintenanceWindow
+      `Prelude.seq` Prelude.rnf
+        promotionTier
+      `Prelude.seq` Prelude.rnf
+        publiclyAccessible
+      `Prelude.seq` Prelude.rnf
+        storageType
+      `Prelude.seq` Prelude.rnf
+        tdeCredentialArn
+      `Prelude.seq` Prelude.rnf
+        tdeCredentialPassword
+      `Prelude.seq` Prelude.rnf
+        vpcSecurityGroupIds
+      `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),
+        "AllocatedStorage" Data.=: allocatedStorage,
+        "AllowMajorVersionUpgrade"
+          Data.=: allowMajorVersionUpgrade,
+        "ApplyImmediately" Data.=: applyImmediately,
+        "AutoMinorVersionUpgrade"
+          Data.=: autoMinorVersionUpgrade,
+        "BackupRetentionPeriod"
+          Data.=: backupRetentionPeriod,
+        "CACertificateIdentifier"
+          Data.=: cACertificateIdentifier,
+        "CloudwatchLogsExportConfiguration"
+          Data.=: cloudwatchLogsExportConfiguration,
+        "CopyTagsToSnapshot" Data.=: copyTagsToSnapshot,
+        "DBInstanceClass" Data.=: dbInstanceClass,
+        "DBParameterGroupName" Data.=: dbParameterGroupName,
+        "DBPortNumber" Data.=: dbPortNumber,
+        "DBSecurityGroups"
+          Data.=: Data.toQuery
+            ( Data.toQueryList "DBSecurityGroupName"
+                Prelude.<$> dbSecurityGroups
+            ),
+        "DBSubnetGroupName" Data.=: dbSubnetGroupName,
+        "DeletionProtection" Data.=: deletionProtection,
+        "Domain" Data.=: domain,
+        "DomainIAMRoleName" Data.=: domainIAMRoleName,
+        "EnableIAMDatabaseAuthentication"
+          Data.=: enableIAMDatabaseAuthentication,
+        "EnablePerformanceInsights"
+          Data.=: enablePerformanceInsights,
+        "EngineVersion" Data.=: engineVersion,
+        "Iops" Data.=: iops,
+        "LicenseModel" Data.=: licenseModel,
+        "MasterUserPassword" Data.=: masterUserPassword,
+        "MonitoringInterval" Data.=: monitoringInterval,
+        "MonitoringRoleArn" Data.=: monitoringRoleArn,
+        "MultiAZ" Data.=: multiAZ,
+        "NewDBInstanceIdentifier"
+          Data.=: newDBInstanceIdentifier',
+        "OptionGroupName" Data.=: optionGroupName,
+        "PerformanceInsightsKMSKeyId"
+          Data.=: performanceInsightsKMSKeyId,
+        "PreferredBackupWindow"
+          Data.=: preferredBackupWindow,
+        "PreferredMaintenanceWindow"
+          Data.=: preferredMaintenanceWindow,
+        "PromotionTier" Data.=: promotionTier,
+        "PubliclyAccessible" Data.=: publiclyAccessible,
+        "StorageType" Data.=: storageType,
+        "TdeCredentialArn" Data.=: tdeCredentialArn,
+        "TdeCredentialPassword"
+          Data.=: tdeCredentialPassword,
+        "VpcSecurityGroupIds"
+          Data.=: Data.toQuery
+            ( Data.toQueryList "VpcSecurityGroupId"
+                Prelude.<$> vpcSecurityGroupIds
+            ),
+        "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
diff --git a/gen/Amazonka/Neptune/ModifyDBParameterGroup.hs b/gen/Amazonka/Neptune/ModifyDBParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/ModifyDBParameterGroup.hs
@@ -0,0 +1,185 @@
+{-# 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.Neptune.ModifyDBParameterGroup
+-- 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 DB 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 without failover to the DB instance
+-- associated with the parameter group before the change can take effect.
+--
+-- After you modify a DB parameter group, you should wait at least 5
+-- minutes before creating your first DB instance that uses that DB
+-- parameter group as the default parameter group. This allows Amazon
+-- Neptune to fully complete the modify action before the parameter group
+-- is used as the default for a new DB instance. This is especially
+-- important for parameters that are critical when creating the default
+-- database for a DB instance, such as the character set for the default
+-- database defined by the @character_set_database@ parameter. You can use
+-- the /Parameter Groups/ option of the Amazon Neptune console or the
+-- /DescribeDBParameters/ command to verify that your DB parameter group
+-- has been created or modified.
+module Amazonka.Neptune.ModifyDBParameterGroup
+  ( -- * Creating a Request
+    ModifyDBParameterGroup (..),
+    newModifyDBParameterGroup,
+
+    -- * Request Lenses
+    modifyDBParameterGroup_dbParameterGroupName,
+    modifyDBParameterGroup_parameters,
+
+    -- * Destructuring the Response
+    DBParameterGroupNameMessage (..),
+    newDBParameterGroupNameMessage,
+
+    -- * Response Lenses
+    dbParameterGroupNameMessage_dbParameterGroupName,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newModifyDBParameterGroup' smart constructor.
+data ModifyDBParameterGroup = ModifyDBParameterGroup'
+  { -- | The name of the DB parameter group.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, must match the name of an existing DBParameterGroup.
+    dbParameterGroupName :: Prelude.Text,
+    -- | An array of parameter names, values, and the apply method for the
+    -- parameter update. At least one parameter name, value, and apply method
+    -- must be supplied; subsequent arguments are optional. A maximum of 20
+    -- parameters can be modified in a single request.
+    --
+    -- Valid Values (for the application method): @immediate | pending-reboot@
+    --
+    -- You can use the immediate value with dynamic parameters only. You can
+    -- use the pending-reboot value for both dynamic and static parameters, and
+    -- changes are applied when you reboot the DB instance without failover.
+    parameters :: [Parameter]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ModifyDBParameterGroup' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dbParameterGroupName', 'modifyDBParameterGroup_dbParameterGroupName' - The name of the DB parameter group.
+--
+-- Constraints:
+--
+-- -   If supplied, must match the name of an existing DBParameterGroup.
+--
+-- 'parameters', 'modifyDBParameterGroup_parameters' - An array of parameter names, values, and the apply method for the
+-- parameter update. At least one parameter name, value, and apply method
+-- must be supplied; subsequent arguments are optional. A maximum of 20
+-- parameters can be modified in a single request.
+--
+-- Valid Values (for the application method): @immediate | pending-reboot@
+--
+-- You can use the immediate value with dynamic parameters only. You can
+-- use the pending-reboot value for both dynamic and static parameters, and
+-- changes are applied when you reboot the DB instance without failover.
+newModifyDBParameterGroup ::
+  -- | 'dbParameterGroupName'
+  Prelude.Text ->
+  ModifyDBParameterGroup
+newModifyDBParameterGroup pDBParameterGroupName_ =
+  ModifyDBParameterGroup'
+    { dbParameterGroupName =
+        pDBParameterGroupName_,
+      parameters = Prelude.mempty
+    }
+
+-- | The name of the DB parameter group.
+--
+-- Constraints:
+--
+-- -   If supplied, must match the name of an existing DBParameterGroup.
+modifyDBParameterGroup_dbParameterGroupName :: Lens.Lens' ModifyDBParameterGroup Prelude.Text
+modifyDBParameterGroup_dbParameterGroupName = Lens.lens (\ModifyDBParameterGroup' {dbParameterGroupName} -> dbParameterGroupName) (\s@ModifyDBParameterGroup' {} a -> s {dbParameterGroupName = a} :: ModifyDBParameterGroup)
+
+-- | An array of parameter names, values, and the apply method for the
+-- parameter update. At least one parameter name, value, and apply method
+-- must be supplied; subsequent arguments are optional. A maximum of 20
+-- parameters can be modified in a single request.
+--
+-- Valid Values (for the application method): @immediate | pending-reboot@
+--
+-- You can use the immediate value with dynamic parameters only. You can
+-- use the pending-reboot value for both dynamic and static parameters, and
+-- changes are applied when you reboot the DB instance without failover.
+modifyDBParameterGroup_parameters :: Lens.Lens' ModifyDBParameterGroup [Parameter]
+modifyDBParameterGroup_parameters = Lens.lens (\ModifyDBParameterGroup' {parameters} -> parameters) (\s@ModifyDBParameterGroup' {} a -> s {parameters = a} :: ModifyDBParameterGroup) Prelude.. Lens.coerced
+
+instance Core.AWSRequest ModifyDBParameterGroup where
+  type
+    AWSResponse ModifyDBParameterGroup =
+      DBParameterGroupNameMessage
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveXMLWrapper
+      "ModifyDBParameterGroupResult"
+      (\s h x -> Data.parseXML x)
+
+instance Prelude.Hashable ModifyDBParameterGroup where
+  hashWithSalt _salt ModifyDBParameterGroup' {..} =
+    _salt
+      `Prelude.hashWithSalt` dbParameterGroupName
+      `Prelude.hashWithSalt` parameters
+
+instance Prelude.NFData ModifyDBParameterGroup where
+  rnf ModifyDBParameterGroup' {..} =
+    Prelude.rnf dbParameterGroupName
+      `Prelude.seq` Prelude.rnf parameters
+
+instance Data.ToHeaders ModifyDBParameterGroup where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath ModifyDBParameterGroup where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ModifyDBParameterGroup where
+  toQuery ModifyDBParameterGroup' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ("ModifyDBParameterGroup" :: Prelude.ByteString),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "DBParameterGroupName" Data.=: dbParameterGroupName,
+        "Parameters"
+          Data.=: Data.toQueryList "Parameter" parameters
+      ]
diff --git a/gen/Amazonka/Neptune/ModifyDBSubnetGroup.hs b/gen/Amazonka/Neptune/ModifyDBSubnetGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/ModifyDBSubnetGroup.hs
@@ -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.Neptune.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 DB subnet group. DB subnet groups must contain at
+-- least one subnet in at least two AZs in the Amazon Region.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newModifyDBSubnetGroup' smart constructor.
+data ModifyDBSubnetGroup = ModifyDBSubnetGroup'
+  { -- | The description for the DB subnet group.
+    dbSubnetGroupDescription :: Prelude.Maybe Prelude.Text,
+    -- | The name for the DB 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 EC2 subnet IDs for the DB 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 DB subnet group.
+--
+-- 'dbSubnetGroupName', 'modifyDBSubnetGroup_dbSubnetGroupName' - The name for the DB 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 EC2 subnet IDs for the DB subnet group.
+newModifyDBSubnetGroup ::
+  -- | 'dbSubnetGroupName'
+  Prelude.Text ->
+  ModifyDBSubnetGroup
+newModifyDBSubnetGroup pDBSubnetGroupName_ =
+  ModifyDBSubnetGroup'
+    { dbSubnetGroupDescription =
+        Prelude.Nothing,
+      dbSubnetGroupName = pDBSubnetGroupName_,
+      subnetIds = Prelude.mempty
+    }
+
+-- | The description for the DB 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 DB 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 EC2 subnet IDs for the DB 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
diff --git a/gen/Amazonka/Neptune/ModifyEventSubscription.hs b/gen/Amazonka/Neptune/ModifyEventSubscription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/ModifyEventSubscription.hs
@@ -0,0 +1,256 @@
+{-# 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.Neptune.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 event notification subscription. Note that you
+-- can\'t modify the source identifiers using this call; to change source
+-- identifiers for a subscription, use the
+-- AddSourceIdentifierToSubscription and
+-- RemoveSourceIdentifierFromSubscription calls.
+--
+-- You can see a list of the event categories for a given SourceType by
+-- using the __DescribeEventCategories__ action.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /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. You can see a list of the categories for a given SourceType by using
+    -- the __DescribeEventCategories__ action.
+    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 a DB instance, you would 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 |
+    -- db-snapshot
+    sourceType :: Prelude.Maybe Prelude.Text,
+    -- | The name of the 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. You can see a list of the categories for a given SourceType by using
+-- the __DescribeEventCategories__ action.
+--
+-- '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 a DB instance, you would 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 |
+-- db-snapshot
+--
+-- 'subscriptionName', 'modifyEventSubscription_subscriptionName' - The name of the 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. You can see a list of the categories for a given SourceType by using
+-- the __DescribeEventCategories__ action.
+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 a DB instance, you would 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 |
+-- db-snapshot
+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 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
diff --git a/gen/Amazonka/Neptune/ModifyGlobalCluster.hs b/gen/Amazonka/Neptune/ModifyGlobalCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/ModifyGlobalCluster.hs
@@ -0,0 +1,311 @@
+{-# 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.Neptune.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 Neptune global cluster. You can change
+-- one or more database configuration parameters by specifying these
+-- parameters and their new values in the request.
+module Amazonka.Neptune.ModifyGlobalCluster
+  ( -- * Creating a Request
+    ModifyGlobalCluster (..),
+    newModifyGlobalCluster,
+
+    -- * Request Lenses
+    modifyGlobalCluster_allowMajorVersionUpgrade,
+    modifyGlobalCluster_deletionProtection,
+    modifyGlobalCluster_engineVersion,
+    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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newModifyGlobalCluster' smart constructor.
+data ModifyGlobalCluster = ModifyGlobalCluster'
+  { -- | A value that indicates whether major version upgrades are allowed.
+    --
+    -- Constraints: You must allow major version upgrades if you specify a
+    -- value for the @EngineVersion@ parameter that is a different major
+    -- version than the DB cluster\'s current version.
+    --
+    -- If you upgrade the major version of a global database, the cluster and
+    -- DB instance parameter groups are set to the default parameter groups for
+    -- the new version, so you will need to apply any custom parameter groups
+    -- after completing the upgrade.
+    allowMajorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
+    -- | Indicates whether the global database has deletion protection enabled.
+    -- The global database cannot be deleted when deletion protection is
+    -- enabled.
+    deletionProtection :: Prelude.Maybe Prelude.Bool,
+    -- | The version number of the database engine to which you want to upgrade.
+    -- Changing this parameter will result in an outage. The change is applied
+    -- during the next maintenance window unless @ApplyImmediately@ is enabled.
+    --
+    -- To list all of the available Neptune engine versions, use the following
+    -- command:
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | A new cluster identifier to assign to the global database. 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.
+    --
+    -- -   Can\'t end with a hyphen or contain two consecutive hyphens
+    --
+    -- Example: @my-cluster2@
+    newGlobalClusterIdentifier' :: Prelude.Maybe Prelude.Text,
+    -- | The DB cluster identifier for the global cluster being modified. This
+    -- parameter is not case-sensitive.
+    --
+    -- Constraints: Must match the identifier of an existing global database
+    -- 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:
+--
+-- 'allowMajorVersionUpgrade', 'modifyGlobalCluster_allowMajorVersionUpgrade' - A value that indicates whether major version upgrades are allowed.
+--
+-- Constraints: You must allow major version upgrades if you specify a
+-- value for the @EngineVersion@ parameter that is a different major
+-- version than the DB cluster\'s current version.
+--
+-- If you upgrade the major version of a global database, the cluster and
+-- DB instance parameter groups are set to the default parameter groups for
+-- the new version, so you will need to apply any custom parameter groups
+-- after completing the upgrade.
+--
+-- 'deletionProtection', 'modifyGlobalCluster_deletionProtection' - Indicates whether the global database has deletion protection enabled.
+-- The global database cannot be deleted when deletion protection is
+-- enabled.
+--
+-- 'engineVersion', 'modifyGlobalCluster_engineVersion' - The version number of the database engine to which you want to upgrade.
+-- Changing this parameter will result in an outage. The change is applied
+-- during the next maintenance window unless @ApplyImmediately@ is enabled.
+--
+-- To list all of the available Neptune engine versions, use the following
+-- command:
+--
+-- 'newGlobalClusterIdentifier'', 'modifyGlobalCluster_newGlobalClusterIdentifier' - A new cluster identifier to assign to the global database. 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.
+--
+-- -   Can\'t end with a hyphen or contain two consecutive hyphens
+--
+-- Example: @my-cluster2@
+--
+-- 'globalClusterIdentifier', 'modifyGlobalCluster_globalClusterIdentifier' - The DB cluster identifier for the global cluster being modified. This
+-- parameter is not case-sensitive.
+--
+-- Constraints: Must match the identifier of an existing global database
+-- cluster.
+newModifyGlobalCluster ::
+  -- | 'globalClusterIdentifier'
+  Prelude.Text ->
+  ModifyGlobalCluster
+newModifyGlobalCluster pGlobalClusterIdentifier_ =
+  ModifyGlobalCluster'
+    { allowMajorVersionUpgrade =
+        Prelude.Nothing,
+      deletionProtection = Prelude.Nothing,
+      engineVersion = Prelude.Nothing,
+      newGlobalClusterIdentifier' = Prelude.Nothing,
+      globalClusterIdentifier = pGlobalClusterIdentifier_
+    }
+
+-- | A value that indicates whether major version upgrades are allowed.
+--
+-- Constraints: You must allow major version upgrades if you specify a
+-- value for the @EngineVersion@ parameter that is a different major
+-- version than the DB cluster\'s current version.
+--
+-- If you upgrade the major version of a global database, the cluster and
+-- DB instance parameter groups are set to the default parameter groups for
+-- the new version, so you will need to apply any custom parameter groups
+-- after completing the upgrade.
+modifyGlobalCluster_allowMajorVersionUpgrade :: Lens.Lens' ModifyGlobalCluster (Prelude.Maybe Prelude.Bool)
+modifyGlobalCluster_allowMajorVersionUpgrade = Lens.lens (\ModifyGlobalCluster' {allowMajorVersionUpgrade} -> allowMajorVersionUpgrade) (\s@ModifyGlobalCluster' {} a -> s {allowMajorVersionUpgrade = a} :: ModifyGlobalCluster)
+
+-- | Indicates whether the global database has deletion protection enabled.
+-- The global database cannot 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 version number of the database engine to which you want to upgrade.
+-- Changing this parameter will result in an outage. The change is applied
+-- during the next maintenance window unless @ApplyImmediately@ is enabled.
+--
+-- To list all of the available Neptune engine versions, use the following
+-- command:
+modifyGlobalCluster_engineVersion :: Lens.Lens' ModifyGlobalCluster (Prelude.Maybe Prelude.Text)
+modifyGlobalCluster_engineVersion = Lens.lens (\ModifyGlobalCluster' {engineVersion} -> engineVersion) (\s@ModifyGlobalCluster' {} a -> s {engineVersion = a} :: ModifyGlobalCluster)
+
+-- | A new cluster identifier to assign to the global database. 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.
+--
+-- -   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 DB cluster identifier for the global cluster being modified. This
+-- parameter is not case-sensitive.
+--
+-- Constraints: Must match the identifier of an existing global database
+-- 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` allowMajorVersionUpgrade
+      `Prelude.hashWithSalt` deletionProtection
+      `Prelude.hashWithSalt` engineVersion
+      `Prelude.hashWithSalt` newGlobalClusterIdentifier'
+      `Prelude.hashWithSalt` globalClusterIdentifier
+
+instance Prelude.NFData ModifyGlobalCluster where
+  rnf ModifyGlobalCluster' {..} =
+    Prelude.rnf allowMajorVersionUpgrade
+      `Prelude.seq` Prelude.rnf deletionProtection
+      `Prelude.seq` Prelude.rnf engineVersion
+      `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),
+        "AllowMajorVersionUpgrade"
+          Data.=: allowMajorVersionUpgrade,
+        "DeletionProtection" Data.=: deletionProtection,
+        "EngineVersion" Data.=: engineVersion,
+        "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
diff --git a/gen/Amazonka/Neptune/PromoteReadReplicaDBCluster.hs b/gen/Amazonka/Neptune/PromoteReadReplicaDBCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/PromoteReadReplicaDBCluster.hs
@@ -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.Neptune.PromoteReadReplicaDBCluster
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Not supported.
+module Amazonka.Neptune.PromoteReadReplicaDBCluster
+  ( -- * Creating a Request
+    PromoteReadReplicaDBCluster (..),
+    newPromoteReadReplicaDBCluster,
+
+    -- * Request Lenses
+    promoteReadReplicaDBCluster_dbClusterIdentifier,
+
+    -- * Destructuring the Response
+    PromoteReadReplicaDBClusterResponse (..),
+    newPromoteReadReplicaDBClusterResponse,
+
+    -- * Response Lenses
+    promoteReadReplicaDBClusterResponse_dbCluster,
+    promoteReadReplicaDBClusterResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newPromoteReadReplicaDBCluster' smart constructor.
+data PromoteReadReplicaDBCluster = PromoteReadReplicaDBCluster'
+  { -- | Not supported.
+    dbClusterIdentifier :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PromoteReadReplicaDBCluster' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'promoteReadReplicaDBCluster_dbClusterIdentifier' - Not supported.
+newPromoteReadReplicaDBCluster ::
+  -- | 'dbClusterIdentifier'
+  Prelude.Text ->
+  PromoteReadReplicaDBCluster
+newPromoteReadReplicaDBCluster pDBClusterIdentifier_ =
+  PromoteReadReplicaDBCluster'
+    { dbClusterIdentifier =
+        pDBClusterIdentifier_
+    }
+
+-- | Not supported.
+promoteReadReplicaDBCluster_dbClusterIdentifier :: Lens.Lens' PromoteReadReplicaDBCluster Prelude.Text
+promoteReadReplicaDBCluster_dbClusterIdentifier = Lens.lens (\PromoteReadReplicaDBCluster' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@PromoteReadReplicaDBCluster' {} a -> s {dbClusterIdentifier = a} :: PromoteReadReplicaDBCluster)
+
+instance Core.AWSRequest PromoteReadReplicaDBCluster where
+  type
+    AWSResponse PromoteReadReplicaDBCluster =
+      PromoteReadReplicaDBClusterResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveXMLWrapper
+      "PromoteReadReplicaDBClusterResult"
+      ( \s h x ->
+          PromoteReadReplicaDBClusterResponse'
+            Prelude.<$> (x Data..@? "DBCluster")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable PromoteReadReplicaDBCluster where
+  hashWithSalt _salt PromoteReadReplicaDBCluster' {..} =
+    _salt `Prelude.hashWithSalt` dbClusterIdentifier
+
+instance Prelude.NFData PromoteReadReplicaDBCluster where
+  rnf PromoteReadReplicaDBCluster' {..} =
+    Prelude.rnf dbClusterIdentifier
+
+instance Data.ToHeaders PromoteReadReplicaDBCluster where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath PromoteReadReplicaDBCluster where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery PromoteReadReplicaDBCluster where
+  toQuery PromoteReadReplicaDBCluster' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ( "PromoteReadReplicaDBCluster" ::
+                      Prelude.ByteString
+                  ),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "DBClusterIdentifier" Data.=: dbClusterIdentifier
+      ]
+
+-- | /See:/ 'newPromoteReadReplicaDBClusterResponse' smart constructor.
+data PromoteReadReplicaDBClusterResponse = PromoteReadReplicaDBClusterResponse'
+  { 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 'PromoteReadReplicaDBClusterResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'promoteReadReplicaDBClusterResponse_dbCluster' - Undocumented member.
+--
+-- 'httpStatus', 'promoteReadReplicaDBClusterResponse_httpStatus' - The response's http status code.
+newPromoteReadReplicaDBClusterResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  PromoteReadReplicaDBClusterResponse
+newPromoteReadReplicaDBClusterResponse pHttpStatus_ =
+  PromoteReadReplicaDBClusterResponse'
+    { dbCluster =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Undocumented member.
+promoteReadReplicaDBClusterResponse_dbCluster :: Lens.Lens' PromoteReadReplicaDBClusterResponse (Prelude.Maybe DBCluster)
+promoteReadReplicaDBClusterResponse_dbCluster = Lens.lens (\PromoteReadReplicaDBClusterResponse' {dbCluster} -> dbCluster) (\s@PromoteReadReplicaDBClusterResponse' {} a -> s {dbCluster = a} :: PromoteReadReplicaDBClusterResponse)
+
+-- | The response's http status code.
+promoteReadReplicaDBClusterResponse_httpStatus :: Lens.Lens' PromoteReadReplicaDBClusterResponse Prelude.Int
+promoteReadReplicaDBClusterResponse_httpStatus = Lens.lens (\PromoteReadReplicaDBClusterResponse' {httpStatus} -> httpStatus) (\s@PromoteReadReplicaDBClusterResponse' {} a -> s {httpStatus = a} :: PromoteReadReplicaDBClusterResponse)
+
+instance
+  Prelude.NFData
+    PromoteReadReplicaDBClusterResponse
+  where
+  rnf PromoteReadReplicaDBClusterResponse' {..} =
+    Prelude.rnf dbCluster
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/Neptune/RebootDBInstance.hs b/gen/Amazonka/Neptune/RebootDBInstance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/RebootDBInstance.hs
@@ -0,0 +1,204 @@
+{-# 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.Neptune.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 DB instance, usually for maintenance
+-- reasons. For example, if you make certain modifications, or if you
+-- change the DB parameter group associated with the DB instance, you must
+-- reboot the instance for the changes to take effect.
+--
+-- Rebooting a DB instance restarts the database engine service. Rebooting
+-- a DB instance results in a momentary outage, during which the DB
+-- instance status is set to rebooting.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newRebootDBInstance' smart constructor.
+data RebootDBInstance = RebootDBInstance'
+  { -- | When @true@, the reboot is conducted through a MultiAZ failover.
+    --
+    -- Constraint: You can\'t specify @true@ if the instance is not configured
+    -- for MultiAZ.
+    forceFailover :: Prelude.Maybe Prelude.Bool,
+    -- | The DB 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 MultiAZ failover.
+--
+-- Constraint: You can\'t specify @true@ if the instance is not configured
+-- for MultiAZ.
+--
+-- 'dbInstanceIdentifier', 'rebootDBInstance_dbInstanceIdentifier' - The DB 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 MultiAZ failover.
+--
+-- Constraint: You can\'t specify @true@ if the instance is not configured
+-- for MultiAZ.
+rebootDBInstance_forceFailover :: Lens.Lens' RebootDBInstance (Prelude.Maybe Prelude.Bool)
+rebootDBInstance_forceFailover = Lens.lens (\RebootDBInstance' {forceFailover} -> forceFailover) (\s@RebootDBInstance' {} a -> s {forceFailover = a} :: RebootDBInstance)
+
+-- | The DB 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
diff --git a/gen/Amazonka/Neptune/RemoveFromGlobalCluster.hs b/gen/Amazonka/Neptune/RemoveFromGlobalCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/RemoveFromGlobalCluster.hs
@@ -0,0 +1,191 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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 a Neptune DB cluster from a Neptune global database. A
+-- secondary cluster becomes a normal standalone cluster with read-write
+-- capability instead of being read-only, and no longer receives data from
+-- a the primary cluster.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newRemoveFromGlobalCluster' smart constructor.
+data RemoveFromGlobalCluster = RemoveFromGlobalCluster'
+  { -- | The identifier of the Neptune global database from which to detach the
+    -- specified Neptune DB cluster.
+    globalClusterIdentifier :: Prelude.Text,
+    -- | The Amazon Resource Name (ARN) identifying the cluster to be detached
+    -- from the Neptune global database 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 identifier of the Neptune global database from which to detach the
+-- specified Neptune DB cluster.
+--
+-- 'dbClusterIdentifier', 'removeFromGlobalCluster_dbClusterIdentifier' - The Amazon Resource Name (ARN) identifying the cluster to be detached
+-- from the Neptune global database cluster.
+newRemoveFromGlobalCluster ::
+  -- | 'globalClusterIdentifier'
+  Prelude.Text ->
+  -- | 'dbClusterIdentifier'
+  Prelude.Text ->
+  RemoveFromGlobalCluster
+newRemoveFromGlobalCluster
+  pGlobalClusterIdentifier_
+  pDbClusterIdentifier_ =
+    RemoveFromGlobalCluster'
+      { globalClusterIdentifier =
+          pGlobalClusterIdentifier_,
+        dbClusterIdentifier = pDbClusterIdentifier_
+      }
+
+-- | The identifier of the Neptune global database from which to detach the
+-- specified Neptune DB 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 to be detached
+-- from the Neptune global database 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
diff --git a/gen/Amazonka/Neptune/RemoveRoleFromDBCluster.hs b/gen/Amazonka/Neptune/RemoveRoleFromDBCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/RemoveRoleFromDBCluster.hs
@@ -0,0 +1,173 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.RemoveRoleFromDBCluster
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Disassociates an Identity and Access Management (IAM) role from a DB
+-- cluster.
+module Amazonka.Neptune.RemoveRoleFromDBCluster
+  ( -- * Creating a Request
+    RemoveRoleFromDBCluster (..),
+    newRemoveRoleFromDBCluster,
+
+    -- * Request Lenses
+    removeRoleFromDBCluster_featureName,
+    removeRoleFromDBCluster_dbClusterIdentifier,
+    removeRoleFromDBCluster_roleArn,
+
+    -- * Destructuring the Response
+    RemoveRoleFromDBClusterResponse (..),
+    newRemoveRoleFromDBClusterResponse,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newRemoveRoleFromDBCluster' smart constructor.
+data RemoveRoleFromDBCluster = RemoveRoleFromDBCluster'
+  { -- | The name of the feature for the DB cluster that the IAM role is to be
+    -- disassociated from. For the list of supported feature names, see
+    -- <https://docs.aws.amazon.com/neptune/latest/userguide/api-other-apis.html#DescribeDBEngineVersions DescribeDBEngineVersions>.
+    featureName :: Prelude.Maybe Prelude.Text,
+    -- | The name of the DB cluster to disassociate the IAM role from.
+    dbClusterIdentifier :: Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the IAM role to disassociate from the
+    -- DB cluster, for example
+    -- @arn:aws:iam::123456789012:role\/NeptuneAccessRole@.
+    roleArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RemoveRoleFromDBCluster' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'featureName', 'removeRoleFromDBCluster_featureName' - The name of the feature for the DB cluster that the IAM role is to be
+-- disassociated from. For the list of supported feature names, see
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/api-other-apis.html#DescribeDBEngineVersions DescribeDBEngineVersions>.
+--
+-- 'dbClusterIdentifier', 'removeRoleFromDBCluster_dbClusterIdentifier' - The name of the DB cluster to disassociate the IAM role from.
+--
+-- 'roleArn', 'removeRoleFromDBCluster_roleArn' - The Amazon Resource Name (ARN) of the IAM role to disassociate from the
+-- DB cluster, for example
+-- @arn:aws:iam::123456789012:role\/NeptuneAccessRole@.
+newRemoveRoleFromDBCluster ::
+  -- | 'dbClusterIdentifier'
+  Prelude.Text ->
+  -- | 'roleArn'
+  Prelude.Text ->
+  RemoveRoleFromDBCluster
+newRemoveRoleFromDBCluster
+  pDBClusterIdentifier_
+  pRoleArn_ =
+    RemoveRoleFromDBCluster'
+      { featureName =
+          Prelude.Nothing,
+        dbClusterIdentifier = pDBClusterIdentifier_,
+        roleArn = pRoleArn_
+      }
+
+-- | The name of the feature for the DB cluster that the IAM role is to be
+-- disassociated from. For the list of supported feature names, see
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/api-other-apis.html#DescribeDBEngineVersions DescribeDBEngineVersions>.
+removeRoleFromDBCluster_featureName :: Lens.Lens' RemoveRoleFromDBCluster (Prelude.Maybe Prelude.Text)
+removeRoleFromDBCluster_featureName = Lens.lens (\RemoveRoleFromDBCluster' {featureName} -> featureName) (\s@RemoveRoleFromDBCluster' {} a -> s {featureName = a} :: RemoveRoleFromDBCluster)
+
+-- | The name of the DB cluster to disassociate the IAM role from.
+removeRoleFromDBCluster_dbClusterIdentifier :: Lens.Lens' RemoveRoleFromDBCluster Prelude.Text
+removeRoleFromDBCluster_dbClusterIdentifier = Lens.lens (\RemoveRoleFromDBCluster' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@RemoveRoleFromDBCluster' {} a -> s {dbClusterIdentifier = a} :: RemoveRoleFromDBCluster)
+
+-- | The Amazon Resource Name (ARN) of the IAM role to disassociate from the
+-- DB cluster, for example
+-- @arn:aws:iam::123456789012:role\/NeptuneAccessRole@.
+removeRoleFromDBCluster_roleArn :: Lens.Lens' RemoveRoleFromDBCluster Prelude.Text
+removeRoleFromDBCluster_roleArn = Lens.lens (\RemoveRoleFromDBCluster' {roleArn} -> roleArn) (\s@RemoveRoleFromDBCluster' {} a -> s {roleArn = a} :: RemoveRoleFromDBCluster)
+
+instance Core.AWSRequest RemoveRoleFromDBCluster where
+  type
+    AWSResponse RemoveRoleFromDBCluster =
+      RemoveRoleFromDBClusterResponse
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveNull
+      RemoveRoleFromDBClusterResponse'
+
+instance Prelude.Hashable RemoveRoleFromDBCluster where
+  hashWithSalt _salt RemoveRoleFromDBCluster' {..} =
+    _salt
+      `Prelude.hashWithSalt` featureName
+      `Prelude.hashWithSalt` dbClusterIdentifier
+      `Prelude.hashWithSalt` roleArn
+
+instance Prelude.NFData RemoveRoleFromDBCluster where
+  rnf RemoveRoleFromDBCluster' {..} =
+    Prelude.rnf featureName
+      `Prelude.seq` Prelude.rnf dbClusterIdentifier
+      `Prelude.seq` Prelude.rnf roleArn
+
+instance Data.ToHeaders RemoveRoleFromDBCluster where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath RemoveRoleFromDBCluster where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery RemoveRoleFromDBCluster where
+  toQuery RemoveRoleFromDBCluster' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ("RemoveRoleFromDBCluster" :: Prelude.ByteString),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "FeatureName" Data.=: featureName,
+        "DBClusterIdentifier" Data.=: dbClusterIdentifier,
+        "RoleArn" Data.=: roleArn
+      ]
+
+-- | /See:/ 'newRemoveRoleFromDBClusterResponse' smart constructor.
+data RemoveRoleFromDBClusterResponse = RemoveRoleFromDBClusterResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RemoveRoleFromDBClusterResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newRemoveRoleFromDBClusterResponse ::
+  RemoveRoleFromDBClusterResponse
+newRemoveRoleFromDBClusterResponse =
+  RemoveRoleFromDBClusterResponse'
+
+instance
+  Prelude.NFData
+    RemoveRoleFromDBClusterResponse
+  where
+  rnf _ = ()
diff --git a/gen/Amazonka/Neptune/RemoveSourceIdentifierFromSubscription.hs b/gen/Amazonka/Neptune/RemoveSourceIdentifierFromSubscription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/RemoveSourceIdentifierFromSubscription.hs
@@ -0,0 +1,217 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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 event notification
+-- subscription.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newRemoveSourceIdentifierFromSubscription' smart constructor.
+data RemoveSourceIdentifierFromSubscription = RemoveSourceIdentifierFromSubscription'
+  { -- | The name of the event notification subscription you want to remove a
+    -- source identifier from.
+    subscriptionName :: Prelude.Text,
+    -- | The source identifier to be removed from the subscription, such as the
+    -- __DB instance identifier__ for a DB 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 event notification subscription you want to remove a
+-- source identifier from.
+--
+-- 'sourceIdentifier', 'removeSourceIdentifierFromSubscription_sourceIdentifier' - The source identifier to be removed from the subscription, such as the
+-- __DB instance identifier__ for a DB 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 event notification subscription 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
+-- __DB instance identifier__ for a DB 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
diff --git a/gen/Amazonka/Neptune/RemoveTagsFromResource.hs b/gen/Amazonka/Neptune/RemoveTagsFromResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/RemoveTagsFromResource.hs
@@ -0,0 +1,152 @@
+{-# 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.Neptune.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 Neptune resource.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newRemoveTagsFromResource' smart constructor.
+data RemoveTagsFromResource = RemoveTagsFromResource'
+  { -- | The Amazon Neptune resource that the tags are removed from. This value
+    -- is an Amazon Resource Name (ARN). For information about creating an ARN,
+    -- see
+    -- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing 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 Neptune resource that the tags are removed from. This value
+-- is an Amazon Resource Name (ARN). For information about creating an ARN,
+-- see
+-- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing 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 Neptune resource that the tags are removed from. This value
+-- is an Amazon Resource Name (ARN). For information about creating an ARN,
+-- see
+-- <https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing Constructing 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 _ = ()
diff --git a/gen/Amazonka/Neptune/ResetDBClusterParameterGroup.hs b/gen/Amazonka/Neptune/ResetDBClusterParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/ResetDBClusterParameterGroup.hs
@@ -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.Neptune.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 DB cluster parameter group to the default
+-- value. To reset specific parameters submit a list of the following:
+-- @ParameterName@ and @ApplyMethod@. To reset the entire DB cluster
+-- parameter group, specify the @DBClusterParameterGroupName@ and
+-- @ResetAllParameters@ parameters.
+--
+-- When resetting the entire group, dynamic parameters are updated
+-- immediately and static parameters are set to @pending-reboot@ to take
+-- effect on the next DB instance restart or RebootDBInstance request. You
+-- must call RebootDBInstance for every DB instance in your DB cluster that
+-- you want the updated static parameter to apply to.
+module Amazonka.Neptune.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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newResetDBClusterParameterGroup' smart constructor.
+data ResetDBClusterParameterGroup = ResetDBClusterParameterGroup'
+  { -- | A list of parameter names in the DB 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 DB 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 DB 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 DB 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 DB 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 DB 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 DB 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 DB 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 DB 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
+      ]
diff --git a/gen/Amazonka/Neptune/ResetDBParameterGroup.hs b/gen/Amazonka/Neptune/ResetDBParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/ResetDBParameterGroup.hs
@@ -0,0 +1,186 @@
+{-# 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.Neptune.ResetDBParameterGroup
+-- 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 DB parameter group to the engine\/system
+-- default value. To reset specific parameters, provide a list of the
+-- following: @ParameterName@ and @ApplyMethod@. To reset the entire DB
+-- parameter group, specify the @DBParameterGroup@ name and
+-- @ResetAllParameters@ parameters. When resetting the entire group,
+-- dynamic parameters are updated immediately and static parameters are set
+-- to @pending-reboot@ to take effect on the next DB instance restart or
+-- @RebootDBInstance@ request.
+module Amazonka.Neptune.ResetDBParameterGroup
+  ( -- * Creating a Request
+    ResetDBParameterGroup (..),
+    newResetDBParameterGroup,
+
+    -- * Request Lenses
+    resetDBParameterGroup_parameters,
+    resetDBParameterGroup_resetAllParameters,
+    resetDBParameterGroup_dbParameterGroupName,
+
+    -- * Destructuring the Response
+    DBParameterGroupNameMessage (..),
+    newDBParameterGroupNameMessage,
+
+    -- * Response Lenses
+    dbParameterGroupNameMessage_dbParameterGroupName,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newResetDBParameterGroup' smart constructor.
+data ResetDBParameterGroup = ResetDBParameterGroup'
+  { -- | To reset the entire DB parameter group, specify the @DBParameterGroup@
+    -- name and @ResetAllParameters@ parameters. To reset specific parameters,
+    -- provide a list of the following: @ParameterName@ and @ApplyMethod@. A
+    -- maximum of 20 parameters can be modified in a single request.
+    --
+    -- Valid Values (for Apply method): @pending-reboot@
+    parameters :: Prelude.Maybe [Parameter],
+    -- | Specifies whether (@true@) or not (@false@) to reset all parameters in
+    -- the DB parameter group to default values.
+    --
+    -- Default: @true@
+    resetAllParameters :: Prelude.Maybe Prelude.Bool,
+    -- | The name of the DB parameter group.
+    --
+    -- Constraints:
+    --
+    -- -   Must match the name of an existing DBParameterGroup.
+    dbParameterGroupName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ResetDBParameterGroup' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'resetDBParameterGroup_parameters' - To reset the entire DB parameter group, specify the @DBParameterGroup@
+-- name and @ResetAllParameters@ parameters. To reset specific parameters,
+-- provide a list of the following: @ParameterName@ and @ApplyMethod@. A
+-- maximum of 20 parameters can be modified in a single request.
+--
+-- Valid Values (for Apply method): @pending-reboot@
+--
+-- 'resetAllParameters', 'resetDBParameterGroup_resetAllParameters' - Specifies whether (@true@) or not (@false@) to reset all parameters in
+-- the DB parameter group to default values.
+--
+-- Default: @true@
+--
+-- 'dbParameterGroupName', 'resetDBParameterGroup_dbParameterGroupName' - The name of the DB parameter group.
+--
+-- Constraints:
+--
+-- -   Must match the name of an existing DBParameterGroup.
+newResetDBParameterGroup ::
+  -- | 'dbParameterGroupName'
+  Prelude.Text ->
+  ResetDBParameterGroup
+newResetDBParameterGroup pDBParameterGroupName_ =
+  ResetDBParameterGroup'
+    { parameters =
+        Prelude.Nothing,
+      resetAllParameters = Prelude.Nothing,
+      dbParameterGroupName = pDBParameterGroupName_
+    }
+
+-- | To reset the entire DB parameter group, specify the @DBParameterGroup@
+-- name and @ResetAllParameters@ parameters. To reset specific parameters,
+-- provide a list of the following: @ParameterName@ and @ApplyMethod@. A
+-- maximum of 20 parameters can be modified in a single request.
+--
+-- Valid Values (for Apply method): @pending-reboot@
+resetDBParameterGroup_parameters :: Lens.Lens' ResetDBParameterGroup (Prelude.Maybe [Parameter])
+resetDBParameterGroup_parameters = Lens.lens (\ResetDBParameterGroup' {parameters} -> parameters) (\s@ResetDBParameterGroup' {} a -> s {parameters = a} :: ResetDBParameterGroup) Prelude.. Lens.mapping Lens.coerced
+
+-- | Specifies whether (@true@) or not (@false@) to reset all parameters in
+-- the DB parameter group to default values.
+--
+-- Default: @true@
+resetDBParameterGroup_resetAllParameters :: Lens.Lens' ResetDBParameterGroup (Prelude.Maybe Prelude.Bool)
+resetDBParameterGroup_resetAllParameters = Lens.lens (\ResetDBParameterGroup' {resetAllParameters} -> resetAllParameters) (\s@ResetDBParameterGroup' {} a -> s {resetAllParameters = a} :: ResetDBParameterGroup)
+
+-- | The name of the DB parameter group.
+--
+-- Constraints:
+--
+-- -   Must match the name of an existing DBParameterGroup.
+resetDBParameterGroup_dbParameterGroupName :: Lens.Lens' ResetDBParameterGroup Prelude.Text
+resetDBParameterGroup_dbParameterGroupName = Lens.lens (\ResetDBParameterGroup' {dbParameterGroupName} -> dbParameterGroupName) (\s@ResetDBParameterGroup' {} a -> s {dbParameterGroupName = a} :: ResetDBParameterGroup)
+
+instance Core.AWSRequest ResetDBParameterGroup where
+  type
+    AWSResponse ResetDBParameterGroup =
+      DBParameterGroupNameMessage
+  request overrides =
+    Request.postQuery (overrides defaultService)
+  response =
+    Response.receiveXMLWrapper
+      "ResetDBParameterGroupResult"
+      (\s h x -> Data.parseXML x)
+
+instance Prelude.Hashable ResetDBParameterGroup where
+  hashWithSalt _salt ResetDBParameterGroup' {..} =
+    _salt
+      `Prelude.hashWithSalt` parameters
+      `Prelude.hashWithSalt` resetAllParameters
+      `Prelude.hashWithSalt` dbParameterGroupName
+
+instance Prelude.NFData ResetDBParameterGroup where
+  rnf ResetDBParameterGroup' {..} =
+    Prelude.rnf parameters
+      `Prelude.seq` Prelude.rnf resetAllParameters
+      `Prelude.seq` Prelude.rnf dbParameterGroupName
+
+instance Data.ToHeaders ResetDBParameterGroup where
+  toHeaders = Prelude.const Prelude.mempty
+
+instance Data.ToPath ResetDBParameterGroup where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ResetDBParameterGroup where
+  toQuery ResetDBParameterGroup' {..} =
+    Prelude.mconcat
+      [ "Action"
+          Data.=: ("ResetDBParameterGroup" :: Prelude.ByteString),
+        "Version"
+          Data.=: ("2014-10-31" :: Prelude.ByteString),
+        "Parameters"
+          Data.=: Data.toQuery
+            ( Data.toQueryList "Parameter"
+                Prelude.<$> parameters
+            ),
+        "ResetAllParameters" Data.=: resetAllParameters,
+        "DBParameterGroupName" Data.=: dbParameterGroupName
+      ]
diff --git a/gen/Amazonka/Neptune/RestoreDBClusterFromSnapshot.hs b/gen/Amazonka/Neptune/RestoreDBClusterFromSnapshot.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/RestoreDBClusterFromSnapshot.hs
@@ -0,0 +1,616 @@
+{-# 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.Neptune.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 DB cluster from a DB snapshot or DB cluster snapshot.
+--
+-- If a DB snapshot is specified, the target DB cluster is created from the
+-- source DB snapshot with a default configuration and default security
+-- group.
+--
+-- If a DB cluster snapshot is specified, the target DB cluster is created
+-- from the source DB cluster restore point with the same configuration as
+-- the original source DB cluster, except that the new DB cluster is
+-- created with the default security group.
+module Amazonka.Neptune.RestoreDBClusterFromSnapshot
+  ( -- * Creating a Request
+    RestoreDBClusterFromSnapshot (..),
+    newRestoreDBClusterFromSnapshot,
+
+    -- * Request Lenses
+    restoreDBClusterFromSnapshot_availabilityZones,
+    restoreDBClusterFromSnapshot_copyTagsToSnapshot,
+    restoreDBClusterFromSnapshot_dbClusterParameterGroupName,
+    restoreDBClusterFromSnapshot_dbSubnetGroupName,
+    restoreDBClusterFromSnapshot_databaseName,
+    restoreDBClusterFromSnapshot_deletionProtection,
+    restoreDBClusterFromSnapshot_enableCloudwatchLogsExports,
+    restoreDBClusterFromSnapshot_enableIAMDatabaseAuthentication,
+    restoreDBClusterFromSnapshot_engineVersion,
+    restoreDBClusterFromSnapshot_kmsKeyId,
+    restoreDBClusterFromSnapshot_optionGroupName,
+    restoreDBClusterFromSnapshot_port,
+    restoreDBClusterFromSnapshot_serverlessV2ScalingConfiguration,
+    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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newRestoreDBClusterFromSnapshot' smart constructor.
+data RestoreDBClusterFromSnapshot = RestoreDBClusterFromSnapshot'
+  { -- | Provides the list of EC2 Availability Zones that instances in the
+    -- restored DB cluster can be created in.
+    availabilityZones :: Prelude.Maybe [Prelude.Text],
+    -- | /If set to @true@, tags are copied to any snapshot of the restored DB
+    -- cluster that is created./
+    copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,
+    -- | The name of the DB cluster parameter group to associate with the new DB
+    -- cluster.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, must match the name of an existing
+    --     DBClusterParameterGroup.
+    dbClusterParameterGroupName :: Prelude.Maybe Prelude.Text,
+    -- | The name of the DB subnet group to use for the new DB cluster.
+    --
+    -- Constraints: If supplied, must match the name of an existing
+    -- DBSubnetGroup.
+    --
+    -- Example: @mySubnetgroup@
+    dbSubnetGroupName :: Prelude.Maybe Prelude.Text,
+    -- | Not supported.
+    databaseName :: Prelude.Maybe Prelude.Text,
+    -- | A value that indicates whether the DB cluster has deletion protection
+    -- enabled. The database can\'t be deleted when deletion protection is
+    -- enabled. By default, deletion protection is disabled.
+    deletionProtection :: Prelude.Maybe Prelude.Bool,
+    -- | The list of logs that the restored DB cluster is to export to Amazon
+    -- CloudWatch Logs.
+    enableCloudwatchLogsExports :: Prelude.Maybe [Prelude.Text],
+    -- | True to enable mapping of Amazon Identity and Access Management (IAM)
+    -- accounts to database accounts, and otherwise false.
+    --
+    -- Default: @false@
+    enableIAMDatabaseAuthentication :: Prelude.Maybe Prelude.Bool,
+    -- | The version of the database engine to use for the new DB cluster.
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon KMS key identifier to use when restoring an encrypted DB
+    -- cluster from a DB snapshot or DB cluster snapshot.
+    --
+    -- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
+    -- encryption key. If you are restoring a DB cluster with the same Amazon
+    -- account that owns the KMS encryption key used to encrypt the new DB
+    -- 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 will occur:
+    --
+    -- -   If the DB snapshot or DB cluster snapshot in @SnapshotIdentifier@ is
+    --     encrypted, then the restored DB cluster is encrypted using the KMS
+    --     key that was used to encrypt the DB snapshot or DB cluster snapshot.
+    --
+    -- -   If the DB snapshot or DB cluster snapshot in @SnapshotIdentifier@ is
+    --     not encrypted, then the restored DB cluster is not encrypted.
+    kmsKeyId :: Prelude.Maybe Prelude.Text,
+    -- | /(Not supported by Neptune)/
+    optionGroupName :: Prelude.Maybe Prelude.Text,
+    -- | The port number on which the new DB cluster accepts connections.
+    --
+    -- Constraints: Value must be @1150-65535@
+    --
+    -- Default: The same port as the original DB cluster.
+    port :: Prelude.Maybe Prelude.Int,
+    serverlessV2ScalingConfiguration :: Prelude.Maybe ServerlessV2ScalingConfiguration,
+    -- | The tags to be assigned to the restored DB cluster.
+    tags :: Prelude.Maybe [Tag],
+    -- | A list of VPC security groups that the new DB cluster will belong to.
+    vpcSecurityGroupIds :: Prelude.Maybe [Prelude.Text],
+    -- | The name of the DB cluster to create from the DB snapshot or DB cluster
+    -- snapshot. This parameter isn\'t case-sensitive.
+    --
+    -- Constraints:
+    --
+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens
+    --
+    -- -   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 DB snapshot or DB cluster snapshot to restore
+    -- from.
+    --
+    -- You can use either the name or the Amazon Resource Name (ARN) to specify
+    -- a DB cluster snapshot. However, you can use only the ARN to specify a DB
+    -- snapshot.
+    --
+    -- Constraints:
+    --
+    -- -   Must match the identifier of an existing Snapshot.
+    snapshotIdentifier :: Prelude.Text,
+    -- | The database engine to use for the new DB 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 EC2 Availability Zones that instances in the
+-- restored DB cluster can be created in.
+--
+-- 'copyTagsToSnapshot', 'restoreDBClusterFromSnapshot_copyTagsToSnapshot' - /If set to @true@, tags are copied to any snapshot of the restored DB
+-- cluster that is created./
+--
+-- 'dbClusterParameterGroupName', 'restoreDBClusterFromSnapshot_dbClusterParameterGroupName' - The name of the DB cluster parameter group to associate with the new DB
+-- cluster.
+--
+-- Constraints:
+--
+-- -   If supplied, must match the name of an existing
+--     DBClusterParameterGroup.
+--
+-- 'dbSubnetGroupName', 'restoreDBClusterFromSnapshot_dbSubnetGroupName' - The name of the DB subnet group to use for the new DB cluster.
+--
+-- Constraints: If supplied, must match the name of an existing
+-- DBSubnetGroup.
+--
+-- Example: @mySubnetgroup@
+--
+-- 'databaseName', 'restoreDBClusterFromSnapshot_databaseName' - Not supported.
+--
+-- 'deletionProtection', 'restoreDBClusterFromSnapshot_deletionProtection' - A value that indicates whether the DB cluster has deletion protection
+-- enabled. The database can\'t be deleted when deletion protection is
+-- enabled. By default, deletion protection is disabled.
+--
+-- 'enableCloudwatchLogsExports', 'restoreDBClusterFromSnapshot_enableCloudwatchLogsExports' - The list of logs that the restored DB cluster is to export to Amazon
+-- CloudWatch Logs.
+--
+-- 'enableIAMDatabaseAuthentication', 'restoreDBClusterFromSnapshot_enableIAMDatabaseAuthentication' - True to enable mapping of Amazon Identity and Access Management (IAM)
+-- accounts to database accounts, and otherwise false.
+--
+-- Default: @false@
+--
+-- 'engineVersion', 'restoreDBClusterFromSnapshot_engineVersion' - The version of the database engine to use for the new DB cluster.
+--
+-- 'kmsKeyId', 'restoreDBClusterFromSnapshot_kmsKeyId' - The Amazon KMS key identifier to use when restoring an encrypted DB
+-- cluster from a DB snapshot or DB cluster snapshot.
+--
+-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
+-- encryption key. If you are restoring a DB cluster with the same Amazon
+-- account that owns the KMS encryption key used to encrypt the new DB
+-- 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 will occur:
+--
+-- -   If the DB snapshot or DB cluster snapshot in @SnapshotIdentifier@ is
+--     encrypted, then the restored DB cluster is encrypted using the KMS
+--     key that was used to encrypt the DB snapshot or DB cluster snapshot.
+--
+-- -   If the DB snapshot or DB cluster snapshot in @SnapshotIdentifier@ is
+--     not encrypted, then the restored DB cluster is not encrypted.
+--
+-- 'optionGroupName', 'restoreDBClusterFromSnapshot_optionGroupName' - /(Not supported by Neptune)/
+--
+-- 'port', 'restoreDBClusterFromSnapshot_port' - The port number on which the new DB cluster accepts connections.
+--
+-- Constraints: Value must be @1150-65535@
+--
+-- Default: The same port as the original DB cluster.
+--
+-- 'serverlessV2ScalingConfiguration', 'restoreDBClusterFromSnapshot_serverlessV2ScalingConfiguration' - Undocumented member.
+--
+-- 'tags', 'restoreDBClusterFromSnapshot_tags' - The tags to be assigned to the restored DB cluster.
+--
+-- 'vpcSecurityGroupIds', 'restoreDBClusterFromSnapshot_vpcSecurityGroupIds' - A list of VPC security groups that the new DB cluster will belong to.
+--
+-- 'dbClusterIdentifier', 'restoreDBClusterFromSnapshot_dbClusterIdentifier' - The name of the DB cluster to create from the DB snapshot or DB cluster
+-- snapshot. This parameter isn\'t case-sensitive.
+--
+-- Constraints:
+--
+-- -   Must contain from 1 to 63 letters, numbers, or hyphens
+--
+-- -   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 DB snapshot or DB cluster snapshot to restore
+-- from.
+--
+-- You can use either the name or the Amazon Resource Name (ARN) to specify
+-- a DB cluster snapshot. However, you can use only the ARN to specify a DB
+-- snapshot.
+--
+-- Constraints:
+--
+-- -   Must match the identifier of an existing Snapshot.
+--
+-- 'engine', 'restoreDBClusterFromSnapshot_engine' - The database engine to use for the new DB 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,
+        copyTagsToSnapshot = Prelude.Nothing,
+        dbClusterParameterGroupName = Prelude.Nothing,
+        dbSubnetGroupName = Prelude.Nothing,
+        databaseName = Prelude.Nothing,
+        deletionProtection = Prelude.Nothing,
+        enableCloudwatchLogsExports = Prelude.Nothing,
+        enableIAMDatabaseAuthentication =
+          Prelude.Nothing,
+        engineVersion = Prelude.Nothing,
+        kmsKeyId = Prelude.Nothing,
+        optionGroupName = Prelude.Nothing,
+        port = Prelude.Nothing,
+        serverlessV2ScalingConfiguration =
+          Prelude.Nothing,
+        tags = Prelude.Nothing,
+        vpcSecurityGroupIds = Prelude.Nothing,
+        dbClusterIdentifier = pDBClusterIdentifier_,
+        snapshotIdentifier = pSnapshotIdentifier_,
+        engine = pEngine_
+      }
+
+-- | Provides the list of 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
+
+-- | /If set to @true@, tags are copied to any snapshot of the restored DB
+-- cluster that is created./
+restoreDBClusterFromSnapshot_copyTagsToSnapshot :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe Prelude.Bool)
+restoreDBClusterFromSnapshot_copyTagsToSnapshot = Lens.lens (\RestoreDBClusterFromSnapshot' {copyTagsToSnapshot} -> copyTagsToSnapshot) (\s@RestoreDBClusterFromSnapshot' {} a -> s {copyTagsToSnapshot = a} :: RestoreDBClusterFromSnapshot)
+
+-- | The name of the DB cluster parameter group to associate with the new DB
+-- cluster.
+--
+-- Constraints:
+--
+-- -   If supplied, must match the name of an existing
+--     DBClusterParameterGroup.
+restoreDBClusterFromSnapshot_dbClusterParameterGroupName :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe Prelude.Text)
+restoreDBClusterFromSnapshot_dbClusterParameterGroupName = Lens.lens (\RestoreDBClusterFromSnapshot' {dbClusterParameterGroupName} -> dbClusterParameterGroupName) (\s@RestoreDBClusterFromSnapshot' {} a -> s {dbClusterParameterGroupName = a} :: RestoreDBClusterFromSnapshot)
+
+-- | The name of the DB subnet group to use for the new DB cluster.
+--
+-- Constraints: If supplied, 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)
+
+-- | Not supported.
+restoreDBClusterFromSnapshot_databaseName :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe Prelude.Text)
+restoreDBClusterFromSnapshot_databaseName = Lens.lens (\RestoreDBClusterFromSnapshot' {databaseName} -> databaseName) (\s@RestoreDBClusterFromSnapshot' {} a -> s {databaseName = a} :: RestoreDBClusterFromSnapshot)
+
+-- | A value that indicates whether the DB cluster has deletion protection
+-- enabled. The database can\'t be deleted when deletion protection is
+-- enabled. By default, deletion protection is disabled.
+restoreDBClusterFromSnapshot_deletionProtection :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe Prelude.Bool)
+restoreDBClusterFromSnapshot_deletionProtection = Lens.lens (\RestoreDBClusterFromSnapshot' {deletionProtection} -> deletionProtection) (\s@RestoreDBClusterFromSnapshot' {} a -> s {deletionProtection = a} :: RestoreDBClusterFromSnapshot)
+
+-- | The list of logs that the restored DB cluster is to export 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
+
+-- | True to enable mapping of Amazon Identity and Access Management (IAM)
+-- accounts to database accounts, and otherwise false.
+--
+-- Default: @false@
+restoreDBClusterFromSnapshot_enableIAMDatabaseAuthentication :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe Prelude.Bool)
+restoreDBClusterFromSnapshot_enableIAMDatabaseAuthentication = Lens.lens (\RestoreDBClusterFromSnapshot' {enableIAMDatabaseAuthentication} -> enableIAMDatabaseAuthentication) (\s@RestoreDBClusterFromSnapshot' {} a -> s {enableIAMDatabaseAuthentication = a} :: RestoreDBClusterFromSnapshot)
+
+-- | The version of the database engine to use for the new DB 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 Amazon KMS key identifier to use when restoring an encrypted DB
+-- cluster from a DB snapshot or DB cluster snapshot.
+--
+-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
+-- encryption key. If you are restoring a DB cluster with the same Amazon
+-- account that owns the KMS encryption key used to encrypt the new DB
+-- 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 will occur:
+--
+-- -   If the DB snapshot or DB cluster snapshot in @SnapshotIdentifier@ is
+--     encrypted, then the restored DB cluster is encrypted using the KMS
+--     key that was used to encrypt the DB snapshot or DB cluster snapshot.
+--
+-- -   If the DB snapshot or DB 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)
+
+-- | /(Not supported by Neptune)/
+restoreDBClusterFromSnapshot_optionGroupName :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe Prelude.Text)
+restoreDBClusterFromSnapshot_optionGroupName = Lens.lens (\RestoreDBClusterFromSnapshot' {optionGroupName} -> optionGroupName) (\s@RestoreDBClusterFromSnapshot' {} a -> s {optionGroupName = a} :: RestoreDBClusterFromSnapshot)
+
+-- | The port number on which the new DB cluster accepts connections.
+--
+-- Constraints: Value must be @1150-65535@
+--
+-- Default: The same port as the original DB cluster.
+restoreDBClusterFromSnapshot_port :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe Prelude.Int)
+restoreDBClusterFromSnapshot_port = Lens.lens (\RestoreDBClusterFromSnapshot' {port} -> port) (\s@RestoreDBClusterFromSnapshot' {} a -> s {port = a} :: RestoreDBClusterFromSnapshot)
+
+-- | Undocumented member.
+restoreDBClusterFromSnapshot_serverlessV2ScalingConfiguration :: Lens.Lens' RestoreDBClusterFromSnapshot (Prelude.Maybe ServerlessV2ScalingConfiguration)
+restoreDBClusterFromSnapshot_serverlessV2ScalingConfiguration = Lens.lens (\RestoreDBClusterFromSnapshot' {serverlessV2ScalingConfiguration} -> serverlessV2ScalingConfiguration) (\s@RestoreDBClusterFromSnapshot' {} a -> s {serverlessV2ScalingConfiguration = a} :: RestoreDBClusterFromSnapshot)
+
+-- | The tags to be assigned to the restored DB 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 VPC security groups that the new DB 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 DB cluster to create from the DB snapshot or DB cluster
+-- snapshot. This parameter isn\'t case-sensitive.
+--
+-- Constraints:
+--
+-- -   Must contain from 1 to 63 letters, numbers, or hyphens
+--
+-- -   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 DB snapshot or DB cluster snapshot to restore
+-- from.
+--
+-- You can use either the name or the Amazon Resource Name (ARN) to specify
+-- a DB cluster snapshot. However, you can use only the ARN to specify a DB
+-- 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 DB 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` copyTagsToSnapshot
+      `Prelude.hashWithSalt` dbClusterParameterGroupName
+      `Prelude.hashWithSalt` dbSubnetGroupName
+      `Prelude.hashWithSalt` databaseName
+      `Prelude.hashWithSalt` deletionProtection
+      `Prelude.hashWithSalt` enableCloudwatchLogsExports
+      `Prelude.hashWithSalt` enableIAMDatabaseAuthentication
+      `Prelude.hashWithSalt` engineVersion
+      `Prelude.hashWithSalt` kmsKeyId
+      `Prelude.hashWithSalt` optionGroupName
+      `Prelude.hashWithSalt` port
+      `Prelude.hashWithSalt` serverlessV2ScalingConfiguration
+      `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 copyTagsToSnapshot
+      `Prelude.seq` Prelude.rnf dbClusterParameterGroupName
+      `Prelude.seq` Prelude.rnf dbSubnetGroupName
+      `Prelude.seq` Prelude.rnf databaseName
+      `Prelude.seq` Prelude.rnf deletionProtection
+      `Prelude.seq` Prelude.rnf enableCloudwatchLogsExports
+      `Prelude.seq` Prelude.rnf enableIAMDatabaseAuthentication
+      `Prelude.seq` Prelude.rnf engineVersion
+      `Prelude.seq` Prelude.rnf kmsKeyId
+      `Prelude.seq` Prelude.rnf optionGroupName
+      `Prelude.seq` Prelude.rnf port
+      `Prelude.seq` Prelude.rnf serverlessV2ScalingConfiguration
+      `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
+            ),
+        "CopyTagsToSnapshot" Data.=: copyTagsToSnapshot,
+        "DBClusterParameterGroupName"
+          Data.=: dbClusterParameterGroupName,
+        "DBSubnetGroupName" Data.=: dbSubnetGroupName,
+        "DatabaseName" Data.=: databaseName,
+        "DeletionProtection" Data.=: deletionProtection,
+        "EnableCloudwatchLogsExports"
+          Data.=: Data.toQuery
+            ( Data.toQueryList "member"
+                Prelude.<$> enableCloudwatchLogsExports
+            ),
+        "EnableIAMDatabaseAuthentication"
+          Data.=: enableIAMDatabaseAuthentication,
+        "EngineVersion" Data.=: engineVersion,
+        "KmsKeyId" Data.=: kmsKeyId,
+        "OptionGroupName" Data.=: optionGroupName,
+        "Port" Data.=: port,
+        "ServerlessV2ScalingConfiguration"
+          Data.=: serverlessV2ScalingConfiguration,
+        "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
diff --git a/gen/Amazonka/Neptune/RestoreDBClusterToPointInTime.hs b/gen/Amazonka/Neptune/RestoreDBClusterToPointInTime.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/RestoreDBClusterToPointInTime.hs
@@ -0,0 +1,671 @@
+{-# 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.Neptune.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 DB cluster to an arbitrary point in time. Users can restore
+-- to any point in time before @LatestRestorableTime@ for up to
+-- @BackupRetentionPeriod@ days. The target DB cluster is created from the
+-- source DB cluster with the same configuration as the original DB
+-- cluster, except that the new DB cluster is created with the default DB
+-- security group.
+--
+-- This action only restores the DB cluster, not the DB instances for that
+-- DB cluster. You must invoke the CreateDBInstance action to create DB
+-- instances for the restored DB cluster, specifying the identifier of the
+-- restored DB cluster in @DBClusterIdentifier@. You can create DB
+-- instances only after the @RestoreDBClusterToPointInTime@ action has
+-- completed and the DB cluster is available.
+module Amazonka.Neptune.RestoreDBClusterToPointInTime
+  ( -- * Creating a Request
+    RestoreDBClusterToPointInTime (..),
+    newRestoreDBClusterToPointInTime,
+
+    -- * Request Lenses
+    restoreDBClusterToPointInTime_dbClusterParameterGroupName,
+    restoreDBClusterToPointInTime_dbSubnetGroupName,
+    restoreDBClusterToPointInTime_deletionProtection,
+    restoreDBClusterToPointInTime_enableCloudwatchLogsExports,
+    restoreDBClusterToPointInTime_enableIAMDatabaseAuthentication,
+    restoreDBClusterToPointInTime_kmsKeyId,
+    restoreDBClusterToPointInTime_optionGroupName,
+    restoreDBClusterToPointInTime_port,
+    restoreDBClusterToPointInTime_restoreToTime,
+    restoreDBClusterToPointInTime_restoreType,
+    restoreDBClusterToPointInTime_serverlessV2ScalingConfiguration,
+    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.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newRestoreDBClusterToPointInTime' smart constructor.
+data RestoreDBClusterToPointInTime = RestoreDBClusterToPointInTime'
+  { -- | The name of the DB cluster parameter group to associate with the new DB
+    -- cluster.
+    --
+    -- Constraints:
+    --
+    -- -   If supplied, must match the name of an existing
+    --     DBClusterParameterGroup.
+    dbClusterParameterGroupName :: Prelude.Maybe Prelude.Text,
+    -- | The DB subnet group name to use for the new DB cluster.
+    --
+    -- Constraints: If supplied, must match the name of an existing
+    -- DBSubnetGroup.
+    --
+    -- Example: @mySubnetgroup@
+    dbSubnetGroupName :: Prelude.Maybe Prelude.Text,
+    -- | A value that indicates whether the DB cluster has deletion protection
+    -- enabled. The database can\'t be deleted when deletion protection is
+    -- enabled. By default, deletion protection is disabled.
+    deletionProtection :: Prelude.Maybe Prelude.Bool,
+    -- | The list of logs that the restored DB cluster is to export to CloudWatch
+    -- Logs.
+    enableCloudwatchLogsExports :: Prelude.Maybe [Prelude.Text],
+    -- | True to enable mapping of Amazon Identity and Access Management (IAM)
+    -- accounts to database accounts, and otherwise false.
+    --
+    -- Default: @false@
+    enableIAMDatabaseAuthentication :: Prelude.Maybe Prelude.Bool,
+    -- | The Amazon KMS key identifier to use when restoring an encrypted DB
+    -- cluster from an encrypted DB cluster.
+    --
+    -- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
+    -- encryption key. If you are restoring a DB cluster with the same Amazon
+    -- account that owns the KMS encryption key used to encrypt the new DB
+    -- cluster, then you can use the KMS key alias instead of the ARN for the
+    -- KMS encryption key.
+    --
+    -- You can restore to a new DB cluster and encrypt the new DB cluster with
+    -- a KMS key that is different than the KMS key used to encrypt the source
+    -- DB 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 will occur:
+    --
+    -- -   If the DB cluster is encrypted, then the restored DB cluster is
+    --     encrypted using the KMS key that was used to encrypt the source DB
+    --     cluster.
+    --
+    -- -   If the DB cluster is not encrypted, then the restored DB cluster is
+    --     not encrypted.
+    --
+    -- If @DBClusterIdentifier@ refers to a DB cluster that is not encrypted,
+    -- then the restore request is rejected.
+    kmsKeyId :: Prelude.Maybe Prelude.Text,
+    -- | /(Not supported by Neptune)/
+    optionGroupName :: Prelude.Maybe Prelude.Text,
+    -- | The port number on which the new DB cluster accepts connections.
+    --
+    -- Constraints: Value must be @1150-65535@
+    --
+    -- Default: The same port as the original DB cluster.
+    port :: Prelude.Maybe Prelude.Int,
+    -- | The date and time to restore the DB cluster to.
+    --
+    -- Valid Values: Value must be a time in Universal Coordinated Time (UTC)
+    -- format
+    --
+    -- Constraints:
+    --
+    -- -   Must be before the latest restorable time for the DB instance
+    --
+    -- -   Must be specified if @UseLatestRestorableTime@ parameter is not
+    --     provided
+    --
+    -- -   Cannot be specified if @UseLatestRestorableTime@ parameter is true
+    --
+    -- -   Cannot be specified if @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,
+    serverlessV2ScalingConfiguration :: Prelude.Maybe ServerlessV2ScalingConfiguration,
+    -- | The tags to be applied to the restored DB cluster.
+    tags :: Prelude.Maybe [Tag],
+    -- | A value that is set to @true@ to restore the DB cluster to the latest
+    -- restorable backup time, and @false@ otherwise.
+    --
+    -- Default: @false@
+    --
+    -- Constraints: Cannot be specified if @RestoreToTime@ parameter is
+    -- provided.
+    useLatestRestorableTime :: Prelude.Maybe Prelude.Bool,
+    -- | A list of VPC security groups that the new DB cluster belongs to.
+    vpcSecurityGroupIds :: Prelude.Maybe [Prelude.Text],
+    -- | The name of the new DB cluster to be created.
+    --
+    -- Constraints:
+    --
+    -- -   Must contain from 1 to 63 letters, numbers, or hyphens
+    --
+    -- -   First character must be a letter
+    --
+    -- -   Cannot end with a hyphen or contain two consecutive hyphens
+    dbClusterIdentifier :: Prelude.Text,
+    -- | The identifier of the source DB 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:
+--
+-- 'dbClusterParameterGroupName', 'restoreDBClusterToPointInTime_dbClusterParameterGroupName' - The name of the DB cluster parameter group to associate with the new DB
+-- cluster.
+--
+-- Constraints:
+--
+-- -   If supplied, must match the name of an existing
+--     DBClusterParameterGroup.
+--
+-- 'dbSubnetGroupName', 'restoreDBClusterToPointInTime_dbSubnetGroupName' - The DB subnet group name to use for the new DB cluster.
+--
+-- Constraints: If supplied, must match the name of an existing
+-- DBSubnetGroup.
+--
+-- Example: @mySubnetgroup@
+--
+-- 'deletionProtection', 'restoreDBClusterToPointInTime_deletionProtection' - A value that indicates whether the DB cluster has deletion protection
+-- enabled. The database can\'t be deleted when deletion protection is
+-- enabled. By default, deletion protection is disabled.
+--
+-- 'enableCloudwatchLogsExports', 'restoreDBClusterToPointInTime_enableCloudwatchLogsExports' - The list of logs that the restored DB cluster is to export to CloudWatch
+-- Logs.
+--
+-- 'enableIAMDatabaseAuthentication', 'restoreDBClusterToPointInTime_enableIAMDatabaseAuthentication' - True to enable mapping of Amazon Identity and Access Management (IAM)
+-- accounts to database accounts, and otherwise false.
+--
+-- Default: @false@
+--
+-- 'kmsKeyId', 'restoreDBClusterToPointInTime_kmsKeyId' - The Amazon KMS key identifier to use when restoring an encrypted DB
+-- cluster from an encrypted DB cluster.
+--
+-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
+-- encryption key. If you are restoring a DB cluster with the same Amazon
+-- account that owns the KMS encryption key used to encrypt the new DB
+-- cluster, then you can use the KMS key alias instead of the ARN for the
+-- KMS encryption key.
+--
+-- You can restore to a new DB cluster and encrypt the new DB cluster with
+-- a KMS key that is different than the KMS key used to encrypt the source
+-- DB 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 will occur:
+--
+-- -   If the DB cluster is encrypted, then the restored DB cluster is
+--     encrypted using the KMS key that was used to encrypt the source DB
+--     cluster.
+--
+-- -   If the DB cluster is not encrypted, then the restored DB cluster is
+--     not encrypted.
+--
+-- If @DBClusterIdentifier@ refers to a DB cluster that is not encrypted,
+-- then the restore request is rejected.
+--
+-- 'optionGroupName', 'restoreDBClusterToPointInTime_optionGroupName' - /(Not supported by Neptune)/
+--
+-- 'port', 'restoreDBClusterToPointInTime_port' - The port number on which the new DB cluster accepts connections.
+--
+-- Constraints: Value must be @1150-65535@
+--
+-- Default: The same port as the original DB cluster.
+--
+-- 'restoreToTime', 'restoreDBClusterToPointInTime_restoreToTime' - The date and time to restore the DB cluster to.
+--
+-- Valid Values: Value must be a time in Universal Coordinated Time (UTC)
+-- format
+--
+-- Constraints:
+--
+-- -   Must be before the latest restorable time for the DB instance
+--
+-- -   Must be specified if @UseLatestRestorableTime@ parameter is not
+--     provided
+--
+-- -   Cannot be specified if @UseLatestRestorableTime@ parameter is true
+--
+-- -   Cannot be specified if @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.
+--
+-- 'serverlessV2ScalingConfiguration', 'restoreDBClusterToPointInTime_serverlessV2ScalingConfiguration' - Undocumented member.
+--
+-- 'tags', 'restoreDBClusterToPointInTime_tags' - The tags to be applied to the restored DB cluster.
+--
+-- 'useLatestRestorableTime', 'restoreDBClusterToPointInTime_useLatestRestorableTime' - A value that is set to @true@ to restore the DB cluster to the latest
+-- restorable backup time, and @false@ otherwise.
+--
+-- Default: @false@
+--
+-- Constraints: Cannot be specified if @RestoreToTime@ parameter is
+-- provided.
+--
+-- 'vpcSecurityGroupIds', 'restoreDBClusterToPointInTime_vpcSecurityGroupIds' - A list of VPC security groups that the new DB cluster belongs to.
+--
+-- 'dbClusterIdentifier', 'restoreDBClusterToPointInTime_dbClusterIdentifier' - The name of the new DB cluster to be created.
+--
+-- Constraints:
+--
+-- -   Must contain from 1 to 63 letters, numbers, or hyphens
+--
+-- -   First character must be a letter
+--
+-- -   Cannot end with a hyphen or contain two consecutive hyphens
+--
+-- 'sourceDBClusterIdentifier', 'restoreDBClusterToPointInTime_sourceDBClusterIdentifier' - The identifier of the source DB 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'
+      { dbClusterParameterGroupName =
+          Prelude.Nothing,
+        dbSubnetGroupName = Prelude.Nothing,
+        deletionProtection = Prelude.Nothing,
+        enableCloudwatchLogsExports =
+          Prelude.Nothing,
+        enableIAMDatabaseAuthentication =
+          Prelude.Nothing,
+        kmsKeyId = Prelude.Nothing,
+        optionGroupName = Prelude.Nothing,
+        port = Prelude.Nothing,
+        restoreToTime = Prelude.Nothing,
+        restoreType = Prelude.Nothing,
+        serverlessV2ScalingConfiguration =
+          Prelude.Nothing,
+        tags = Prelude.Nothing,
+        useLatestRestorableTime = Prelude.Nothing,
+        vpcSecurityGroupIds = Prelude.Nothing,
+        dbClusterIdentifier = pDBClusterIdentifier_,
+        sourceDBClusterIdentifier =
+          pSourceDBClusterIdentifier_
+      }
+
+-- | The name of the DB cluster parameter group to associate with the new DB
+-- cluster.
+--
+-- Constraints:
+--
+-- -   If supplied, must match the name of an existing
+--     DBClusterParameterGroup.
+restoreDBClusterToPointInTime_dbClusterParameterGroupName :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe Prelude.Text)
+restoreDBClusterToPointInTime_dbClusterParameterGroupName = Lens.lens (\RestoreDBClusterToPointInTime' {dbClusterParameterGroupName} -> dbClusterParameterGroupName) (\s@RestoreDBClusterToPointInTime' {} a -> s {dbClusterParameterGroupName = a} :: RestoreDBClusterToPointInTime)
+
+-- | The DB subnet group name to use for the new DB cluster.
+--
+-- Constraints: If supplied, 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)
+
+-- | A value that indicates whether the DB cluster has deletion protection
+-- enabled. The database can\'t be deleted when deletion protection is
+-- enabled. By default, deletion protection is disabled.
+restoreDBClusterToPointInTime_deletionProtection :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe Prelude.Bool)
+restoreDBClusterToPointInTime_deletionProtection = Lens.lens (\RestoreDBClusterToPointInTime' {deletionProtection} -> deletionProtection) (\s@RestoreDBClusterToPointInTime' {} a -> s {deletionProtection = a} :: RestoreDBClusterToPointInTime)
+
+-- | The list of logs that the restored DB cluster is to export to 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
+
+-- | True to enable mapping of Amazon Identity and Access Management (IAM)
+-- accounts to database accounts, and otherwise false.
+--
+-- Default: @false@
+restoreDBClusterToPointInTime_enableIAMDatabaseAuthentication :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe Prelude.Bool)
+restoreDBClusterToPointInTime_enableIAMDatabaseAuthentication = Lens.lens (\RestoreDBClusterToPointInTime' {enableIAMDatabaseAuthentication} -> enableIAMDatabaseAuthentication) (\s@RestoreDBClusterToPointInTime' {} a -> s {enableIAMDatabaseAuthentication = a} :: RestoreDBClusterToPointInTime)
+
+-- | The Amazon KMS key identifier to use when restoring an encrypted DB
+-- cluster from an encrypted DB cluster.
+--
+-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
+-- encryption key. If you are restoring a DB cluster with the same Amazon
+-- account that owns the KMS encryption key used to encrypt the new DB
+-- cluster, then you can use the KMS key alias instead of the ARN for the
+-- KMS encryption key.
+--
+-- You can restore to a new DB cluster and encrypt the new DB cluster with
+-- a KMS key that is different than the KMS key used to encrypt the source
+-- DB 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 will occur:
+--
+-- -   If the DB cluster is encrypted, then the restored DB cluster is
+--     encrypted using the KMS key that was used to encrypt the source DB
+--     cluster.
+--
+-- -   If the DB cluster is not encrypted, then the restored DB cluster is
+--     not encrypted.
+--
+-- If @DBClusterIdentifier@ refers to a DB 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)
+
+-- | /(Not supported by Neptune)/
+restoreDBClusterToPointInTime_optionGroupName :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe Prelude.Text)
+restoreDBClusterToPointInTime_optionGroupName = Lens.lens (\RestoreDBClusterToPointInTime' {optionGroupName} -> optionGroupName) (\s@RestoreDBClusterToPointInTime' {} a -> s {optionGroupName = a} :: RestoreDBClusterToPointInTime)
+
+-- | The port number on which the new DB cluster accepts connections.
+--
+-- Constraints: Value must be @1150-65535@
+--
+-- Default: The same port as the original DB cluster.
+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 DB cluster to.
+--
+-- Valid Values: Value must be a time in Universal Coordinated Time (UTC)
+-- format
+--
+-- Constraints:
+--
+-- -   Must be before the latest restorable time for the DB instance
+--
+-- -   Must be specified if @UseLatestRestorableTime@ parameter is not
+--     provided
+--
+-- -   Cannot be specified if @UseLatestRestorableTime@ parameter is true
+--
+-- -   Cannot be specified if @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)
+
+-- | Undocumented member.
+restoreDBClusterToPointInTime_serverlessV2ScalingConfiguration :: Lens.Lens' RestoreDBClusterToPointInTime (Prelude.Maybe ServerlessV2ScalingConfiguration)
+restoreDBClusterToPointInTime_serverlessV2ScalingConfiguration = Lens.lens (\RestoreDBClusterToPointInTime' {serverlessV2ScalingConfiguration} -> serverlessV2ScalingConfiguration) (\s@RestoreDBClusterToPointInTime' {} a -> s {serverlessV2ScalingConfiguration = a} :: RestoreDBClusterToPointInTime)
+
+-- | The tags to be applied to the restored DB 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 DB cluster to the latest
+-- restorable backup time, and @false@ otherwise.
+--
+-- Default: @false@
+--
+-- Constraints: Cannot be specified if @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 DB 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 DB cluster to be created.
+--
+-- Constraints:
+--
+-- -   Must contain from 1 to 63 letters, numbers, or hyphens
+--
+-- -   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 DB 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` dbClusterParameterGroupName
+      `Prelude.hashWithSalt` dbSubnetGroupName
+      `Prelude.hashWithSalt` deletionProtection
+      `Prelude.hashWithSalt` enableCloudwatchLogsExports
+      `Prelude.hashWithSalt` enableIAMDatabaseAuthentication
+      `Prelude.hashWithSalt` kmsKeyId
+      `Prelude.hashWithSalt` optionGroupName
+      `Prelude.hashWithSalt` port
+      `Prelude.hashWithSalt` restoreToTime
+      `Prelude.hashWithSalt` restoreType
+      `Prelude.hashWithSalt` serverlessV2ScalingConfiguration
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` useLatestRestorableTime
+      `Prelude.hashWithSalt` vpcSecurityGroupIds
+      `Prelude.hashWithSalt` dbClusterIdentifier
+      `Prelude.hashWithSalt` sourceDBClusterIdentifier
+
+instance Prelude.NFData RestoreDBClusterToPointInTime where
+  rnf RestoreDBClusterToPointInTime' {..} =
+    Prelude.rnf dbClusterParameterGroupName
+      `Prelude.seq` Prelude.rnf dbSubnetGroupName
+      `Prelude.seq` Prelude.rnf deletionProtection
+      `Prelude.seq` Prelude.rnf enableCloudwatchLogsExports
+      `Prelude.seq` Prelude.rnf enableIAMDatabaseAuthentication
+      `Prelude.seq` Prelude.rnf kmsKeyId
+      `Prelude.seq` Prelude.rnf optionGroupName
+      `Prelude.seq` Prelude.rnf port
+      `Prelude.seq` Prelude.rnf restoreToTime
+      `Prelude.seq` Prelude.rnf restoreType
+      `Prelude.seq` Prelude.rnf serverlessV2ScalingConfiguration
+      `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),
+        "DBClusterParameterGroupName"
+          Data.=: dbClusterParameterGroupName,
+        "DBSubnetGroupName" Data.=: dbSubnetGroupName,
+        "DeletionProtection" Data.=: deletionProtection,
+        "EnableCloudwatchLogsExports"
+          Data.=: Data.toQuery
+            ( Data.toQueryList "member"
+                Prelude.<$> enableCloudwatchLogsExports
+            ),
+        "EnableIAMDatabaseAuthentication"
+          Data.=: enableIAMDatabaseAuthentication,
+        "KmsKeyId" Data.=: kmsKeyId,
+        "OptionGroupName" Data.=: optionGroupName,
+        "Port" Data.=: port,
+        "RestoreToTime" Data.=: restoreToTime,
+        "RestoreType" Data.=: restoreType,
+        "ServerlessV2ScalingConfiguration"
+          Data.=: serverlessV2ScalingConfiguration,
+        "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
diff --git a/gen/Amazonka/Neptune/StartDBCluster.hs b/gen/Amazonka/Neptune/StartDBCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/StartDBCluster.hs
@@ -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.Neptune.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)
+--
+-- Starts an Amazon Neptune DB cluster that was stopped using the Amazon
+-- console, the Amazon CLI stop-db-cluster command, or the StopDBCluster
+-- API.
+module Amazonka.Neptune.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.Neptune.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 DB cluster identifier of the Neptune DB cluster to be started. This
+    -- parameter is stored as a lowercase string.
+    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 DB cluster identifier of the Neptune DB cluster to be started. This
+-- parameter is stored as a lowercase string.
+newStartDBCluster ::
+  -- | 'dbClusterIdentifier'
+  Prelude.Text ->
+  StartDBCluster
+newStartDBCluster pDBClusterIdentifier_ =
+  StartDBCluster'
+    { dbClusterIdentifier =
+        pDBClusterIdentifier_
+    }
+
+-- | The DB cluster identifier of the Neptune DB cluster to be started. This
+-- parameter is stored as a lowercase string.
+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
diff --git a/gen/Amazonka/Neptune/StopDBCluster.hs b/gen/Amazonka/Neptune/StopDBCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/StopDBCluster.hs
@@ -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.Neptune.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 an Amazon Neptune DB cluster. When you stop a DB cluster, Neptune
+-- retains the DB cluster\'s metadata, including its endpoints and DB
+-- parameter groups.
+--
+-- Neptune also retains the transaction logs so you can do a point-in-time
+-- restore if necessary.
+module Amazonka.Neptune.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.Neptune.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 DB cluster identifier of the Neptune DB cluster to be stopped. This
+    -- parameter is stored as a lowercase string.
+    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 DB cluster identifier of the Neptune DB cluster to be stopped. This
+-- parameter is stored as a lowercase string.
+newStopDBCluster ::
+  -- | 'dbClusterIdentifier'
+  Prelude.Text ->
+  StopDBCluster
+newStopDBCluster pDBClusterIdentifier_ =
+  StopDBCluster'
+    { dbClusterIdentifier =
+        pDBClusterIdentifier_
+    }
+
+-- | The DB cluster identifier of the Neptune DB cluster to be stopped. This
+-- parameter is stored as a lowercase string.
+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
diff --git a/gen/Amazonka/Neptune/Types.hs b/gen/Amazonka/Neptune/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types.hs
@@ -0,0 +1,1287 @@
+{-# 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.Neptune.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.Neptune.Types
+  ( -- * Service Configuration
+    defaultService,
+
+    -- * Errors
+    _AuthorizationNotFoundFault,
+    _CertificateNotFoundFault,
+    _DBClusterAlreadyExistsFault,
+    _DBClusterEndpointAlreadyExistsFault,
+    _DBClusterEndpointNotFoundFault,
+    _DBClusterEndpointQuotaExceededFault,
+    _DBClusterNotFoundFault,
+    _DBClusterParameterGroupNotFoundFault,
+    _DBClusterQuotaExceededFault,
+    _DBClusterRoleAlreadyExistsFault,
+    _DBClusterRoleNotFoundFault,
+    _DBClusterRoleQuotaExceededFault,
+    _DBClusterSnapshotAlreadyExistsFault,
+    _DBClusterSnapshotNotFoundFault,
+    _DBInstanceAlreadyExistsFault,
+    _DBInstanceNotFoundFault,
+    _DBParameterGroupAlreadyExistsFault,
+    _DBParameterGroupNotFoundFault,
+    _DBParameterGroupQuotaExceededFault,
+    _DBSecurityGroupNotFoundFault,
+    _DBSnapshotAlreadyExistsFault,
+    _DBSnapshotNotFoundFault,
+    _DBSubnetGroupAlreadyExistsFault,
+    _DBSubnetGroupDoesNotCoverEnoughAZs,
+    _DBSubnetGroupNotFoundFault,
+    _DBSubnetGroupQuotaExceededFault,
+    _DBSubnetQuotaExceededFault,
+    _DBUpgradeDependencyFailureFault,
+    _DomainNotFoundFault,
+    _EventSubscriptionQuotaExceededFault,
+    _GlobalClusterAlreadyExistsFault,
+    _GlobalClusterNotFoundFault,
+    _GlobalClusterQuotaExceededFault,
+    _InstanceQuotaExceededFault,
+    _InsufficientDBClusterCapacityFault,
+    _InsufficientDBInstanceCapacityFault,
+    _InsufficientStorageClusterCapacityFault,
+    _InvalidDBClusterEndpointStateFault,
+    _InvalidDBClusterSnapshotStateFault,
+    _InvalidDBClusterStateFault,
+    _InvalidDBInstanceStateFault,
+    _InvalidDBParameterGroupStateFault,
+    _InvalidDBSecurityGroupStateFault,
+    _InvalidDBSnapshotStateFault,
+    _InvalidDBSubnetGroupStateFault,
+    _InvalidDBSubnetStateFault,
+    _InvalidEventSubscriptionStateFault,
+    _InvalidGlobalClusterStateFault,
+    _InvalidRestoreFault,
+    _InvalidSubnet,
+    _InvalidVPCNetworkStateFault,
+    _KMSKeyNotAccessibleFault,
+    _OptionGroupNotFoundFault,
+    _ProvisionedIopsNotAvailableInAZFault,
+    _ResourceNotFoundFault,
+    _SNSInvalidTopicFault,
+    _SNSNoAuthorizationFault,
+    _SNSTopicArnNotFoundFault,
+    _SharedSnapshotQuotaExceededFault,
+    _SnapshotQuotaExceededFault,
+    _SourceNotFoundFault,
+    _StorageQuotaExceededFault,
+    _StorageTypeNotSupportedFault,
+    _SubnetAlreadyInUse,
+    _SubscriptionAlreadyExistFault,
+    _SubscriptionCategoryNotFoundFault,
+    _SubscriptionNotFoundFault,
+
+    -- * ApplyMethod
+    ApplyMethod (..),
+
+    -- * SourceType
+    SourceType (..),
+
+    -- * AvailabilityZone
+    AvailabilityZone (..),
+    newAvailabilityZone,
+    availabilityZone_name,
+
+    -- * CharacterSet
+    CharacterSet (..),
+    newCharacterSet,
+    characterSet_characterSetDescription,
+    characterSet_characterSetName,
+
+    -- * CloudwatchLogsExportConfiguration
+    CloudwatchLogsExportConfiguration (..),
+    newCloudwatchLogsExportConfiguration,
+    cloudwatchLogsExportConfiguration_disableLogTypes,
+    cloudwatchLogsExportConfiguration_enableLogTypes,
+
+    -- * DBCluster
+    DBCluster (..),
+    newDBCluster,
+    dbCluster_allocatedStorage,
+    dbCluster_associatedRoles,
+    dbCluster_automaticRestartTime,
+    dbCluster_availabilityZones,
+    dbCluster_backupRetentionPeriod,
+    dbCluster_characterSetName,
+    dbCluster_cloneGroupId,
+    dbCluster_clusterCreateTime,
+    dbCluster_copyTagsToSnapshot,
+    dbCluster_crossAccountClone,
+    dbCluster_dbClusterArn,
+    dbCluster_dbClusterIdentifier,
+    dbCluster_dbClusterMembers,
+    dbCluster_dbClusterOptionGroupMemberships,
+    dbCluster_dbClusterParameterGroup,
+    dbCluster_dbSubnetGroup,
+    dbCluster_databaseName,
+    dbCluster_dbClusterResourceId,
+    dbCluster_deletionProtection,
+    dbCluster_earliestRestorableTime,
+    dbCluster_enabledCloudwatchLogsExports,
+    dbCluster_endpoint,
+    dbCluster_engine,
+    dbCluster_engineVersion,
+    dbCluster_hostedZoneId,
+    dbCluster_iAMDatabaseAuthenticationEnabled,
+    dbCluster_kmsKeyId,
+    dbCluster_latestRestorableTime,
+    dbCluster_masterUsername,
+    dbCluster_multiAZ,
+    dbCluster_percentProgress,
+    dbCluster_port,
+    dbCluster_preferredBackupWindow,
+    dbCluster_preferredMaintenanceWindow,
+    dbCluster_readReplicaIdentifiers,
+    dbCluster_readerEndpoint,
+    dbCluster_replicationSourceIdentifier,
+    dbCluster_serverlessV2ScalingConfiguration,
+    dbCluster_status,
+    dbCluster_storageEncrypted,
+    dbCluster_vpcSecurityGroups,
+
+    -- * DBClusterEndpoint
+    DBClusterEndpoint (..),
+    newDBClusterEndpoint,
+    dbClusterEndpoint_customEndpointType,
+    dbClusterEndpoint_dbClusterEndpointArn,
+    dbClusterEndpoint_dbClusterEndpointIdentifier,
+    dbClusterEndpoint_dbClusterEndpointResourceIdentifier,
+    dbClusterEndpoint_dbClusterIdentifier,
+    dbClusterEndpoint_endpoint,
+    dbClusterEndpoint_endpointType,
+    dbClusterEndpoint_excludedMembers,
+    dbClusterEndpoint_staticMembers,
+    dbClusterEndpoint_status,
+
+    -- * DBClusterMember
+    DBClusterMember (..),
+    newDBClusterMember,
+    dbClusterMember_dbClusterParameterGroupStatus,
+    dbClusterMember_dbInstanceIdentifier,
+    dbClusterMember_isClusterWriter,
+    dbClusterMember_promotionTier,
+
+    -- * DBClusterOptionGroupStatus
+    DBClusterOptionGroupStatus (..),
+    newDBClusterOptionGroupStatus,
+    dbClusterOptionGroupStatus_dbClusterOptionGroupName,
+    dbClusterOptionGroupStatus_status,
+
+    -- * DBClusterParameterGroup
+    DBClusterParameterGroup (..),
+    newDBClusterParameterGroup,
+    dbClusterParameterGroup_dbClusterParameterGroupArn,
+    dbClusterParameterGroup_dbClusterParameterGroupName,
+    dbClusterParameterGroup_dbParameterGroupFamily,
+    dbClusterParameterGroup_description,
+
+    -- * DBClusterParameterGroupNameMessage
+    DBClusterParameterGroupNameMessage (..),
+    newDBClusterParameterGroupNameMessage,
+    dbClusterParameterGroupNameMessage_dbClusterParameterGroupName,
+
+    -- * DBClusterRole
+    DBClusterRole (..),
+    newDBClusterRole,
+    dbClusterRole_featureName,
+    dbClusterRole_roleArn,
+    dbClusterRole_status,
+
+    -- * DBClusterSnapshot
+    DBClusterSnapshot (..),
+    newDBClusterSnapshot,
+    dbClusterSnapshot_allocatedStorage,
+    dbClusterSnapshot_availabilityZones,
+    dbClusterSnapshot_clusterCreateTime,
+    dbClusterSnapshot_dbClusterIdentifier,
+    dbClusterSnapshot_dbClusterSnapshotArn,
+    dbClusterSnapshot_dbClusterSnapshotIdentifier,
+    dbClusterSnapshot_engine,
+    dbClusterSnapshot_engineVersion,
+    dbClusterSnapshot_iAMDatabaseAuthenticationEnabled,
+    dbClusterSnapshot_kmsKeyId,
+    dbClusterSnapshot_licenseModel,
+    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_defaultCharacterSet,
+    dbEngineVersion_engine,
+    dbEngineVersion_engineVersion,
+    dbEngineVersion_exportableLogTypes,
+    dbEngineVersion_supportedCharacterSets,
+    dbEngineVersion_supportedTimezones,
+    dbEngineVersion_supportsGlobalDatabases,
+    dbEngineVersion_supportsLogExportsToCloudwatchLogs,
+    dbEngineVersion_supportsReadReplica,
+    dbEngineVersion_validUpgradeTarget,
+
+    -- * DBInstance
+    DBInstance (..),
+    newDBInstance,
+    dbInstance_allocatedStorage,
+    dbInstance_autoMinorVersionUpgrade,
+    dbInstance_availabilityZone,
+    dbInstance_backupRetentionPeriod,
+    dbInstance_cACertificateIdentifier,
+    dbInstance_characterSetName,
+    dbInstance_copyTagsToSnapshot,
+    dbInstance_dbClusterIdentifier,
+    dbInstance_dbInstanceArn,
+    dbInstance_dbInstanceClass,
+    dbInstance_dbInstanceIdentifier,
+    dbInstance_dbInstanceStatus,
+    dbInstance_dbName,
+    dbInstance_dbParameterGroups,
+    dbInstance_dbSecurityGroups,
+    dbInstance_dbSubnetGroup,
+    dbInstance_dbInstancePort,
+    dbInstance_dbiResourceId,
+    dbInstance_deletionProtection,
+    dbInstance_domainMemberships,
+    dbInstance_enabledCloudwatchLogsExports,
+    dbInstance_endpoint,
+    dbInstance_engine,
+    dbInstance_engineVersion,
+    dbInstance_enhancedMonitoringResourceArn,
+    dbInstance_iAMDatabaseAuthenticationEnabled,
+    dbInstance_instanceCreateTime,
+    dbInstance_iops,
+    dbInstance_kmsKeyId,
+    dbInstance_latestRestorableTime,
+    dbInstance_licenseModel,
+    dbInstance_masterUsername,
+    dbInstance_monitoringInterval,
+    dbInstance_monitoringRoleArn,
+    dbInstance_multiAZ,
+    dbInstance_optionGroupMemberships,
+    dbInstance_pendingModifiedValues,
+    dbInstance_performanceInsightsEnabled,
+    dbInstance_performanceInsightsKMSKeyId,
+    dbInstance_preferredBackupWindow,
+    dbInstance_preferredMaintenanceWindow,
+    dbInstance_promotionTier,
+    dbInstance_publiclyAccessible,
+    dbInstance_readReplicaDBClusterIdentifiers,
+    dbInstance_readReplicaDBInstanceIdentifiers,
+    dbInstance_readReplicaSourceDBInstanceIdentifier,
+    dbInstance_secondaryAvailabilityZone,
+    dbInstance_statusInfos,
+    dbInstance_storageEncrypted,
+    dbInstance_storageType,
+    dbInstance_tdeCredentialArn,
+    dbInstance_timezone,
+    dbInstance_vpcSecurityGroups,
+
+    -- * DBInstanceStatusInfo
+    DBInstanceStatusInfo (..),
+    newDBInstanceStatusInfo,
+    dbInstanceStatusInfo_message,
+    dbInstanceStatusInfo_normal,
+    dbInstanceStatusInfo_status,
+    dbInstanceStatusInfo_statusType,
+
+    -- * DBParameterGroup
+    DBParameterGroup (..),
+    newDBParameterGroup,
+    dbParameterGroup_dbParameterGroupArn,
+    dbParameterGroup_dbParameterGroupFamily,
+    dbParameterGroup_dbParameterGroupName,
+    dbParameterGroup_description,
+
+    -- * DBParameterGroupNameMessage
+    DBParameterGroupNameMessage (..),
+    newDBParameterGroupNameMessage,
+    dbParameterGroupNameMessage_dbParameterGroupName,
+
+    -- * DBParameterGroupStatus
+    DBParameterGroupStatus (..),
+    newDBParameterGroupStatus,
+    dbParameterGroupStatus_dbParameterGroupName,
+    dbParameterGroupStatus_parameterApplyStatus,
+
+    -- * DBSecurityGroupMembership
+    DBSecurityGroupMembership (..),
+    newDBSecurityGroupMembership,
+    dbSecurityGroupMembership_dbSecurityGroupName,
+    dbSecurityGroupMembership_status,
+
+    -- * DBSubnetGroup
+    DBSubnetGroup (..),
+    newDBSubnetGroup,
+    dbSubnetGroup_dbSubnetGroupArn,
+    dbSubnetGroup_dbSubnetGroupDescription,
+    dbSubnetGroup_dbSubnetGroupName,
+    dbSubnetGroup_subnetGroupStatus,
+    dbSubnetGroup_subnets,
+    dbSubnetGroup_vpcId,
+
+    -- * DomainMembership
+    DomainMembership (..),
+    newDomainMembership,
+    domainMembership_domain,
+    domainMembership_fqdn,
+    domainMembership_iAMRoleName,
+    domainMembership_status,
+
+    -- * DoubleRange
+    DoubleRange (..),
+    newDoubleRange,
+    doubleRange_from,
+    doubleRange_to,
+
+    -- * 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_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,
+
+    -- * OptionGroupMembership
+    OptionGroupMembership (..),
+    newOptionGroupMembership,
+    optionGroupMembership_optionGroupName,
+    optionGroupMembership_status,
+
+    -- * OrderableDBInstanceOption
+    OrderableDBInstanceOption (..),
+    newOrderableDBInstanceOption,
+    orderableDBInstanceOption_availabilityZones,
+    orderableDBInstanceOption_dbInstanceClass,
+    orderableDBInstanceOption_engine,
+    orderableDBInstanceOption_engineVersion,
+    orderableDBInstanceOption_licenseModel,
+    orderableDBInstanceOption_maxIopsPerDbInstance,
+    orderableDBInstanceOption_maxIopsPerGib,
+    orderableDBInstanceOption_maxStorageSize,
+    orderableDBInstanceOption_minIopsPerDbInstance,
+    orderableDBInstanceOption_minIopsPerGib,
+    orderableDBInstanceOption_minStorageSize,
+    orderableDBInstanceOption_multiAZCapable,
+    orderableDBInstanceOption_readReplicaCapable,
+    orderableDBInstanceOption_storageType,
+    orderableDBInstanceOption_supportsEnhancedMonitoring,
+    orderableDBInstanceOption_supportsGlobalDatabases,
+    orderableDBInstanceOption_supportsIAMDatabaseAuthentication,
+    orderableDBInstanceOption_supportsIops,
+    orderableDBInstanceOption_supportsPerformanceInsights,
+    orderableDBInstanceOption_supportsStorageEncryption,
+    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,
+
+    -- * Range
+    Range (..),
+    newRange,
+    range_from,
+    range_step,
+    range_to,
+
+    -- * ResourcePendingMaintenanceActions
+    ResourcePendingMaintenanceActions (..),
+    newResourcePendingMaintenanceActions,
+    resourcePendingMaintenanceActions_pendingMaintenanceActionDetails,
+    resourcePendingMaintenanceActions_resourceIdentifier,
+
+    -- * ServerlessV2ScalingConfiguration
+    ServerlessV2ScalingConfiguration (..),
+    newServerlessV2ScalingConfiguration,
+    serverlessV2ScalingConfiguration_maxCapacity,
+    serverlessV2ScalingConfiguration_minCapacity,
+
+    -- * ServerlessV2ScalingConfigurationInfo
+    ServerlessV2ScalingConfigurationInfo (..),
+    newServerlessV2ScalingConfigurationInfo,
+    serverlessV2ScalingConfigurationInfo_maxCapacity,
+    serverlessV2ScalingConfigurationInfo_minCapacity,
+
+    -- * Subnet
+    Subnet (..),
+    newSubnet,
+    subnet_subnetAvailabilityZone,
+    subnet_subnetIdentifier,
+    subnet_subnetStatus,
+
+    -- * Tag
+    Tag (..),
+    newTag,
+    tag_key,
+    tag_value,
+
+    -- * Timezone
+    Timezone (..),
+    newTimezone,
+    timezone_timezoneName,
+
+    -- * UpgradeTarget
+    UpgradeTarget (..),
+    newUpgradeTarget,
+    upgradeTarget_autoUpgrade,
+    upgradeTarget_description,
+    upgradeTarget_engine,
+    upgradeTarget_engineVersion,
+    upgradeTarget_isMajorVersionUpgrade,
+    upgradeTarget_supportsGlobalDatabases,
+
+    -- * ValidDBInstanceModificationsMessage
+    ValidDBInstanceModificationsMessage (..),
+    newValidDBInstanceModificationsMessage,
+    validDBInstanceModificationsMessage_storage,
+
+    -- * ValidStorageOptions
+    ValidStorageOptions (..),
+    newValidStorageOptions,
+    validStorageOptions_iopsToStorageRatio,
+    validStorageOptions_provisionedIops,
+    validStorageOptions_storageSize,
+    validStorageOptions_storageType,
+
+    -- * VpcSecurityGroupMembership
+    VpcSecurityGroupMembership (..),
+    newVpcSecurityGroupMembership,
+    vpcSecurityGroupMembership_status,
+    vpcSecurityGroupMembership_vpcSecurityGroupId,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import Amazonka.Neptune.Types.ApplyMethod
+import Amazonka.Neptune.Types.AvailabilityZone
+import Amazonka.Neptune.Types.CharacterSet
+import Amazonka.Neptune.Types.CloudwatchLogsExportConfiguration
+import Amazonka.Neptune.Types.DBCluster
+import Amazonka.Neptune.Types.DBClusterEndpoint
+import Amazonka.Neptune.Types.DBClusterMember
+import Amazonka.Neptune.Types.DBClusterOptionGroupStatus
+import Amazonka.Neptune.Types.DBClusterParameterGroup
+import Amazonka.Neptune.Types.DBClusterParameterGroupNameMessage
+import Amazonka.Neptune.Types.DBClusterRole
+import Amazonka.Neptune.Types.DBClusterSnapshot
+import Amazonka.Neptune.Types.DBClusterSnapshotAttribute
+import Amazonka.Neptune.Types.DBClusterSnapshotAttributesResult
+import Amazonka.Neptune.Types.DBEngineVersion
+import Amazonka.Neptune.Types.DBInstance
+import Amazonka.Neptune.Types.DBInstanceStatusInfo
+import Amazonka.Neptune.Types.DBParameterGroup
+import Amazonka.Neptune.Types.DBParameterGroupNameMessage
+import Amazonka.Neptune.Types.DBParameterGroupStatus
+import Amazonka.Neptune.Types.DBSecurityGroupMembership
+import Amazonka.Neptune.Types.DBSubnetGroup
+import Amazonka.Neptune.Types.DomainMembership
+import Amazonka.Neptune.Types.DoubleRange
+import Amazonka.Neptune.Types.Endpoint
+import Amazonka.Neptune.Types.EngineDefaults
+import Amazonka.Neptune.Types.Event
+import Amazonka.Neptune.Types.EventCategoriesMap
+import Amazonka.Neptune.Types.EventSubscription
+import Amazonka.Neptune.Types.Filter
+import Amazonka.Neptune.Types.GlobalCluster
+import Amazonka.Neptune.Types.GlobalClusterMember
+import Amazonka.Neptune.Types.OptionGroupMembership
+import Amazonka.Neptune.Types.OrderableDBInstanceOption
+import Amazonka.Neptune.Types.Parameter
+import Amazonka.Neptune.Types.PendingCloudwatchLogsExports
+import Amazonka.Neptune.Types.PendingMaintenanceAction
+import Amazonka.Neptune.Types.PendingModifiedValues
+import Amazonka.Neptune.Types.Range
+import Amazonka.Neptune.Types.ResourcePendingMaintenanceActions
+import Amazonka.Neptune.Types.ServerlessV2ScalingConfiguration
+import Amazonka.Neptune.Types.ServerlessV2ScalingConfigurationInfo
+import Amazonka.Neptune.Types.SourceType
+import Amazonka.Neptune.Types.Subnet
+import Amazonka.Neptune.Types.Tag
+import Amazonka.Neptune.Types.Timezone
+import Amazonka.Neptune.Types.UpgradeTarget
+import Amazonka.Neptune.Types.ValidDBInstanceModificationsMessage
+import Amazonka.Neptune.Types.ValidStorageOptions
+import Amazonka.Neptune.Types.VpcSecurityGroupMembership
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Sign.V4 as Sign
+
+-- | API version @2014-10-31@ of the Amazon Neptune SDK configuration.
+defaultService :: Core.Service
+defaultService =
+  Core.Service
+    { Core.abbrev = "Neptune",
+      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 "Neptune",
+      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
+
+-- | Specified CIDRIP or EC2 security group is not authorized for the
+-- specified DB security group.
+--
+-- Neptune may not also be authorized via IAM to perform necessary actions
+-- on your behalf.
+_AuthorizationNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_AuthorizationNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "AuthorizationNotFound"
+    Prelude.. Core.hasStatus 404
+
+-- | /CertificateIdentifier/ does not refer to an existing certificate.
+_CertificateNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CertificateNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "CertificateNotFound"
+    Prelude.. Core.hasStatus 404
+
+-- | User already has a DB cluster with the given identifier.
+_DBClusterAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBClusterAlreadyExistsFault =
+  Core._MatchServiceError
+    defaultService
+    "DBClusterAlreadyExistsFault"
+    Prelude.. Core.hasStatus 400
+
+-- | The specified custom endpoint cannot be created because it already
+-- exists.
+_DBClusterEndpointAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBClusterEndpointAlreadyExistsFault =
+  Core._MatchServiceError
+    defaultService
+    "DBClusterEndpointAlreadyExistsFault"
+    Prelude.. Core.hasStatus 400
+
+-- | The specified custom endpoint doesn\'t exist.
+_DBClusterEndpointNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBClusterEndpointNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "DBClusterEndpointNotFoundFault"
+    Prelude.. Core.hasStatus 400
+
+-- | The cluster already has the maximum number of custom endpoints.
+_DBClusterEndpointQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBClusterEndpointQuotaExceededFault =
+  Core._MatchServiceError
+    defaultService
+    "DBClusterEndpointQuotaExceededFault"
+    Prelude.. Core.hasStatus 403
+
+-- | /DBClusterIdentifier/ does not refer to an existing DB cluster.
+_DBClusterNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBClusterNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "DBClusterNotFoundFault"
+    Prelude.. Core.hasStatus 404
+
+-- | /DBClusterParameterGroupName/ does not refer to an existing DB Cluster
+-- parameter group.
+_DBClusterParameterGroupNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBClusterParameterGroupNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "DBClusterParameterGroupNotFound"
+    Prelude.. Core.hasStatus 404
+
+-- | User attempted to create a new DB cluster and the user has already
+-- reached the maximum allowed DB cluster quota.
+_DBClusterQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBClusterQuotaExceededFault =
+  Core._MatchServiceError
+    defaultService
+    "DBClusterQuotaExceededFault"
+    Prelude.. Core.hasStatus 403
+
+-- | The specified IAM role Amazon Resource Name (ARN) is already associated
+-- with the specified DB cluster.
+_DBClusterRoleAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBClusterRoleAlreadyExistsFault =
+  Core._MatchServiceError
+    defaultService
+    "DBClusterRoleAlreadyExists"
+    Prelude.. Core.hasStatus 400
+
+-- | The specified IAM role Amazon Resource Name (ARN) is not associated with
+-- the specified DB cluster.
+_DBClusterRoleNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBClusterRoleNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "DBClusterRoleNotFound"
+    Prelude.. Core.hasStatus 404
+
+-- | You have exceeded the maximum number of IAM roles that can be associated
+-- with the specified DB cluster.
+_DBClusterRoleQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBClusterRoleQuotaExceededFault =
+  Core._MatchServiceError
+    defaultService
+    "DBClusterRoleQuotaExceeded"
+    Prelude.. Core.hasStatus 400
+
+-- | User already has a DB 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/ does not refer to an existing DB cluster
+-- snapshot.
+_DBClusterSnapshotNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBClusterSnapshotNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "DBClusterSnapshotNotFoundFault"
+    Prelude.. Core.hasStatus 404
+
+-- | User already has a DB instance with the given identifier.
+_DBInstanceAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBInstanceAlreadyExistsFault =
+  Core._MatchServiceError
+    defaultService
+    "DBInstanceAlreadyExists"
+    Prelude.. Core.hasStatus 400
+
+-- | /DBInstanceIdentifier/ does not refer to an existing DB instance.
+_DBInstanceNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBInstanceNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "DBInstanceNotFound"
+    Prelude.. Core.hasStatus 404
+
+-- | A DB parameter group with the same name exists.
+_DBParameterGroupAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBParameterGroupAlreadyExistsFault =
+  Core._MatchServiceError
+    defaultService
+    "DBParameterGroupAlreadyExists"
+    Prelude.. Core.hasStatus 400
+
+-- | /DBParameterGroupName/ does not refer to an existing DB parameter group.
+_DBParameterGroupNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBParameterGroupNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "DBParameterGroupNotFound"
+    Prelude.. Core.hasStatus 404
+
+-- | Request would result in user exceeding the allowed number of DB
+-- parameter groups.
+_DBParameterGroupQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBParameterGroupQuotaExceededFault =
+  Core._MatchServiceError
+    defaultService
+    "DBParameterGroupQuotaExceeded"
+    Prelude.. Core.hasStatus 400
+
+-- | /DBSecurityGroupName/ does not refer to an existing DB security group.
+_DBSecurityGroupNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBSecurityGroupNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "DBSecurityGroupNotFound"
+    Prelude.. Core.hasStatus 404
+
+-- | /DBSnapshotIdentifier/ is already used by an existing snapshot.
+_DBSnapshotAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBSnapshotAlreadyExistsFault =
+  Core._MatchServiceError
+    defaultService
+    "DBSnapshotAlreadyExists"
+    Prelude.. Core.hasStatus 400
+
+-- | /DBSnapshotIdentifier/ does not refer to an existing DB snapshot.
+_DBSnapshotNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBSnapshotNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "DBSnapshotNotFound"
+    Prelude.. Core.hasStatus 404
+
+-- | /DBSubnetGroupName/ is already used by an existing DB subnet group.
+_DBSubnetGroupAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBSubnetGroupAlreadyExistsFault =
+  Core._MatchServiceError
+    defaultService
+    "DBSubnetGroupAlreadyExists"
+    Prelude.. Core.hasStatus 400
+
+-- | Subnets in the DB 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/ does not refer to an existing DB subnet group.
+_DBSubnetGroupNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBSubnetGroupNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "DBSubnetGroupNotFoundFault"
+    Prelude.. Core.hasStatus 404
+
+-- | Request would result in user exceeding the allowed number of DB subnet
+-- groups.
+_DBSubnetGroupQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBSubnetGroupQuotaExceededFault =
+  Core._MatchServiceError
+    defaultService
+    "DBSubnetGroupQuotaExceeded"
+    Prelude.. Core.hasStatus 400
+
+-- | Request would result in user exceeding the allowed number of subnets in
+-- a DB subnet groups.
+_DBSubnetQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBSubnetQuotaExceededFault =
+  Core._MatchServiceError
+    defaultService
+    "DBSubnetQuotaExceededFault"
+    Prelude.. Core.hasStatus 400
+
+-- | The DB upgrade failed because a resource the DB depends on could not be
+-- modified.
+_DBUpgradeDependencyFailureFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DBUpgradeDependencyFailureFault =
+  Core._MatchServiceError
+    defaultService
+    "DBUpgradeDependencyFailure"
+    Prelude.. Core.hasStatus 400
+
+-- | /Domain/ does not refer to an existing Active Directory Domain.
+_DomainNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DomainNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "DomainNotFoundFault"
+    Prelude.. Core.hasStatus 404
+
+-- | You have exceeded the number of events you can subscribe to.
+_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
+-- database identifier (unique name) to create a new global database
+-- 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
+-- database cluster.
+_GlobalClusterNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_GlobalClusterNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "GlobalClusterNotFoundFault"
+    Prelude.. Core.hasStatus 404
+
+-- | The number of global database 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
+
+-- | Request would result in user exceeding the allowed number of DB
+-- instances.
+_InstanceQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InstanceQuotaExceededFault =
+  Core._MatchServiceError
+    defaultService
+    "InstanceQuotaExceeded"
+    Prelude.. Core.hasStatus 400
+
+-- | The DB cluster does not 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
+
+-- | Specified DB instance class is not 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 insufficient storage available for the current action. You may
+-- 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 requested operation cannot be performed on the endpoint while the
+-- endpoint is in this state.
+_InvalidDBClusterEndpointStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidDBClusterEndpointStateFault =
+  Core._MatchServiceError
+    defaultService
+    "InvalidDBClusterEndpointStateFault"
+    Prelude.. Core.hasStatus 400
+
+-- | The supplied value is not a valid DB cluster snapshot state.
+_InvalidDBClusterSnapshotStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidDBClusterSnapshotStateFault =
+  Core._MatchServiceError
+    defaultService
+    "InvalidDBClusterSnapshotStateFault"
+    Prelude.. Core.hasStatus 400
+
+-- | The DB cluster is not in a valid state.
+_InvalidDBClusterStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidDBClusterStateFault =
+  Core._MatchServiceError
+    defaultService
+    "InvalidDBClusterStateFault"
+    Prelude.. Core.hasStatus 400
+
+-- | The specified DB instance is not in the /available/ state.
+_InvalidDBInstanceStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidDBInstanceStateFault =
+  Core._MatchServiceError
+    defaultService
+    "InvalidDBInstanceState"
+    Prelude.. Core.hasStatus 400
+
+-- | The DB parameter group is in use or is in an invalid state. If you are
+-- attempting to delete the parameter group, you cannot 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 DB security group does not allow deletion.
+_InvalidDBSecurityGroupStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidDBSecurityGroupStateFault =
+  Core._MatchServiceError
+    defaultService
+    "InvalidDBSecurityGroupState"
+    Prelude.. Core.hasStatus 400
+
+-- | The state of the DB snapshot does not allow deletion.
+_InvalidDBSnapshotStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidDBSnapshotStateFault =
+  Core._MatchServiceError
+    defaultService
+    "InvalidDBSnapshotState"
+    Prelude.. Core.hasStatus 400
+
+-- | The DB subnet group cannot be deleted because it is in use.
+_InvalidDBSubnetGroupStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidDBSubnetGroupStateFault =
+  Core._MatchServiceError
+    defaultService
+    "InvalidDBSubnetGroupStateFault"
+    Prelude.. Core.hasStatus 400
+
+-- | The DB subnet is not in the /available/ state.
+_InvalidDBSubnetStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidDBSubnetStateFault =
+  Core._MatchServiceError
+    defaultService
+    "InvalidDBSubnetStateFault"
+    Prelude.. Core.hasStatus 400
+
+-- | The event subscription is in an invalid state.
+_InvalidEventSubscriptionStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidEventSubscriptionStateFault =
+  Core._MatchServiceError
+    defaultService
+    "InvalidEventSubscriptionState"
+    Prelude.. Core.hasStatus 400
+
+-- | The global cluster is in an invalid state and can\'t perform the
+-- requested operation.
+_InvalidGlobalClusterStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidGlobalClusterStateFault =
+  Core._MatchServiceError
+    defaultService
+    "InvalidGlobalClusterStateFault"
+    Prelude.. Core.hasStatus 400
+
+-- | Cannot restore from vpc backup to 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 invalid, or multiple subnets were requested that
+-- are not all in a common VPC.
+_InvalidSubnet :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidSubnet =
+  Core._MatchServiceError
+    defaultService
+    "InvalidSubnet"
+    Prelude.. Core.hasStatus 400
+
+-- | DB subnet group does not cover all Availability Zones after it is
+-- created because users\' change.
+_InvalidVPCNetworkStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidVPCNetworkStateFault =
+  Core._MatchServiceError
+    defaultService
+    "InvalidVPCNetworkStateFault"
+    Prelude.. Core.hasStatus 400
+
+-- | Error accessing KMS key.
+_KMSKeyNotAccessibleFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_KMSKeyNotAccessibleFault =
+  Core._MatchServiceError
+    defaultService
+    "KMSKeyNotAccessibleFault"
+    Prelude.. Core.hasStatus 400
+
+-- | The designated option group could not be found.
+_OptionGroupNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_OptionGroupNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "OptionGroupNotFoundFault"
+    Prelude.. Core.hasStatus 404
+
+-- | Provisioned IOPS not available in the specified Availability Zone.
+_ProvisionedIopsNotAvailableInAZFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ProvisionedIopsNotAvailableInAZFault =
+  Core._MatchServiceError
+    defaultService
+    "ProvisionedIopsNotAvailableInAZFault"
+    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
+
+-- | The SNS topic is invalid.
+_SNSInvalidTopicFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_SNSInvalidTopicFault =
+  Core._MatchServiceError
+    defaultService
+    "SNSInvalidTopic"
+    Prelude.. Core.hasStatus 400
+
+-- | There is no SNS authorization.
+_SNSNoAuthorizationFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_SNSNoAuthorizationFault =
+  Core._MatchServiceError
+    defaultService
+    "SNSNoAuthorization"
+    Prelude.. Core.hasStatus 400
+
+-- | The ARN of the SNS topic could not be found.
+_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
+
+-- | Request would result in user exceeding the allowed number of DB
+-- snapshots.
+_SnapshotQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_SnapshotQuotaExceededFault =
+  Core._MatchServiceError
+    defaultService
+    "SnapshotQuotaExceeded"
+    Prelude.. Core.hasStatus 400
+
+-- | The source could not be found.
+_SourceNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_SourceNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "SourceNotFound"
+    Prelude.. Core.hasStatus 404
+
+-- | Request would result in user exceeding the allowed amount of storage
+-- available across all DB instances.
+_StorageQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_StorageQuotaExceededFault =
+  Core._MatchServiceError
+    defaultService
+    "StorageQuotaExceeded"
+    Prelude.. Core.hasStatus 400
+
+-- | /StorageType/ specified cannot 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 DB 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
+
+-- | This subscription already exists.
+_SubscriptionAlreadyExistFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_SubscriptionAlreadyExistFault =
+  Core._MatchServiceError
+    defaultService
+    "SubscriptionAlreadyExist"
+    Prelude.. Core.hasStatus 400
+
+-- | The designated subscription category could not be found.
+_SubscriptionCategoryNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_SubscriptionCategoryNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "SubscriptionCategoryNotFound"
+    Prelude.. Core.hasStatus 404
+
+-- | The designated subscription could not be found.
+_SubscriptionNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_SubscriptionNotFoundFault =
+  Core._MatchServiceError
+    defaultService
+    "SubscriptionNotFound"
+    Prelude.. Core.hasStatus 404
diff --git a/gen/Amazonka/Neptune/Types/ApplyMethod.hs b/gen/Amazonka/Neptune/Types/ApplyMethod.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/ApplyMethod.hs
@@ -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.Neptune.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.Neptune.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'
+  #-}
diff --git a/gen/Amazonka/Neptune/Types/AvailabilityZone.hs b/gen/Amazonka/Neptune/Types/AvailabilityZone.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/AvailabilityZone.hs
@@ -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.Neptune.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.Neptune.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
+
+-- | Specifies 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
diff --git a/gen/Amazonka/Neptune/Types/CharacterSet.hs b/gen/Amazonka/Neptune/Types/CharacterSet.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/CharacterSet.hs
@@ -0,0 +1,81 @@
+{-# 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.Neptune.Types.CharacterSet
+-- 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.Neptune.Types.CharacterSet where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Specifies a character set.
+--
+-- /See:/ 'newCharacterSet' smart constructor.
+data CharacterSet = CharacterSet'
+  { -- | The description of the character set.
+    characterSetDescription :: Prelude.Maybe Prelude.Text,
+    -- | The name of the character set.
+    characterSetName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CharacterSet' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'characterSetDescription', 'characterSet_characterSetDescription' - The description of the character set.
+--
+-- 'characterSetName', 'characterSet_characterSetName' - The name of the character set.
+newCharacterSet ::
+  CharacterSet
+newCharacterSet =
+  CharacterSet'
+    { characterSetDescription =
+        Prelude.Nothing,
+      characterSetName = Prelude.Nothing
+    }
+
+-- | The description of the character set.
+characterSet_characterSetDescription :: Lens.Lens' CharacterSet (Prelude.Maybe Prelude.Text)
+characterSet_characterSetDescription = Lens.lens (\CharacterSet' {characterSetDescription} -> characterSetDescription) (\s@CharacterSet' {} a -> s {characterSetDescription = a} :: CharacterSet)
+
+-- | The name of the character set.
+characterSet_characterSetName :: Lens.Lens' CharacterSet (Prelude.Maybe Prelude.Text)
+characterSet_characterSetName = Lens.lens (\CharacterSet' {characterSetName} -> characterSetName) (\s@CharacterSet' {} a -> s {characterSetName = a} :: CharacterSet)
+
+instance Data.FromXML CharacterSet where
+  parseXML x =
+    CharacterSet'
+      Prelude.<$> (x Data..@? "CharacterSetDescription")
+      Prelude.<*> (x Data..@? "CharacterSetName")
+
+instance Prelude.Hashable CharacterSet where
+  hashWithSalt _salt CharacterSet' {..} =
+    _salt
+      `Prelude.hashWithSalt` characterSetDescription
+      `Prelude.hashWithSalt` characterSetName
+
+instance Prelude.NFData CharacterSet where
+  rnf CharacterSet' {..} =
+    Prelude.rnf characterSetDescription
+      `Prelude.seq` Prelude.rnf characterSetName
diff --git a/gen/Amazonka/Neptune/Types/CloudwatchLogsExportConfiguration.hs b/gen/Amazonka/Neptune/Types/CloudwatchLogsExportConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/CloudwatchLogsExportConfiguration.hs
@@ -0,0 +1,105 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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.Neptune.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
+-- CloudWatch Logs for a specific DB instance or DB cluster.
+--
+-- The @EnableLogTypes@ and @DisableLogTypes@ arrays determine which logs
+-- will be exported (or not exported) to CloudWatch Logs.
+--
+-- /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
+            )
+      ]
diff --git a/gen/Amazonka/Neptune/Types/DBCluster.hs b/gen/Amazonka/Neptune/Types/DBCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBCluster.hs
@@ -0,0 +1,719 @@
+{-# 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.Neptune.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.Neptune.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.Neptune.Types.DBClusterMember
+import Amazonka.Neptune.Types.DBClusterOptionGroupStatus
+import Amazonka.Neptune.Types.DBClusterRole
+import Amazonka.Neptune.Types.ServerlessV2ScalingConfigurationInfo
+import Amazonka.Neptune.Types.VpcSecurityGroupMembership
+import qualified Amazonka.Prelude as Prelude
+
+-- | Contains the details of an Amazon Neptune DB cluster.
+--
+-- This data type is used as a response element in the DescribeDBClusters
+-- action.
+--
+-- /See:/ 'newDBCluster' smart constructor.
+data DBCluster = DBCluster'
+  { -- | @AllocatedStorage@ always returns 1, because Neptune DB cluster storage
+    -- size is not fixed, but instead automatically adjusts as needed.
+    allocatedStorage :: Prelude.Maybe Prelude.Int,
+    -- | Provides a list of the Amazon Identity and Access Management (IAM) roles
+    -- that are associated with the DB cluster. IAM roles that are associated
+    -- with a DB cluster grant permission for the DB cluster to access other
+    -- Amazon services on your behalf.
+    associatedRoles :: Prelude.Maybe [DBClusterRole],
+    -- | Time at which the DB cluster will be automatically restarted.
+    automaticRestartTime :: Prelude.Maybe Data.ISO8601,
+    -- | Provides the list of EC2 Availability Zones that instances in the DB
+    -- cluster can be created in.
+    availabilityZones :: Prelude.Maybe [Prelude.Text],
+    -- | Specifies the number of days for which automatic DB snapshots are
+    -- retained.
+    backupRetentionPeriod :: Prelude.Maybe Prelude.Int,
+    -- | Not supported by Neptune.
+    characterSetName :: Prelude.Maybe Prelude.Text,
+    -- | Identifies the clone group to which the DB cluster is associated.
+    cloneGroupId :: Prelude.Maybe Prelude.Text,
+    -- | Specifies the time when the DB cluster was created, in Universal
+    -- Coordinated Time (UTC).
+    clusterCreateTime :: Prelude.Maybe Data.ISO8601,
+    -- | /If set to @true@, tags are copied to any snapshot of the DB cluster
+    -- that is created./
+    copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,
+    -- | If set to @true@, the DB cluster can be cloned across accounts.
+    crossAccountClone :: Prelude.Maybe Prelude.Bool,
+    -- | The Amazon Resource Name (ARN) for the DB cluster.
+    dbClusterArn :: Prelude.Maybe Prelude.Text,
+    -- | Contains a user-supplied DB cluster identifier. This identifier is the
+    -- unique key that identifies a DB cluster.
+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | Provides the list of instances that make up the DB cluster.
+    dbClusterMembers :: Prelude.Maybe [DBClusterMember],
+    -- | Not supported by Neptune.
+    dbClusterOptionGroupMemberships :: Prelude.Maybe [DBClusterOptionGroupStatus],
+    -- | Specifies the name of the DB cluster parameter group for the DB cluster.
+    dbClusterParameterGroup :: Prelude.Maybe Prelude.Text,
+    -- | Specifies information on the subnet group associated with the DB
+    -- cluster, including the name, description, and subnets in the subnet
+    -- group.
+    dbSubnetGroup :: Prelude.Maybe Prelude.Text,
+    -- | Contains the name of the initial database of this DB cluster that was
+    -- provided at create time, if one was specified when the DB cluster was
+    -- created. This same name is returned for the life of the DB cluster.
+    databaseName :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Region-unique, immutable identifier for the DB cluster. This
+    -- identifier is found in Amazon CloudTrail log entries whenever the Amazon
+    -- KMS key for the DB cluster is accessed.
+    dbClusterResourceId :: Prelude.Maybe Prelude.Text,
+    -- | Indicates whether or not the DB cluster has deletion protection enabled.
+    -- The database can\'t be deleted when deletion protection is enabled.
+    deletionProtection :: Prelude.Maybe Prelude.Bool,
+    -- | Specifies 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 DB cluster is configured to export to
+    -- CloudWatch Logs.
+    enabledCloudwatchLogsExports :: Prelude.Maybe [Prelude.Text],
+    -- | Specifies the connection endpoint for the primary instance of the DB
+    -- cluster.
+    endpoint :: Prelude.Maybe Prelude.Text,
+    -- | Provides the name of the database engine to be used for this DB 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,
+    -- | True if mapping of Amazon Identity and Access Management (IAM) accounts
+    -- to database accounts is enabled, and otherwise false.
+    iAMDatabaseAuthenticationEnabled :: Prelude.Maybe Prelude.Bool,
+    -- | If @StorageEncrypted@ is true, the Amazon KMS key identifier for the
+    -- encrypted DB 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,
+    -- | Not supported by Neptune.
+    masterUsername :: Prelude.Maybe Prelude.Text,
+    -- | Specifies whether the DB 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 Read Replicas associated with
+    -- this DB cluster.
+    readReplicaIdentifiers :: Prelude.Maybe [Prelude.Text],
+    -- | The reader endpoint for the DB cluster. The reader endpoint for a DB
+    -- cluster load-balances connections across the Read Replicas that are
+    -- available in a DB cluster. As clients request new connections to the
+    -- reader endpoint, Neptune distributes the connection requests among the
+    -- Read Replicas in the DB cluster. This functionality can help balance
+    -- your read workload across multiple Read Replicas in your DB cluster.
+    --
+    -- If a failover occurs, and the Read 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 Read Replicas in the
+    -- cluster, you can then reconnect to the reader endpoint.
+    readerEndpoint :: Prelude.Maybe Prelude.Text,
+    -- | Not supported by Neptune.
+    replicationSourceIdentifier :: Prelude.Maybe Prelude.Text,
+    serverlessV2ScalingConfiguration :: Prelude.Maybe ServerlessV2ScalingConfigurationInfo,
+    -- | Specifies the current state of this DB cluster.
+    status :: Prelude.Maybe Prelude.Text,
+    -- | Specifies whether the DB cluster is encrypted.
+    storageEncrypted :: Prelude.Maybe Prelude.Bool,
+    -- | Provides a list of VPC security groups that the DB 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:
+--
+-- 'allocatedStorage', 'dbCluster_allocatedStorage' - @AllocatedStorage@ always returns 1, because Neptune DB cluster storage
+-- size is not fixed, but instead automatically adjusts as needed.
+--
+-- 'associatedRoles', 'dbCluster_associatedRoles' - Provides a list of the Amazon Identity and Access Management (IAM) roles
+-- that are associated with the DB cluster. IAM roles that are associated
+-- with a DB cluster grant permission for the DB cluster to access other
+-- Amazon services on your behalf.
+--
+-- 'automaticRestartTime', 'dbCluster_automaticRestartTime' - Time at which the DB cluster will be automatically restarted.
+--
+-- 'availabilityZones', 'dbCluster_availabilityZones' - Provides the list of EC2 Availability Zones that instances in the DB
+-- cluster can be created in.
+--
+-- 'backupRetentionPeriod', 'dbCluster_backupRetentionPeriod' - Specifies the number of days for which automatic DB snapshots are
+-- retained.
+--
+-- 'characterSetName', 'dbCluster_characterSetName' - Not supported by Neptune.
+--
+-- 'cloneGroupId', 'dbCluster_cloneGroupId' - Identifies the clone group to which the DB cluster is associated.
+--
+-- 'clusterCreateTime', 'dbCluster_clusterCreateTime' - Specifies the time when the DB cluster was created, in Universal
+-- Coordinated Time (UTC).
+--
+-- 'copyTagsToSnapshot', 'dbCluster_copyTagsToSnapshot' - /If set to @true@, tags are copied to any snapshot of the DB cluster
+-- that is created./
+--
+-- 'crossAccountClone', 'dbCluster_crossAccountClone' - If set to @true@, the DB cluster can be cloned across accounts.
+--
+-- 'dbClusterArn', 'dbCluster_dbClusterArn' - The Amazon Resource Name (ARN) for the DB cluster.
+--
+-- 'dbClusterIdentifier', 'dbCluster_dbClusterIdentifier' - Contains a user-supplied DB cluster identifier. This identifier is the
+-- unique key that identifies a DB cluster.
+--
+-- 'dbClusterMembers', 'dbCluster_dbClusterMembers' - Provides the list of instances that make up the DB cluster.
+--
+-- 'dbClusterOptionGroupMemberships', 'dbCluster_dbClusterOptionGroupMemberships' - Not supported by Neptune.
+--
+-- 'dbClusterParameterGroup', 'dbCluster_dbClusterParameterGroup' - Specifies the name of the DB cluster parameter group for the DB cluster.
+--
+-- 'dbSubnetGroup', 'dbCluster_dbSubnetGroup' - Specifies information on the subnet group associated with the DB
+-- cluster, including the name, description, and subnets in the subnet
+-- group.
+--
+-- 'databaseName', 'dbCluster_databaseName' - Contains the name of the initial database of this DB cluster that was
+-- provided at create time, if one was specified when the DB cluster was
+-- created. This same name is returned for the life of the DB cluster.
+--
+-- 'dbClusterResourceId', 'dbCluster_dbClusterResourceId' - The Amazon Region-unique, immutable identifier for the DB cluster. This
+-- identifier is found in Amazon CloudTrail log entries whenever the Amazon
+-- KMS key for the DB cluster is accessed.
+--
+-- 'deletionProtection', 'dbCluster_deletionProtection' - Indicates whether or not the DB cluster has deletion protection enabled.
+-- The database can\'t be deleted when deletion protection is enabled.
+--
+-- 'earliestRestorableTime', 'dbCluster_earliestRestorableTime' - Specifies 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 DB cluster is configured to export to
+-- CloudWatch Logs.
+--
+-- 'endpoint', 'dbCluster_endpoint' - Specifies the connection endpoint for the primary instance of the DB
+-- cluster.
+--
+-- 'engine', 'dbCluster_engine' - Provides the name of the database engine to be used for this DB 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.
+--
+-- 'iAMDatabaseAuthenticationEnabled', 'dbCluster_iAMDatabaseAuthenticationEnabled' - True if mapping of Amazon Identity and Access Management (IAM) accounts
+-- to database accounts is enabled, and otherwise false.
+--
+-- 'kmsKeyId', 'dbCluster_kmsKeyId' - If @StorageEncrypted@ is true, the Amazon KMS key identifier for the
+-- encrypted DB cluster.
+--
+-- 'latestRestorableTime', 'dbCluster_latestRestorableTime' - Specifies the latest time to which a database can be restored with
+-- point-in-time restore.
+--
+-- 'masterUsername', 'dbCluster_masterUsername' - Not supported by Neptune.
+--
+-- 'multiAZ', 'dbCluster_multiAZ' - Specifies whether the DB 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 Read Replicas associated with
+-- this DB cluster.
+--
+-- 'readerEndpoint', 'dbCluster_readerEndpoint' - The reader endpoint for the DB cluster. The reader endpoint for a DB
+-- cluster load-balances connections across the Read Replicas that are
+-- available in a DB cluster. As clients request new connections to the
+-- reader endpoint, Neptune distributes the connection requests among the
+-- Read Replicas in the DB cluster. This functionality can help balance
+-- your read workload across multiple Read Replicas in your DB cluster.
+--
+-- If a failover occurs, and the Read 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 Read Replicas in the
+-- cluster, you can then reconnect to the reader endpoint.
+--
+-- 'replicationSourceIdentifier', 'dbCluster_replicationSourceIdentifier' - Not supported by Neptune.
+--
+-- 'serverlessV2ScalingConfiguration', 'dbCluster_serverlessV2ScalingConfiguration' - Undocumented member.
+--
+-- 'status', 'dbCluster_status' - Specifies the current state of this DB cluster.
+--
+-- 'storageEncrypted', 'dbCluster_storageEncrypted' - Specifies whether the DB cluster is encrypted.
+--
+-- 'vpcSecurityGroups', 'dbCluster_vpcSecurityGroups' - Provides a list of VPC security groups that the DB cluster belongs to.
+newDBCluster ::
+  DBCluster
+newDBCluster =
+  DBCluster'
+    { allocatedStorage = Prelude.Nothing,
+      associatedRoles = Prelude.Nothing,
+      automaticRestartTime = Prelude.Nothing,
+      availabilityZones = Prelude.Nothing,
+      backupRetentionPeriod = Prelude.Nothing,
+      characterSetName = Prelude.Nothing,
+      cloneGroupId = Prelude.Nothing,
+      clusterCreateTime = Prelude.Nothing,
+      copyTagsToSnapshot = Prelude.Nothing,
+      crossAccountClone = Prelude.Nothing,
+      dbClusterArn = Prelude.Nothing,
+      dbClusterIdentifier = Prelude.Nothing,
+      dbClusterMembers = Prelude.Nothing,
+      dbClusterOptionGroupMemberships = Prelude.Nothing,
+      dbClusterParameterGroup = Prelude.Nothing,
+      dbSubnetGroup = Prelude.Nothing,
+      databaseName = 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,
+      iAMDatabaseAuthenticationEnabled = 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,
+      serverlessV2ScalingConfiguration = Prelude.Nothing,
+      status = Prelude.Nothing,
+      storageEncrypted = Prelude.Nothing,
+      vpcSecurityGroups = Prelude.Nothing
+    }
+
+-- | @AllocatedStorage@ always returns 1, because Neptune DB cluster storage
+-- size is not fixed, but instead automatically adjusts as needed.
+dbCluster_allocatedStorage :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Int)
+dbCluster_allocatedStorage = Lens.lens (\DBCluster' {allocatedStorage} -> allocatedStorage) (\s@DBCluster' {} a -> s {allocatedStorage = a} :: DBCluster)
+
+-- | Provides a list of the Amazon Identity and Access Management (IAM) roles
+-- that are associated with the DB cluster. IAM roles that are associated
+-- with a DB cluster grant permission for the DB cluster to access other
+-- Amazon 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
+
+-- | Time at which the DB cluster will be automatically restarted.
+dbCluster_automaticRestartTime :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.UTCTime)
+dbCluster_automaticRestartTime = Lens.lens (\DBCluster' {automaticRestartTime} -> automaticRestartTime) (\s@DBCluster' {} a -> s {automaticRestartTime = a} :: DBCluster) Prelude.. Lens.mapping Data._Time
+
+-- | Provides the list of EC2 Availability Zones that instances in the DB
+-- 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 DB 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)
+
+-- | Not supported by Neptune.
+dbCluster_characterSetName :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)
+dbCluster_characterSetName = Lens.lens (\DBCluster' {characterSetName} -> characterSetName) (\s@DBCluster' {} a -> s {characterSetName = 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 DB 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
+
+-- | /If set to @true@, tags are copied to any snapshot of the DB cluster
+-- that is created./
+dbCluster_copyTagsToSnapshot :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Bool)
+dbCluster_copyTagsToSnapshot = Lens.lens (\DBCluster' {copyTagsToSnapshot} -> copyTagsToSnapshot) (\s@DBCluster' {} a -> s {copyTagsToSnapshot = a} :: DBCluster)
+
+-- | If set to @true@, the DB cluster can be cloned across accounts.
+dbCluster_crossAccountClone :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Bool)
+dbCluster_crossAccountClone = Lens.lens (\DBCluster' {crossAccountClone} -> crossAccountClone) (\s@DBCluster' {} a -> s {crossAccountClone = a} :: DBCluster)
+
+-- | The Amazon Resource Name (ARN) for the DB 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 DB cluster identifier. This identifier is the
+-- unique key that identifies a DB 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 DB 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
+
+-- | Not supported by Neptune.
+dbCluster_dbClusterOptionGroupMemberships :: Lens.Lens' DBCluster (Prelude.Maybe [DBClusterOptionGroupStatus])
+dbCluster_dbClusterOptionGroupMemberships = Lens.lens (\DBCluster' {dbClusterOptionGroupMemberships} -> dbClusterOptionGroupMemberships) (\s@DBCluster' {} a -> s {dbClusterOptionGroupMemberships = a} :: DBCluster) Prelude.. Lens.mapping Lens.coerced
+
+-- | Specifies the name of the DB cluster parameter group for the DB 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 associated with the DB
+-- 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)
+
+-- | Contains the name of the initial database of this DB cluster that was
+-- provided at create time, if one was specified when the DB cluster was
+-- created. This same name is returned for the life of the DB cluster.
+dbCluster_databaseName :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)
+dbCluster_databaseName = Lens.lens (\DBCluster' {databaseName} -> databaseName) (\s@DBCluster' {} a -> s {databaseName = a} :: DBCluster)
+
+-- | The Amazon Region-unique, immutable identifier for the DB cluster. This
+-- identifier is found in Amazon CloudTrail log entries whenever the Amazon
+-- KMS key for the DB 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)
+
+-- | Indicates whether or not the DB cluster has deletion protection enabled.
+-- The database can\'t be deleted when deletion protection is enabled.
+dbCluster_deletionProtection :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Bool)
+dbCluster_deletionProtection = Lens.lens (\DBCluster' {deletionProtection} -> deletionProtection) (\s@DBCluster' {} a -> s {deletionProtection = a} :: DBCluster)
+
+-- | Specifies 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 DB cluster is configured to export to
+-- 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 DB
+-- 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 DB 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)
+
+-- | True if mapping of Amazon Identity and Access Management (IAM) accounts
+-- to database accounts is enabled, and otherwise false.
+dbCluster_iAMDatabaseAuthenticationEnabled :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Bool)
+dbCluster_iAMDatabaseAuthenticationEnabled = Lens.lens (\DBCluster' {iAMDatabaseAuthenticationEnabled} -> iAMDatabaseAuthenticationEnabled) (\s@DBCluster' {} a -> s {iAMDatabaseAuthenticationEnabled = a} :: DBCluster)
+
+-- | If @StorageEncrypted@ is true, the Amazon KMS key identifier for the
+-- encrypted DB 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
+
+-- | Not supported by Neptune.
+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 DB 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 Read Replicas associated with
+-- this DB 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 DB cluster. The reader endpoint for a DB
+-- cluster load-balances connections across the Read Replicas that are
+-- available in a DB cluster. As clients request new connections to the
+-- reader endpoint, Neptune distributes the connection requests among the
+-- Read Replicas in the DB cluster. This functionality can help balance
+-- your read workload across multiple Read Replicas in your DB cluster.
+--
+-- If a failover occurs, and the Read 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 Read 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)
+
+-- | Not supported by Neptune.
+dbCluster_replicationSourceIdentifier :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)
+dbCluster_replicationSourceIdentifier = Lens.lens (\DBCluster' {replicationSourceIdentifier} -> replicationSourceIdentifier) (\s@DBCluster' {} a -> s {replicationSourceIdentifier = a} :: DBCluster)
+
+-- | Undocumented member.
+dbCluster_serverlessV2ScalingConfiguration :: Lens.Lens' DBCluster (Prelude.Maybe ServerlessV2ScalingConfigurationInfo)
+dbCluster_serverlessV2ScalingConfiguration = Lens.lens (\DBCluster' {serverlessV2ScalingConfiguration} -> serverlessV2ScalingConfiguration) (\s@DBCluster' {} a -> s {serverlessV2ScalingConfiguration = a} :: DBCluster)
+
+-- | Specifies the current state of this DB 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 DB 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 VPC security groups that the DB 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..@? "AllocatedStorage")
+      Prelude.<*> ( x
+                      Data..@? "AssociatedRoles"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "DBClusterRole")
+                  )
+      Prelude.<*> (x Data..@? "AutomaticRestartTime")
+      Prelude.<*> ( x
+                      Data..@? "AvailabilityZones"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "AvailabilityZone")
+                  )
+      Prelude.<*> (x Data..@? "BackupRetentionPeriod")
+      Prelude.<*> (x Data..@? "CharacterSetName")
+      Prelude.<*> (x Data..@? "CloneGroupId")
+      Prelude.<*> (x Data..@? "ClusterCreateTime")
+      Prelude.<*> (x Data..@? "CopyTagsToSnapshot")
+      Prelude.<*> (x Data..@? "CrossAccountClone")
+      Prelude.<*> (x Data..@? "DBClusterArn")
+      Prelude.<*> (x Data..@? "DBClusterIdentifier")
+      Prelude.<*> ( x
+                      Data..@? "DBClusterMembers"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "DBClusterMember")
+                  )
+      Prelude.<*> ( x
+                      Data..@? "DBClusterOptionGroupMemberships"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "DBClusterOptionGroup")
+                  )
+      Prelude.<*> (x Data..@? "DBClusterParameterGroup")
+      Prelude.<*> (x Data..@? "DBSubnetGroup")
+      Prelude.<*> (x Data..@? "DatabaseName")
+      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..@? "IAMDatabaseAuthenticationEnabled")
+      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..@? "ServerlessV2ScalingConfiguration")
+      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` allocatedStorage
+      `Prelude.hashWithSalt` associatedRoles
+      `Prelude.hashWithSalt` automaticRestartTime
+      `Prelude.hashWithSalt` availabilityZones
+      `Prelude.hashWithSalt` backupRetentionPeriod
+      `Prelude.hashWithSalt` characterSetName
+      `Prelude.hashWithSalt` cloneGroupId
+      `Prelude.hashWithSalt` clusterCreateTime
+      `Prelude.hashWithSalt` copyTagsToSnapshot
+      `Prelude.hashWithSalt` crossAccountClone
+      `Prelude.hashWithSalt` dbClusterArn
+      `Prelude.hashWithSalt` dbClusterIdentifier
+      `Prelude.hashWithSalt` dbClusterMembers
+      `Prelude.hashWithSalt` dbClusterOptionGroupMemberships
+      `Prelude.hashWithSalt` dbClusterParameterGroup
+      `Prelude.hashWithSalt` dbSubnetGroup
+      `Prelude.hashWithSalt` databaseName
+      `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` iAMDatabaseAuthenticationEnabled
+      `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` serverlessV2ScalingConfiguration
+      `Prelude.hashWithSalt` status
+      `Prelude.hashWithSalt` storageEncrypted
+      `Prelude.hashWithSalt` vpcSecurityGroups
+
+instance Prelude.NFData DBCluster where
+  rnf DBCluster' {..} =
+    Prelude.rnf allocatedStorage
+      `Prelude.seq` Prelude.rnf associatedRoles
+      `Prelude.seq` Prelude.rnf automaticRestartTime
+      `Prelude.seq` Prelude.rnf availabilityZones
+      `Prelude.seq` Prelude.rnf backupRetentionPeriod
+      `Prelude.seq` Prelude.rnf characterSetName
+      `Prelude.seq` Prelude.rnf cloneGroupId
+      `Prelude.seq` Prelude.rnf clusterCreateTime
+      `Prelude.seq` Prelude.rnf copyTagsToSnapshot
+      `Prelude.seq` Prelude.rnf crossAccountClone
+      `Prelude.seq` Prelude.rnf dbClusterArn
+      `Prelude.seq` Prelude.rnf dbClusterIdentifier
+      `Prelude.seq` Prelude.rnf dbClusterMembers
+      `Prelude.seq` Prelude.rnf
+        dbClusterOptionGroupMemberships
+      `Prelude.seq` Prelude.rnf dbClusterParameterGroup
+      `Prelude.seq` Prelude.rnf dbSubnetGroup
+      `Prelude.seq` Prelude.rnf databaseName
+      `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
+        iAMDatabaseAuthenticationEnabled
+      `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
+        serverlessV2ScalingConfiguration
+      `Prelude.seq` Prelude.rnf
+        status
+      `Prelude.seq` Prelude.rnf
+        storageEncrypted
+      `Prelude.seq` Prelude.rnf
+        vpcSecurityGroups
diff --git a/gen/Amazonka/Neptune/Types/DBClusterEndpoint.hs b/gen/Amazonka/Neptune/Types/DBClusterEndpoint.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBClusterEndpoint.hs
@@ -0,0 +1,232 @@
+{-# 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.Neptune.Types.DBClusterEndpoint
+-- 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.Neptune.Types.DBClusterEndpoint 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
+
+-- | This data type represents the information you need to connect to an
+-- Amazon Neptune DB cluster. This data type is used as a response element
+-- in the following actions:
+--
+-- -   @CreateDBClusterEndpoint@
+--
+-- -   @DescribeDBClusterEndpoints@
+--
+-- -   @ModifyDBClusterEndpoint@
+--
+-- -   @DeleteDBClusterEndpoint@
+--
+-- For the data structure that represents Amazon Neptune DB instance
+-- endpoints, see @Endpoint@.
+--
+-- /See:/ 'newDBClusterEndpoint' smart constructor.
+data DBClusterEndpoint = DBClusterEndpoint'
+  { -- | The type associated with a custom endpoint. One of: @READER@, @WRITER@,
+    -- @ANY@.
+    customEndpointType :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) for the endpoint.
+    dbClusterEndpointArn :: Prelude.Maybe Prelude.Text,
+    -- | The identifier associated with the endpoint. This parameter is stored as
+    -- a lowercase string.
+    dbClusterEndpointIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | A unique system-generated identifier for an endpoint. It remains the
+    -- same for the whole life of the endpoint.
+    dbClusterEndpointResourceIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The DB cluster identifier of the DB cluster associated with the
+    -- endpoint. This parameter is stored as a lowercase string.
+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The DNS address of the endpoint.
+    endpoint :: Prelude.Maybe Prelude.Text,
+    -- | The type of the endpoint. One of: @READER@, @WRITER@, @CUSTOM@.
+    endpointType :: Prelude.Maybe Prelude.Text,
+    -- | List of DB instance identifiers that aren\'t part of the custom endpoint
+    -- group. All other eligible instances are reachable through the custom
+    -- endpoint. Only relevant if the list of static members is empty.
+    excludedMembers :: Prelude.Maybe [Prelude.Text],
+    -- | List of DB instance identifiers that are part of the custom endpoint
+    -- group.
+    staticMembers :: Prelude.Maybe [Prelude.Text],
+    -- | The current status of the endpoint. One of: @creating@, @available@,
+    -- @deleting@, @inactive@, @modifying@. The @inactive@ state applies to an
+    -- endpoint that cannot be used for a certain kind of cluster, such as a
+    -- @writer@ endpoint for a read-only secondary cluster in a global
+    -- database.
+    status :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DBClusterEndpoint' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'customEndpointType', 'dbClusterEndpoint_customEndpointType' - The type associated with a custom endpoint. One of: @READER@, @WRITER@,
+-- @ANY@.
+--
+-- 'dbClusterEndpointArn', 'dbClusterEndpoint_dbClusterEndpointArn' - The Amazon Resource Name (ARN) for the endpoint.
+--
+-- 'dbClusterEndpointIdentifier', 'dbClusterEndpoint_dbClusterEndpointIdentifier' - The identifier associated with the endpoint. This parameter is stored as
+-- a lowercase string.
+--
+-- 'dbClusterEndpointResourceIdentifier', 'dbClusterEndpoint_dbClusterEndpointResourceIdentifier' - A unique system-generated identifier for an endpoint. It remains the
+-- same for the whole life of the endpoint.
+--
+-- 'dbClusterIdentifier', 'dbClusterEndpoint_dbClusterIdentifier' - The DB cluster identifier of the DB cluster associated with the
+-- endpoint. This parameter is stored as a lowercase string.
+--
+-- 'endpoint', 'dbClusterEndpoint_endpoint' - The DNS address of the endpoint.
+--
+-- 'endpointType', 'dbClusterEndpoint_endpointType' - The type of the endpoint. One of: @READER@, @WRITER@, @CUSTOM@.
+--
+-- 'excludedMembers', 'dbClusterEndpoint_excludedMembers' - List of DB instance identifiers that aren\'t part of the custom endpoint
+-- group. All other eligible instances are reachable through the custom
+-- endpoint. Only relevant if the list of static members is empty.
+--
+-- 'staticMembers', 'dbClusterEndpoint_staticMembers' - List of DB instance identifiers that are part of the custom endpoint
+-- group.
+--
+-- 'status', 'dbClusterEndpoint_status' - The current status of the endpoint. One of: @creating@, @available@,
+-- @deleting@, @inactive@, @modifying@. The @inactive@ state applies to an
+-- endpoint that cannot be used for a certain kind of cluster, such as a
+-- @writer@ endpoint for a read-only secondary cluster in a global
+-- database.
+newDBClusterEndpoint ::
+  DBClusterEndpoint
+newDBClusterEndpoint =
+  DBClusterEndpoint'
+    { customEndpointType =
+        Prelude.Nothing,
+      dbClusterEndpointArn = Prelude.Nothing,
+      dbClusterEndpointIdentifier = Prelude.Nothing,
+      dbClusterEndpointResourceIdentifier =
+        Prelude.Nothing,
+      dbClusterIdentifier = Prelude.Nothing,
+      endpoint = Prelude.Nothing,
+      endpointType = Prelude.Nothing,
+      excludedMembers = Prelude.Nothing,
+      staticMembers = Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | The type associated with a custom endpoint. One of: @READER@, @WRITER@,
+-- @ANY@.
+dbClusterEndpoint_customEndpointType :: Lens.Lens' DBClusterEndpoint (Prelude.Maybe Prelude.Text)
+dbClusterEndpoint_customEndpointType = Lens.lens (\DBClusterEndpoint' {customEndpointType} -> customEndpointType) (\s@DBClusterEndpoint' {} a -> s {customEndpointType = a} :: DBClusterEndpoint)
+
+-- | The Amazon Resource Name (ARN) for the endpoint.
+dbClusterEndpoint_dbClusterEndpointArn :: Lens.Lens' DBClusterEndpoint (Prelude.Maybe Prelude.Text)
+dbClusterEndpoint_dbClusterEndpointArn = Lens.lens (\DBClusterEndpoint' {dbClusterEndpointArn} -> dbClusterEndpointArn) (\s@DBClusterEndpoint' {} a -> s {dbClusterEndpointArn = a} :: DBClusterEndpoint)
+
+-- | The identifier associated with the endpoint. This parameter is stored as
+-- a lowercase string.
+dbClusterEndpoint_dbClusterEndpointIdentifier :: Lens.Lens' DBClusterEndpoint (Prelude.Maybe Prelude.Text)
+dbClusterEndpoint_dbClusterEndpointIdentifier = Lens.lens (\DBClusterEndpoint' {dbClusterEndpointIdentifier} -> dbClusterEndpointIdentifier) (\s@DBClusterEndpoint' {} a -> s {dbClusterEndpointIdentifier = a} :: DBClusterEndpoint)
+
+-- | A unique system-generated identifier for an endpoint. It remains the
+-- same for the whole life of the endpoint.
+dbClusterEndpoint_dbClusterEndpointResourceIdentifier :: Lens.Lens' DBClusterEndpoint (Prelude.Maybe Prelude.Text)
+dbClusterEndpoint_dbClusterEndpointResourceIdentifier = Lens.lens (\DBClusterEndpoint' {dbClusterEndpointResourceIdentifier} -> dbClusterEndpointResourceIdentifier) (\s@DBClusterEndpoint' {} a -> s {dbClusterEndpointResourceIdentifier = a} :: DBClusterEndpoint)
+
+-- | The DB cluster identifier of the DB cluster associated with the
+-- endpoint. This parameter is stored as a lowercase string.
+dbClusterEndpoint_dbClusterIdentifier :: Lens.Lens' DBClusterEndpoint (Prelude.Maybe Prelude.Text)
+dbClusterEndpoint_dbClusterIdentifier = Lens.lens (\DBClusterEndpoint' {dbClusterIdentifier} -> dbClusterIdentifier) (\s@DBClusterEndpoint' {} a -> s {dbClusterIdentifier = a} :: DBClusterEndpoint)
+
+-- | The DNS address of the endpoint.
+dbClusterEndpoint_endpoint :: Lens.Lens' DBClusterEndpoint (Prelude.Maybe Prelude.Text)
+dbClusterEndpoint_endpoint = Lens.lens (\DBClusterEndpoint' {endpoint} -> endpoint) (\s@DBClusterEndpoint' {} a -> s {endpoint = a} :: DBClusterEndpoint)
+
+-- | The type of the endpoint. One of: @READER@, @WRITER@, @CUSTOM@.
+dbClusterEndpoint_endpointType :: Lens.Lens' DBClusterEndpoint (Prelude.Maybe Prelude.Text)
+dbClusterEndpoint_endpointType = Lens.lens (\DBClusterEndpoint' {endpointType} -> endpointType) (\s@DBClusterEndpoint' {} a -> s {endpointType = a} :: DBClusterEndpoint)
+
+-- | List of DB instance identifiers that aren\'t part of the custom endpoint
+-- group. All other eligible instances are reachable through the custom
+-- endpoint. Only relevant if the list of static members is empty.
+dbClusterEndpoint_excludedMembers :: Lens.Lens' DBClusterEndpoint (Prelude.Maybe [Prelude.Text])
+dbClusterEndpoint_excludedMembers = Lens.lens (\DBClusterEndpoint' {excludedMembers} -> excludedMembers) (\s@DBClusterEndpoint' {} a -> s {excludedMembers = a} :: DBClusterEndpoint) Prelude.. Lens.mapping Lens.coerced
+
+-- | List of DB instance identifiers that are part of the custom endpoint
+-- group.
+dbClusterEndpoint_staticMembers :: Lens.Lens' DBClusterEndpoint (Prelude.Maybe [Prelude.Text])
+dbClusterEndpoint_staticMembers = Lens.lens (\DBClusterEndpoint' {staticMembers} -> staticMembers) (\s@DBClusterEndpoint' {} a -> s {staticMembers = a} :: DBClusterEndpoint) Prelude.. Lens.mapping Lens.coerced
+
+-- | The current status of the endpoint. One of: @creating@, @available@,
+-- @deleting@, @inactive@, @modifying@. The @inactive@ state applies to an
+-- endpoint that cannot be used for a certain kind of cluster, such as a
+-- @writer@ endpoint for a read-only secondary cluster in a global
+-- database.
+dbClusterEndpoint_status :: Lens.Lens' DBClusterEndpoint (Prelude.Maybe Prelude.Text)
+dbClusterEndpoint_status = Lens.lens (\DBClusterEndpoint' {status} -> status) (\s@DBClusterEndpoint' {} a -> s {status = a} :: DBClusterEndpoint)
+
+instance Data.FromXML DBClusterEndpoint where
+  parseXML x =
+    DBClusterEndpoint'
+      Prelude.<$> (x Data..@? "CustomEndpointType")
+      Prelude.<*> (x Data..@? "DBClusterEndpointArn")
+      Prelude.<*> (x Data..@? "DBClusterEndpointIdentifier")
+      Prelude.<*> (x Data..@? "DBClusterEndpointResourceIdentifier")
+      Prelude.<*> (x Data..@? "DBClusterIdentifier")
+      Prelude.<*> (x Data..@? "Endpoint")
+      Prelude.<*> (x Data..@? "EndpointType")
+      Prelude.<*> ( x
+                      Data..@? "ExcludedMembers"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "member")
+                  )
+      Prelude.<*> ( x
+                      Data..@? "StaticMembers"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "member")
+                  )
+      Prelude.<*> (x Data..@? "Status")
+
+instance Prelude.Hashable DBClusterEndpoint where
+  hashWithSalt _salt DBClusterEndpoint' {..} =
+    _salt
+      `Prelude.hashWithSalt` customEndpointType
+      `Prelude.hashWithSalt` dbClusterEndpointArn
+      `Prelude.hashWithSalt` dbClusterEndpointIdentifier
+      `Prelude.hashWithSalt` dbClusterEndpointResourceIdentifier
+      `Prelude.hashWithSalt` dbClusterIdentifier
+      `Prelude.hashWithSalt` endpoint
+      `Prelude.hashWithSalt` endpointType
+      `Prelude.hashWithSalt` excludedMembers
+      `Prelude.hashWithSalt` staticMembers
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData DBClusterEndpoint where
+  rnf DBClusterEndpoint' {..} =
+    Prelude.rnf customEndpointType
+      `Prelude.seq` Prelude.rnf dbClusterEndpointArn
+      `Prelude.seq` Prelude.rnf dbClusterEndpointIdentifier
+      `Prelude.seq` Prelude.rnf dbClusterEndpointResourceIdentifier
+      `Prelude.seq` Prelude.rnf dbClusterIdentifier
+      `Prelude.seq` Prelude.rnf endpoint
+      `Prelude.seq` Prelude.rnf endpointType
+      `Prelude.seq` Prelude.rnf excludedMembers
+      `Prelude.seq` Prelude.rnf staticMembers
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/Neptune/Types/DBClusterMember.hs b/gen/Amazonka/Neptune/Types/DBClusterMember.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBClusterMember.hs
@@ -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.Neptune.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.Neptune.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 DB cluster.
+--
+-- /See:/ 'newDBClusterMember' smart constructor.
+data DBClusterMember = DBClusterMember'
+  { -- | Specifies the status of the DB cluster parameter group for this member
+    -- of the DB cluster.
+    dbClusterParameterGroupStatus :: Prelude.Maybe Prelude.Text,
+    -- | Specifies the instance identifier for this member of the DB cluster.
+    dbInstanceIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | Value that is @true@ if the cluster member is the primary instance for
+    -- the DB cluster and @false@ otherwise.
+    isClusterWriter :: Prelude.Maybe Prelude.Bool,
+    -- | A value that specifies the order in which a Read 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 DB cluster parameter group for this member
+-- of the DB cluster.
+--
+-- 'dbInstanceIdentifier', 'dbClusterMember_dbInstanceIdentifier' - Specifies the instance identifier for this member of the DB cluster.
+--
+-- 'isClusterWriter', 'dbClusterMember_isClusterWriter' - Value that is @true@ if the cluster member is the primary instance for
+-- the DB cluster and @false@ otherwise.
+--
+-- 'promotionTier', 'dbClusterMember_promotionTier' - A value that specifies the order in which a Read 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 DB 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 DB cluster.
+dbClusterMember_dbInstanceIdentifier :: Lens.Lens' DBClusterMember (Prelude.Maybe Prelude.Text)
+dbClusterMember_dbInstanceIdentifier = Lens.lens (\DBClusterMember' {dbInstanceIdentifier} -> dbInstanceIdentifier) (\s@DBClusterMember' {} a -> s {dbInstanceIdentifier = a} :: DBClusterMember)
+
+-- | Value that is @true@ if the cluster member is the primary instance for
+-- the DB 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 a Read 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
diff --git a/gen/Amazonka/Neptune/Types/DBClusterOptionGroupStatus.hs b/gen/Amazonka/Neptune/Types/DBClusterOptionGroupStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBClusterOptionGroupStatus.hs
@@ -0,0 +1,81 @@
+{-# 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.Neptune.Types.DBClusterOptionGroupStatus
+-- 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.Neptune.Types.DBClusterOptionGroupStatus 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
+
+-- | Not supported by Neptune.
+--
+-- /See:/ 'newDBClusterOptionGroupStatus' smart constructor.
+data DBClusterOptionGroupStatus = DBClusterOptionGroupStatus'
+  { -- | Not supported by Neptune.
+    dbClusterOptionGroupName :: Prelude.Maybe Prelude.Text,
+    -- | Not supported by Neptune.
+    status :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DBClusterOptionGroupStatus' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dbClusterOptionGroupName', 'dbClusterOptionGroupStatus_dbClusterOptionGroupName' - Not supported by Neptune.
+--
+-- 'status', 'dbClusterOptionGroupStatus_status' - Not supported by Neptune.
+newDBClusterOptionGroupStatus ::
+  DBClusterOptionGroupStatus
+newDBClusterOptionGroupStatus =
+  DBClusterOptionGroupStatus'
+    { dbClusterOptionGroupName =
+        Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | Not supported by Neptune.
+dbClusterOptionGroupStatus_dbClusterOptionGroupName :: Lens.Lens' DBClusterOptionGroupStatus (Prelude.Maybe Prelude.Text)
+dbClusterOptionGroupStatus_dbClusterOptionGroupName = Lens.lens (\DBClusterOptionGroupStatus' {dbClusterOptionGroupName} -> dbClusterOptionGroupName) (\s@DBClusterOptionGroupStatus' {} a -> s {dbClusterOptionGroupName = a} :: DBClusterOptionGroupStatus)
+
+-- | Not supported by Neptune.
+dbClusterOptionGroupStatus_status :: Lens.Lens' DBClusterOptionGroupStatus (Prelude.Maybe Prelude.Text)
+dbClusterOptionGroupStatus_status = Lens.lens (\DBClusterOptionGroupStatus' {status} -> status) (\s@DBClusterOptionGroupStatus' {} a -> s {status = a} :: DBClusterOptionGroupStatus)
+
+instance Data.FromXML DBClusterOptionGroupStatus where
+  parseXML x =
+    DBClusterOptionGroupStatus'
+      Prelude.<$> (x Data..@? "DBClusterOptionGroupName")
+      Prelude.<*> (x Data..@? "Status")
+
+instance Prelude.Hashable DBClusterOptionGroupStatus where
+  hashWithSalt _salt DBClusterOptionGroupStatus' {..} =
+    _salt
+      `Prelude.hashWithSalt` dbClusterOptionGroupName
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData DBClusterOptionGroupStatus where
+  rnf DBClusterOptionGroupStatus' {..} =
+    Prelude.rnf dbClusterOptionGroupName
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/Neptune/Types/DBClusterParameterGroup.hs b/gen/Amazonka/Neptune/Types/DBClusterParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBClusterParameterGroup.hs
@@ -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.Neptune.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.Neptune.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
+
+-- | Contains the details of an Amazon Neptune DB cluster parameter group.
+--
+-- This data type is used as a response element in the
+-- DescribeDBClusterParameterGroups action.
+--
+-- /See:/ 'newDBClusterParameterGroup' smart constructor.
+data DBClusterParameterGroup = DBClusterParameterGroup'
+  { -- | The Amazon Resource Name (ARN) for the DB cluster parameter group.
+    dbClusterParameterGroupArn :: Prelude.Maybe Prelude.Text,
+    -- | Provides the name of the DB cluster parameter group.
+    dbClusterParameterGroupName :: Prelude.Maybe Prelude.Text,
+    -- | Provides the name of the DB parameter group family that this DB cluster
+    -- parameter group is compatible with.
+    dbParameterGroupFamily :: Prelude.Maybe Prelude.Text,
+    -- | Provides the customer-specified description for this DB 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 DB cluster parameter group.
+--
+-- 'dbClusterParameterGroupName', 'dbClusterParameterGroup_dbClusterParameterGroupName' - Provides the name of the DB cluster parameter group.
+--
+-- 'dbParameterGroupFamily', 'dbClusterParameterGroup_dbParameterGroupFamily' - Provides the name of the DB parameter group family that this DB cluster
+-- parameter group is compatible with.
+--
+-- 'description', 'dbClusterParameterGroup_description' - Provides the customer-specified description for this DB 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 DB 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 DB 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 DB parameter group family that this DB 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 DB 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
diff --git a/gen/Amazonka/Neptune/Types/DBClusterParameterGroupNameMessage.hs b/gen/Amazonka/Neptune/Types/DBClusterParameterGroupNameMessage.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBClusterParameterGroupNameMessage.hs
@@ -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.Neptune.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.Neptune.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
+
+-- | /See:/ 'newDBClusterParameterGroupNameMessage' smart constructor.
+data DBClusterParameterGroupNameMessage = DBClusterParameterGroupNameMessage'
+  { -- | The name of the DB cluster parameter group.
+    --
+    -- Constraints:
+    --
+    -- -   Must be 1 to 255 letters or numbers.
+    --
+    -- -   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 the DB cluster parameter group.
+--
+-- Constraints:
+--
+-- -   Must be 1 to 255 letters or numbers.
+--
+-- -   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 the DB cluster parameter group.
+--
+-- Constraints:
+--
+-- -   Must be 1 to 255 letters or numbers.
+--
+-- -   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
diff --git a/gen/Amazonka/Neptune/Types/DBClusterRole.hs b/gen/Amazonka/Neptune/Types/DBClusterRole.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBClusterRole.hs
@@ -0,0 +1,135 @@
+{-# 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.Neptune.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.Neptune.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 Amazon Identity and Access Management (IAM) role that is
+-- associated with a DB cluster.
+--
+-- /See:/ 'newDBClusterRole' smart constructor.
+data DBClusterRole = DBClusterRole'
+  { -- | The name of the feature associated with the Amazon Identity and Access
+    -- Management (IAM) role. For the list of supported feature names, see
+    -- <https://docs.aws.amazon.com/neptune/latest/userguide/api-other-apis.html#DescribeDBEngineVersions DescribeDBEngineVersions>.
+    featureName :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the IAM role that is associated with
+    -- the DB cluster.
+    roleArn :: Prelude.Maybe Prelude.Text,
+    -- | Describes the state of association between the IAM role and the DB
+    -- cluster. The Status property returns one of the following values:
+    --
+    -- -   @ACTIVE@ - the IAM role ARN is associated with the DB cluster and
+    --     can be used to access other Amazon services on your behalf.
+    --
+    -- -   @PENDING@ - the IAM role ARN is being associated with the DB
+    --     cluster.
+    --
+    -- -   @INVALID@ - the IAM role ARN is associated with the DB cluster, but
+    --     the DB cluster is unable to assume the IAM role in order to access
+    --     other Amazon 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:
+--
+-- 'featureName', 'dbClusterRole_featureName' - The name of the feature associated with the Amazon Identity and Access
+-- Management (IAM) role. For the list of supported feature names, see
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/api-other-apis.html#DescribeDBEngineVersions DescribeDBEngineVersions>.
+--
+-- 'roleArn', 'dbClusterRole_roleArn' - The Amazon Resource Name (ARN) of the IAM role that is associated with
+-- the DB cluster.
+--
+-- 'status', 'dbClusterRole_status' - Describes the state of association between the IAM role and the DB
+-- cluster. The Status property returns one of the following values:
+--
+-- -   @ACTIVE@ - the IAM role ARN is associated with the DB cluster and
+--     can be used to access other Amazon services on your behalf.
+--
+-- -   @PENDING@ - the IAM role ARN is being associated with the DB
+--     cluster.
+--
+-- -   @INVALID@ - the IAM role ARN is associated with the DB cluster, but
+--     the DB cluster is unable to assume the IAM role in order to access
+--     other Amazon services on your behalf.
+newDBClusterRole ::
+  DBClusterRole
+newDBClusterRole =
+  DBClusterRole'
+    { featureName = Prelude.Nothing,
+      roleArn = Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | The name of the feature associated with the Amazon Identity and Access
+-- Management (IAM) role. For the list of supported feature names, see
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/api-other-apis.html#DescribeDBEngineVersions DescribeDBEngineVersions>.
+dbClusterRole_featureName :: Lens.Lens' DBClusterRole (Prelude.Maybe Prelude.Text)
+dbClusterRole_featureName = Lens.lens (\DBClusterRole' {featureName} -> featureName) (\s@DBClusterRole' {} a -> s {featureName = a} :: DBClusterRole)
+
+-- | The Amazon Resource Name (ARN) of the IAM role 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 IAM role and the DB
+-- cluster. The Status property returns one of the following values:
+--
+-- -   @ACTIVE@ - the IAM role ARN is associated with the DB cluster and
+--     can be used to access other Amazon services on your behalf.
+--
+-- -   @PENDING@ - the IAM role ARN is being associated with the DB
+--     cluster.
+--
+-- -   @INVALID@ - the IAM role ARN is associated with the DB cluster, but
+--     the DB cluster is unable to assume the IAM role in order to access
+--     other Amazon 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..@? "FeatureName")
+      Prelude.<*> (x Data..@? "RoleArn")
+      Prelude.<*> (x Data..@? "Status")
+
+instance Prelude.Hashable DBClusterRole where
+  hashWithSalt _salt DBClusterRole' {..} =
+    _salt
+      `Prelude.hashWithSalt` featureName
+      `Prelude.hashWithSalt` roleArn
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData DBClusterRole where
+  rnf DBClusterRole' {..} =
+    Prelude.rnf featureName
+      `Prelude.seq` Prelude.rnf roleArn
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/Neptune/Types/DBClusterSnapshot.hs b/gen/Amazonka/Neptune/Types/DBClusterSnapshot.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBClusterSnapshot.hs
@@ -0,0 +1,380 @@
+{-# 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.Neptune.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.Neptune.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
+
+-- | Contains the details for an Amazon Neptune DB cluster snapshot
+--
+-- This data type is used as a response element in the
+-- DescribeDBClusterSnapshots action.
+--
+-- /See:/ 'newDBClusterSnapshot' smart constructor.
+data DBClusterSnapshot = DBClusterSnapshot'
+  { -- | Specifies the allocated storage size in gibibytes (GiB).
+    allocatedStorage :: Prelude.Maybe Prelude.Int,
+    -- | Provides the list of EC2 Availability Zones that instances in the DB
+    -- cluster snapshot can be restored in.
+    availabilityZones :: Prelude.Maybe [Prelude.Text],
+    -- | Specifies the time when the DB cluster was created, in Universal
+    -- Coordinated Time (UTC).
+    clusterCreateTime :: Prelude.Maybe Data.ISO8601,
+    -- | Specifies the DB cluster identifier of the DB cluster that this DB
+    -- cluster snapshot was created from.
+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) for the DB cluster snapshot.
+    dbClusterSnapshotArn :: Prelude.Maybe Prelude.Text,
+    -- | Specifies the identifier for a DB cluster snapshot. Must match the
+    -- identifier of an existing snapshot.
+    --
+    -- After you restore a DB cluster using a @DBClusterSnapshotIdentifier@,
+    -- you must specify the same @DBClusterSnapshotIdentifier@ for any future
+    -- updates to the DB cluster. When you specify this property for an update,
+    -- the DB cluster is not restored from the snapshot again, and the data in
+    -- the database is not changed.
+    --
+    -- However, if you don\'t specify the @DBClusterSnapshotIdentifier@, an
+    -- empty DB cluster is created, and the original DB cluster is deleted. If
+    -- you specify a property that is different from the previous snapshot
+    -- restore property, the DB cluster is restored from the snapshot specified
+    -- by the @DBClusterSnapshotIdentifier@, and the original DB cluster is
+    -- deleted.
+    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 DB cluster
+    -- snapshot.
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | True if mapping of Amazon Identity and Access Management (IAM) accounts
+    -- to database accounts is enabled, and otherwise false.
+    iAMDatabaseAuthenticationEnabled :: Prelude.Maybe Prelude.Bool,
+    -- | If @StorageEncrypted@ is true, the Amazon KMS key identifier for the
+    -- encrypted DB cluster snapshot.
+    kmsKeyId :: Prelude.Maybe Prelude.Text,
+    -- | Provides the license model information for this DB cluster snapshot.
+    licenseModel :: Prelude.Maybe Prelude.Text,
+    -- | Not supported by Neptune.
+    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 DB cluster was listening on at the time of
+    -- the snapshot.
+    port :: Prelude.Maybe Prelude.Int,
+    -- | Provides the time when the snapshot was taken, in Universal Coordinated
+    -- Time (UTC).
+    snapshotCreateTime :: Prelude.Maybe Data.ISO8601,
+    -- | Provides the type of the DB cluster snapshot.
+    snapshotType :: Prelude.Maybe Prelude.Text,
+    -- | If the DB cluster snapshot was copied from a source DB cluster snapshot,
+    -- the Amazon Resource Name (ARN) for the source DB cluster snapshot,
+    -- otherwise, a null value.
+    sourceDBClusterSnapshotArn :: Prelude.Maybe Prelude.Text,
+    -- | Specifies the status of this DB cluster snapshot.
+    status :: Prelude.Maybe Prelude.Text,
+    -- | Specifies whether the DB cluster snapshot is encrypted.
+    storageEncrypted :: Prelude.Maybe Prelude.Bool,
+    -- | Provides the VPC ID associated with the DB 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:
+--
+-- 'allocatedStorage', 'dbClusterSnapshot_allocatedStorage' - Specifies the allocated storage size in gibibytes (GiB).
+--
+-- 'availabilityZones', 'dbClusterSnapshot_availabilityZones' - Provides the list of EC2 Availability Zones that instances in the DB
+-- cluster snapshot can be restored in.
+--
+-- 'clusterCreateTime', 'dbClusterSnapshot_clusterCreateTime' - Specifies the time when the DB cluster was created, in Universal
+-- Coordinated Time (UTC).
+--
+-- 'dbClusterIdentifier', 'dbClusterSnapshot_dbClusterIdentifier' - Specifies the DB cluster identifier of the DB cluster that this DB
+-- cluster snapshot was created from.
+--
+-- 'dbClusterSnapshotArn', 'dbClusterSnapshot_dbClusterSnapshotArn' - The Amazon Resource Name (ARN) for the DB cluster snapshot.
+--
+-- 'dbClusterSnapshotIdentifier', 'dbClusterSnapshot_dbClusterSnapshotIdentifier' - Specifies the identifier for a DB cluster snapshot. Must match the
+-- identifier of an existing snapshot.
+--
+-- After you restore a DB cluster using a @DBClusterSnapshotIdentifier@,
+-- you must specify the same @DBClusterSnapshotIdentifier@ for any future
+-- updates to the DB cluster. When you specify this property for an update,
+-- the DB cluster is not restored from the snapshot again, and the data in
+-- the database is not changed.
+--
+-- However, if you don\'t specify the @DBClusterSnapshotIdentifier@, an
+-- empty DB cluster is created, and the original DB cluster is deleted. If
+-- you specify a property that is different from the previous snapshot
+-- restore property, the DB cluster is restored from the snapshot specified
+-- by the @DBClusterSnapshotIdentifier@, and the original DB cluster is
+-- deleted.
+--
+-- 'engine', 'dbClusterSnapshot_engine' - Specifies the name of the database engine.
+--
+-- 'engineVersion', 'dbClusterSnapshot_engineVersion' - Provides the version of the database engine for this DB cluster
+-- snapshot.
+--
+-- 'iAMDatabaseAuthenticationEnabled', 'dbClusterSnapshot_iAMDatabaseAuthenticationEnabled' - True if mapping of Amazon Identity and Access Management (IAM) accounts
+-- to database accounts is enabled, and otherwise false.
+--
+-- 'kmsKeyId', 'dbClusterSnapshot_kmsKeyId' - If @StorageEncrypted@ is true, the Amazon KMS key identifier for the
+-- encrypted DB cluster snapshot.
+--
+-- 'licenseModel', 'dbClusterSnapshot_licenseModel' - Provides the license model information for this DB cluster snapshot.
+--
+-- 'masterUsername', 'dbClusterSnapshot_masterUsername' - Not supported by Neptune.
+--
+-- 'percentProgress', 'dbClusterSnapshot_percentProgress' - Specifies the percentage of the estimated data that has been
+-- transferred.
+--
+-- 'port', 'dbClusterSnapshot_port' - Specifies the port that the DB cluster was listening on at the time of
+-- the snapshot.
+--
+-- 'snapshotCreateTime', 'dbClusterSnapshot_snapshotCreateTime' - Provides the time when the snapshot was taken, in Universal Coordinated
+-- Time (UTC).
+--
+-- 'snapshotType', 'dbClusterSnapshot_snapshotType' - Provides the type of the DB cluster snapshot.
+--
+-- 'sourceDBClusterSnapshotArn', 'dbClusterSnapshot_sourceDBClusterSnapshotArn' - If the DB cluster snapshot was copied from a source DB cluster snapshot,
+-- the Amazon Resource Name (ARN) for the source DB cluster snapshot,
+-- otherwise, a null value.
+--
+-- 'status', 'dbClusterSnapshot_status' - Specifies the status of this DB cluster snapshot.
+--
+-- 'storageEncrypted', 'dbClusterSnapshot_storageEncrypted' - Specifies whether the DB cluster snapshot is encrypted.
+--
+-- 'vpcId', 'dbClusterSnapshot_vpcId' - Provides the VPC ID associated with the DB cluster snapshot.
+newDBClusterSnapshot ::
+  DBClusterSnapshot
+newDBClusterSnapshot =
+  DBClusterSnapshot'
+    { allocatedStorage =
+        Prelude.Nothing,
+      availabilityZones = Prelude.Nothing,
+      clusterCreateTime = Prelude.Nothing,
+      dbClusterIdentifier = Prelude.Nothing,
+      dbClusterSnapshotArn = Prelude.Nothing,
+      dbClusterSnapshotIdentifier = Prelude.Nothing,
+      engine = Prelude.Nothing,
+      engineVersion = Prelude.Nothing,
+      iAMDatabaseAuthenticationEnabled = Prelude.Nothing,
+      kmsKeyId = Prelude.Nothing,
+      licenseModel = 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
+    }
+
+-- | Specifies the allocated storage size in gibibytes (GiB).
+dbClusterSnapshot_allocatedStorage :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Int)
+dbClusterSnapshot_allocatedStorage = Lens.lens (\DBClusterSnapshot' {allocatedStorage} -> allocatedStorage) (\s@DBClusterSnapshot' {} a -> s {allocatedStorage = a} :: DBClusterSnapshot)
+
+-- | Provides the list of EC2 Availability Zones that instances in the DB
+-- 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 DB 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 DB cluster identifier of the DB cluster that this DB
+-- 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 DB 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 a DB cluster snapshot. Must match the
+-- identifier of an existing snapshot.
+--
+-- After you restore a DB cluster using a @DBClusterSnapshotIdentifier@,
+-- you must specify the same @DBClusterSnapshotIdentifier@ for any future
+-- updates to the DB cluster. When you specify this property for an update,
+-- the DB cluster is not restored from the snapshot again, and the data in
+-- the database is not changed.
+--
+-- However, if you don\'t specify the @DBClusterSnapshotIdentifier@, an
+-- empty DB cluster is created, and the original DB cluster is deleted. If
+-- you specify a property that is different from the previous snapshot
+-- restore property, the DB cluster is restored from the snapshot specified
+-- by the @DBClusterSnapshotIdentifier@, and the original DB cluster is
+-- deleted.
+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 DB 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)
+
+-- | True if mapping of Amazon Identity and Access Management (IAM) accounts
+-- to database accounts is enabled, and otherwise false.
+dbClusterSnapshot_iAMDatabaseAuthenticationEnabled :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Bool)
+dbClusterSnapshot_iAMDatabaseAuthenticationEnabled = Lens.lens (\DBClusterSnapshot' {iAMDatabaseAuthenticationEnabled} -> iAMDatabaseAuthenticationEnabled) (\s@DBClusterSnapshot' {} a -> s {iAMDatabaseAuthenticationEnabled = a} :: DBClusterSnapshot)
+
+-- | If @StorageEncrypted@ is true, the Amazon KMS key identifier for the
+-- encrypted DB 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 license model information for this DB cluster snapshot.
+dbClusterSnapshot_licenseModel :: Lens.Lens' DBClusterSnapshot (Prelude.Maybe Prelude.Text)
+dbClusterSnapshot_licenseModel = Lens.lens (\DBClusterSnapshot' {licenseModel} -> licenseModel) (\s@DBClusterSnapshot' {} a -> s {licenseModel = a} :: DBClusterSnapshot)
+
+-- | Not supported by Neptune.
+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 DB 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 Universal Coordinated
+-- Time (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 DB 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 DB cluster snapshot was copied from a source DB cluster snapshot,
+-- the Amazon Resource Name (ARN) for the source DB 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 DB 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 DB 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 VPC ID associated with the DB 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..@? "AllocatedStorage")
+      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..@? "IAMDatabaseAuthenticationEnabled")
+      Prelude.<*> (x Data..@? "KmsKeyId")
+      Prelude.<*> (x Data..@? "LicenseModel")
+      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` allocatedStorage
+      `Prelude.hashWithSalt` availabilityZones
+      `Prelude.hashWithSalt` clusterCreateTime
+      `Prelude.hashWithSalt` dbClusterIdentifier
+      `Prelude.hashWithSalt` dbClusterSnapshotArn
+      `Prelude.hashWithSalt` dbClusterSnapshotIdentifier
+      `Prelude.hashWithSalt` engine
+      `Prelude.hashWithSalt` engineVersion
+      `Prelude.hashWithSalt` iAMDatabaseAuthenticationEnabled
+      `Prelude.hashWithSalt` kmsKeyId
+      `Prelude.hashWithSalt` licenseModel
+      `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 allocatedStorage
+      `Prelude.seq` 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 iAMDatabaseAuthenticationEnabled
+      `Prelude.seq` Prelude.rnf kmsKeyId
+      `Prelude.seq` Prelude.rnf licenseModel
+      `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
diff --git a/gen/Amazonka/Neptune/Types/DBClusterSnapshotAttribute.hs b/gen/Amazonka/Neptune/Types/DBClusterSnapshotAttribute.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBClusterSnapshotAttribute.hs
@@ -0,0 +1,119 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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.Neptune.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 DB cluster snapshot attribute.
+--
+-- Manual DB cluster snapshot attributes are used to authorize other Amazon
+-- accounts to restore a manual DB cluster snapshot. For more information,
+-- see the ModifyDBClusterSnapshotAttribute API action.
+--
+-- /See:/ 'newDBClusterSnapshotAttribute' smart constructor.
+data DBClusterSnapshotAttribute = DBClusterSnapshotAttribute'
+  { -- | The name of the manual DB cluster snapshot attribute.
+    --
+    -- The attribute named @restore@ refers to the list of Amazon accounts that
+    -- have permission to copy or restore the manual DB cluster snapshot. For
+    -- more information, see the ModifyDBClusterSnapshotAttribute API action.
+    attributeName :: Prelude.Maybe Prelude.Text,
+    -- | The value(s) for the manual DB cluster snapshot attribute.
+    --
+    -- If the @AttributeName@ field is set to @restore@, then this element
+    -- returns a list of IDs of the Amazon accounts that are authorized to copy
+    -- or restore the manual DB cluster snapshot. If a value of @all@ is in the
+    -- list, then the manual DB cluster snapshot is public and available for
+    -- any Amazon 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 DB cluster snapshot attribute.
+--
+-- The attribute named @restore@ refers to the list of Amazon accounts that
+-- have permission to copy or restore the manual DB cluster snapshot. For
+-- more information, see the ModifyDBClusterSnapshotAttribute API action.
+--
+-- 'attributeValues', 'dbClusterSnapshotAttribute_attributeValues' - The value(s) for the manual DB cluster snapshot attribute.
+--
+-- If the @AttributeName@ field is set to @restore@, then this element
+-- returns a list of IDs of the Amazon accounts that are authorized to copy
+-- or restore the manual DB cluster snapshot. If a value of @all@ is in the
+-- list, then the manual DB cluster snapshot is public and available for
+-- any Amazon account to copy or restore.
+newDBClusterSnapshotAttribute ::
+  DBClusterSnapshotAttribute
+newDBClusterSnapshotAttribute =
+  DBClusterSnapshotAttribute'
+    { attributeName =
+        Prelude.Nothing,
+      attributeValues = Prelude.Nothing
+    }
+
+-- | The name of the manual DB cluster snapshot attribute.
+--
+-- The attribute named @restore@ refers to the list of Amazon accounts that
+-- have permission to copy or restore the manual DB cluster snapshot. For
+-- more information, see the ModifyDBClusterSnapshotAttribute API action.
+dbClusterSnapshotAttribute_attributeName :: Lens.Lens' DBClusterSnapshotAttribute (Prelude.Maybe Prelude.Text)
+dbClusterSnapshotAttribute_attributeName = Lens.lens (\DBClusterSnapshotAttribute' {attributeName} -> attributeName) (\s@DBClusterSnapshotAttribute' {} a -> s {attributeName = a} :: DBClusterSnapshotAttribute)
+
+-- | The value(s) for the manual DB cluster snapshot attribute.
+--
+-- If the @AttributeName@ field is set to @restore@, then this element
+-- returns a list of IDs of the Amazon accounts that are authorized to copy
+-- or restore the manual DB cluster snapshot. If a value of @all@ is in the
+-- list, then the manual DB cluster snapshot is public and available for
+-- any Amazon 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
diff --git a/gen/Amazonka/Neptune/Types/DBClusterSnapshotAttributesResult.hs b/gen/Amazonka/Neptune/Types/DBClusterSnapshotAttributesResult.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBClusterSnapshotAttributesResult.hs
@@ -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.Neptune.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.Neptune.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.Neptune.Types.DBClusterSnapshotAttribute
+import qualified Amazonka.Prelude as Prelude
+
+-- | Contains the results of a successful call to the
+-- DescribeDBClusterSnapshotAttributes API action.
+--
+-- Manual DB cluster snapshot attributes are used to authorize other Amazon
+-- accounts to copy or restore a manual DB cluster snapshot. For more
+-- information, see the ModifyDBClusterSnapshotAttribute API action.
+--
+-- /See:/ 'newDBClusterSnapshotAttributesResult' smart constructor.
+data DBClusterSnapshotAttributesResult = DBClusterSnapshotAttributesResult'
+  { -- | The list of attributes and values for the manual DB cluster snapshot.
+    dbClusterSnapshotAttributes :: Prelude.Maybe [DBClusterSnapshotAttribute],
+    -- | The identifier of the manual DB 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 manual DB cluster snapshot.
+--
+-- 'dbClusterSnapshotIdentifier', 'dbClusterSnapshotAttributesResult_dbClusterSnapshotIdentifier' - The identifier of the manual DB 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 manual DB 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 manual DB 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
diff --git a/gen/Amazonka/Neptune/Types/DBEngineVersion.hs b/gen/Amazonka/Neptune/Types/DBEngineVersion.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBEngineVersion.hs
@@ -0,0 +1,248 @@
+{-# 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.Neptune.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.Neptune.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.Neptune.Types.CharacterSet
+import Amazonka.Neptune.Types.Timezone
+import Amazonka.Neptune.Types.UpgradeTarget
+import qualified Amazonka.Prelude as Prelude
+
+-- | This data type is used as a response element in the action
+-- DescribeDBEngineVersions.
+--
+-- /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 DB parameter group family for the database engine.
+    dbParameterGroupFamily :: Prelude.Maybe Prelude.Text,
+    -- | /(Not supported by Neptune)/
+    defaultCharacterSet :: Prelude.Maybe CharacterSet,
+    -- | 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
+    -- CloudWatch Logs.
+    exportableLogTypes :: Prelude.Maybe [Prelude.Text],
+    -- | /(Not supported by Neptune)/
+    supportedCharacterSets :: Prelude.Maybe [CharacterSet],
+    -- | A list of the time zones supported by this engine for the @Timezone@
+    -- parameter of the @CreateDBInstance@ action.
+    supportedTimezones :: Prelude.Maybe [Timezone],
+    -- | A value that indicates whether you can use Aurora global databases with
+    -- a specific DB engine version.
+    supportsGlobalDatabases :: Prelude.Maybe Prelude.Bool,
+    -- | A value that indicates whether the engine version supports exporting the
+    -- log types specified by ExportableLogTypes to CloudWatch Logs.
+    supportsLogExportsToCloudwatchLogs :: Prelude.Maybe Prelude.Bool,
+    -- | Indicates whether the database engine version supports read replicas.
+    supportsReadReplica :: 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 DB parameter group family for the database engine.
+--
+-- 'defaultCharacterSet', 'dbEngineVersion_defaultCharacterSet' - /(Not supported by Neptune)/
+--
+-- '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
+-- CloudWatch Logs.
+--
+-- 'supportedCharacterSets', 'dbEngineVersion_supportedCharacterSets' - /(Not supported by Neptune)/
+--
+-- 'supportedTimezones', 'dbEngineVersion_supportedTimezones' - A list of the time zones supported by this engine for the @Timezone@
+-- parameter of the @CreateDBInstance@ action.
+--
+-- 'supportsGlobalDatabases', 'dbEngineVersion_supportsGlobalDatabases' - A value that indicates whether you can use Aurora global databases with
+-- a specific DB engine version.
+--
+-- 'supportsLogExportsToCloudwatchLogs', 'dbEngineVersion_supportsLogExportsToCloudwatchLogs' - A value that indicates whether the engine version supports exporting the
+-- log types specified by ExportableLogTypes to CloudWatch Logs.
+--
+-- 'supportsReadReplica', 'dbEngineVersion_supportsReadReplica' - Indicates whether the database engine version supports read replicas.
+--
+-- '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,
+      defaultCharacterSet = Prelude.Nothing,
+      engine = Prelude.Nothing,
+      engineVersion = Prelude.Nothing,
+      exportableLogTypes = Prelude.Nothing,
+      supportedCharacterSets = Prelude.Nothing,
+      supportedTimezones = Prelude.Nothing,
+      supportsGlobalDatabases = Prelude.Nothing,
+      supportsLogExportsToCloudwatchLogs = Prelude.Nothing,
+      supportsReadReplica = 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 DB 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)
+
+-- | /(Not supported by Neptune)/
+dbEngineVersion_defaultCharacterSet :: Lens.Lens' DBEngineVersion (Prelude.Maybe CharacterSet)
+dbEngineVersion_defaultCharacterSet = Lens.lens (\DBEngineVersion' {defaultCharacterSet} -> defaultCharacterSet) (\s@DBEngineVersion' {} a -> s {defaultCharacterSet = 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
+-- 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
+
+-- | /(Not supported by Neptune)/
+dbEngineVersion_supportedCharacterSets :: Lens.Lens' DBEngineVersion (Prelude.Maybe [CharacterSet])
+dbEngineVersion_supportedCharacterSets = Lens.lens (\DBEngineVersion' {supportedCharacterSets} -> supportedCharacterSets) (\s@DBEngineVersion' {} a -> s {supportedCharacterSets = a} :: DBEngineVersion) Prelude.. Lens.mapping Lens.coerced
+
+-- | A list of the time zones supported by this engine for the @Timezone@
+-- parameter of the @CreateDBInstance@ action.
+dbEngineVersion_supportedTimezones :: Lens.Lens' DBEngineVersion (Prelude.Maybe [Timezone])
+dbEngineVersion_supportedTimezones = Lens.lens (\DBEngineVersion' {supportedTimezones} -> supportedTimezones) (\s@DBEngineVersion' {} a -> s {supportedTimezones = a} :: DBEngineVersion) Prelude.. Lens.mapping Lens.coerced
+
+-- | A value that indicates whether you can use Aurora global databases with
+-- a specific DB engine version.
+dbEngineVersion_supportsGlobalDatabases :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Bool)
+dbEngineVersion_supportsGlobalDatabases = Lens.lens (\DBEngineVersion' {supportsGlobalDatabases} -> supportsGlobalDatabases) (\s@DBEngineVersion' {} a -> s {supportsGlobalDatabases = a} :: DBEngineVersion)
+
+-- | 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)
+
+-- | Indicates whether the database engine version supports read replicas.
+dbEngineVersion_supportsReadReplica :: Lens.Lens' DBEngineVersion (Prelude.Maybe Prelude.Bool)
+dbEngineVersion_supportsReadReplica = Lens.lens (\DBEngineVersion' {supportsReadReplica} -> supportsReadReplica) (\s@DBEngineVersion' {} a -> s {supportsReadReplica = 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..@? "DefaultCharacterSet")
+      Prelude.<*> (x Data..@? "Engine")
+      Prelude.<*> (x Data..@? "EngineVersion")
+      Prelude.<*> ( x
+                      Data..@? "ExportableLogTypes"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "member")
+                  )
+      Prelude.<*> ( x
+                      Data..@? "SupportedCharacterSets"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "CharacterSet")
+                  )
+      Prelude.<*> ( x
+                      Data..@? "SupportedTimezones"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "Timezone")
+                  )
+      Prelude.<*> (x Data..@? "SupportsGlobalDatabases")
+      Prelude.<*> (x Data..@? "SupportsLogExportsToCloudwatchLogs")
+      Prelude.<*> (x Data..@? "SupportsReadReplica")
+      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` defaultCharacterSet
+      `Prelude.hashWithSalt` engine
+      `Prelude.hashWithSalt` engineVersion
+      `Prelude.hashWithSalt` exportableLogTypes
+      `Prelude.hashWithSalt` supportedCharacterSets
+      `Prelude.hashWithSalt` supportedTimezones
+      `Prelude.hashWithSalt` supportsGlobalDatabases
+      `Prelude.hashWithSalt` supportsLogExportsToCloudwatchLogs
+      `Prelude.hashWithSalt` supportsReadReplica
+      `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 defaultCharacterSet
+      `Prelude.seq` Prelude.rnf engine
+      `Prelude.seq` Prelude.rnf engineVersion
+      `Prelude.seq` Prelude.rnf exportableLogTypes
+      `Prelude.seq` Prelude.rnf supportedCharacterSets
+      `Prelude.seq` Prelude.rnf supportedTimezones
+      `Prelude.seq` Prelude.rnf supportsGlobalDatabases
+      `Prelude.seq` Prelude.rnf supportsLogExportsToCloudwatchLogs
+      `Prelude.seq` Prelude.rnf supportsReadReplica
+      `Prelude.seq` Prelude.rnf validUpgradeTarget
diff --git a/gen/Amazonka/Neptune/Types/DBInstance.hs b/gen/Amazonka/Neptune/Types/DBInstance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBInstance.hs
@@ -0,0 +1,891 @@
+{-# 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.Neptune.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.Neptune.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.Neptune.Types.DBInstanceStatusInfo
+import Amazonka.Neptune.Types.DBParameterGroupStatus
+import Amazonka.Neptune.Types.DBSecurityGroupMembership
+import Amazonka.Neptune.Types.DBSubnetGroup
+import Amazonka.Neptune.Types.DomainMembership
+import Amazonka.Neptune.Types.Endpoint
+import Amazonka.Neptune.Types.OptionGroupMembership
+import Amazonka.Neptune.Types.PendingModifiedValues
+import Amazonka.Neptune.Types.VpcSecurityGroupMembership
+import qualified Amazonka.Prelude as Prelude
+
+-- | Contains the details of an Amazon Neptune DB instance.
+--
+-- This data type is used as a response element in the DescribeDBInstances
+-- action.
+--
+-- /See:/ 'newDBInstance' smart constructor.
+data DBInstance = DBInstance'
+  { -- | Not supported by Neptune.
+    allocatedStorage :: Prelude.Maybe Prelude.Int,
+    -- | Indicates that minor version patches are applied automatically.
+    autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
+    -- | Specifies the name of the Availability Zone the DB instance is located
+    -- in.
+    availabilityZone :: Prelude.Maybe Prelude.Text,
+    -- | Specifies the number of days for which automatic DB snapshots are
+    -- retained.
+    backupRetentionPeriod :: Prelude.Maybe Prelude.Int,
+    -- | The identifier of the CA certificate for this DB instance.
+    cACertificateIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | /(Not supported by Neptune)/
+    characterSetName :: Prelude.Maybe Prelude.Text,
+    -- | Specifies whether tags are copied from the DB instance to snapshots of
+    -- the DB instance.
+    copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,
+    -- | If the DB instance is a member of a DB cluster, contains the name of the
+    -- DB cluster that the DB instance is a member of.
+    dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) for the DB instance.
+    dbInstanceArn :: Prelude.Maybe Prelude.Text,
+    -- | Contains the name of the compute and memory capacity class of the DB
+    -- instance.
+    dbInstanceClass :: Prelude.Maybe Prelude.Text,
+    -- | Contains a user-supplied database identifier. This identifier is the
+    -- unique key that identifies a DB instance.
+    dbInstanceIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | Specifies the current state of this database.
+    dbInstanceStatus :: Prelude.Maybe Prelude.Text,
+    -- | The database name.
+    dbName :: Prelude.Maybe Prelude.Text,
+    -- | Provides the list of DB parameter groups applied to this DB instance.
+    dbParameterGroups :: Prelude.Maybe [DBParameterGroupStatus],
+    -- | Provides List of DB security group elements containing only
+    -- @DBSecurityGroup.Name@ and @DBSecurityGroup.Status@ subelements.
+    dbSecurityGroups :: Prelude.Maybe [DBSecurityGroupMembership],
+    -- | Specifies information on the subnet group associated with the DB
+    -- instance, including the name, description, and subnets in the subnet
+    -- group.
+    dbSubnetGroup :: Prelude.Maybe DBSubnetGroup,
+    -- | Specifies the port that the DB instance listens on. If the DB instance
+    -- is part of a DB cluster, this can be a different port than the DB
+    -- cluster port.
+    dbInstancePort :: Prelude.Maybe Prelude.Int,
+    -- | The Amazon Region-unique, immutable identifier for the DB instance. This
+    -- identifier is found in Amazon CloudTrail log entries whenever the Amazon
+    -- KMS key for the DB instance is accessed.
+    dbiResourceId :: Prelude.Maybe Prelude.Text,
+    -- | Indicates whether or not the DB instance has deletion protection
+    -- enabled. The instance can\'t be deleted when deletion protection is
+    -- enabled. See
+    -- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
+    deletionProtection :: Prelude.Maybe Prelude.Bool,
+    -- | Not supported
+    domainMemberships :: Prelude.Maybe [DomainMembership],
+    -- | A list of log types that this DB 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 DB
+    -- instance.
+    engine :: Prelude.Maybe Prelude.Text,
+    -- | Indicates the database engine version.
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream
+    -- that receives the Enhanced Monitoring metrics data for the DB instance.
+    enhancedMonitoringResourceArn :: Prelude.Maybe Prelude.Text,
+    -- | True if Amazon Identity and Access Management (IAM) authentication is
+    -- enabled, and otherwise false.
+    iAMDatabaseAuthenticationEnabled :: Prelude.Maybe Prelude.Bool,
+    -- | Provides the date and time the DB instance was created.
+    instanceCreateTime :: Prelude.Maybe Data.ISO8601,
+    -- | Specifies the Provisioned IOPS (I\/O operations per second) value.
+    iops :: Prelude.Maybe Prelude.Int,
+    -- | Not supported: The encryption for DB instances is managed by the DB
+    -- 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,
+    -- | License model information for this DB instance.
+    licenseModel :: Prelude.Maybe Prelude.Text,
+    -- | Not supported by Neptune.
+    masterUsername :: Prelude.Maybe Prelude.Text,
+    -- | The interval, in seconds, between points when Enhanced Monitoring
+    -- metrics are collected for the DB instance.
+    monitoringInterval :: Prelude.Maybe Prelude.Int,
+    -- | The ARN for the IAM role that permits Neptune to send Enhanced
+    -- Monitoring metrics to Amazon CloudWatch Logs.
+    monitoringRoleArn :: Prelude.Maybe Prelude.Text,
+    -- | Specifies if the DB instance is a Multi-AZ deployment.
+    multiAZ :: Prelude.Maybe Prelude.Bool,
+    -- | /(Not supported by Neptune)/
+    optionGroupMemberships :: Prelude.Maybe [OptionGroupMembership],
+    -- | Specifies that changes to the DB instance are pending. This element is
+    -- only included when changes are pending. Specific changes are identified
+    -- by subelements.
+    pendingModifiedValues :: Prelude.Maybe PendingModifiedValues,
+    -- | /(Not supported by Neptune)/
+    performanceInsightsEnabled :: Prelude.Maybe Prelude.Bool,
+    -- | /(Not supported by Neptune)/
+    performanceInsightsKMSKeyId :: Prelude.Maybe Prelude.Text,
+    -- | 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 a Read Replica is promoted to
+    -- the primary instance after a failure of the existing primary instance.
+    promotionTier :: Prelude.Maybe Prelude.Int,
+    -- | This flag should no longer be used.
+    publiclyAccessible :: Prelude.Maybe Prelude.Bool,
+    -- | Contains one or more identifiers of DB clusters that are Read Replicas
+    -- of this DB instance.
+    readReplicaDBClusterIdentifiers :: Prelude.Maybe [Prelude.Text],
+    -- | Contains one or more identifiers of the Read Replicas associated with
+    -- this DB instance.
+    readReplicaDBInstanceIdentifiers :: Prelude.Maybe [Prelude.Text],
+    -- | Contains the identifier of the source DB instance if this DB instance is
+    -- a Read Replica.
+    readReplicaSourceDBInstanceIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | If present, specifies the name of the secondary Availability Zone for a
+    -- DB instance with multi-AZ support.
+    secondaryAvailabilityZone :: Prelude.Maybe Prelude.Text,
+    -- | The status of a Read Replica. If the instance is not a Read Replica,
+    -- this is blank.
+    statusInfos :: Prelude.Maybe [DBInstanceStatusInfo],
+    -- | Not supported: The encryption for DB instances is managed by the DB
+    -- cluster.
+    storageEncrypted :: Prelude.Maybe Prelude.Bool,
+    -- | Specifies the storage type associated with DB instance.
+    storageType :: Prelude.Maybe Prelude.Text,
+    -- | The ARN from the key store with which the instance is associated for TDE
+    -- encryption.
+    tdeCredentialArn :: Prelude.Maybe Prelude.Text,
+    -- | Not supported.
+    timezone :: Prelude.Maybe Prelude.Text,
+    -- | Provides a list of VPC security group elements that the DB 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:
+--
+-- 'allocatedStorage', 'dbInstance_allocatedStorage' - Not supported by Neptune.
+--
+-- 'autoMinorVersionUpgrade', 'dbInstance_autoMinorVersionUpgrade' - Indicates that minor version patches are applied automatically.
+--
+-- 'availabilityZone', 'dbInstance_availabilityZone' - Specifies the name of the Availability Zone the DB instance is located
+-- in.
+--
+-- 'backupRetentionPeriod', 'dbInstance_backupRetentionPeriod' - Specifies the number of days for which automatic DB snapshots are
+-- retained.
+--
+-- 'cACertificateIdentifier', 'dbInstance_cACertificateIdentifier' - The identifier of the CA certificate for this DB instance.
+--
+-- 'characterSetName', 'dbInstance_characterSetName' - /(Not supported by Neptune)/
+--
+-- 'copyTagsToSnapshot', 'dbInstance_copyTagsToSnapshot' - Specifies whether tags are copied from the DB instance to snapshots of
+-- the DB instance.
+--
+-- 'dbClusterIdentifier', 'dbInstance_dbClusterIdentifier' - If the DB instance is a member of a DB cluster, contains the name of the
+-- DB cluster that the DB instance is a member of.
+--
+-- 'dbInstanceArn', 'dbInstance_dbInstanceArn' - The Amazon Resource Name (ARN) for the DB instance.
+--
+-- 'dbInstanceClass', 'dbInstance_dbInstanceClass' - Contains the name of the compute and memory capacity class of the DB
+-- instance.
+--
+-- 'dbInstanceIdentifier', 'dbInstance_dbInstanceIdentifier' - Contains a user-supplied database identifier. This identifier is the
+-- unique key that identifies a DB instance.
+--
+-- 'dbInstanceStatus', 'dbInstance_dbInstanceStatus' - Specifies the current state of this database.
+--
+-- 'dbName', 'dbInstance_dbName' - The database name.
+--
+-- 'dbParameterGroups', 'dbInstance_dbParameterGroups' - Provides the list of DB parameter groups applied to this DB instance.
+--
+-- 'dbSecurityGroups', 'dbInstance_dbSecurityGroups' - Provides List of DB security group elements containing only
+-- @DBSecurityGroup.Name@ and @DBSecurityGroup.Status@ subelements.
+--
+-- 'dbSubnetGroup', 'dbInstance_dbSubnetGroup' - Specifies information on the subnet group associated with the DB
+-- instance, including the name, description, and subnets in the subnet
+-- group.
+--
+-- 'dbInstancePort', 'dbInstance_dbInstancePort' - Specifies the port that the DB instance listens on. If the DB instance
+-- is part of a DB cluster, this can be a different port than the DB
+-- cluster port.
+--
+-- 'dbiResourceId', 'dbInstance_dbiResourceId' - The Amazon Region-unique, immutable identifier for the DB instance. This
+-- identifier is found in Amazon CloudTrail log entries whenever the Amazon
+-- KMS key for the DB instance is accessed.
+--
+-- 'deletionProtection', 'dbInstance_deletionProtection' - Indicates whether or not the DB instance has deletion protection
+-- enabled. The instance can\'t be deleted when deletion protection is
+-- enabled. See
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
+--
+-- 'domainMemberships', 'dbInstance_domainMemberships' - Not supported
+--
+-- 'enabledCloudwatchLogsExports', 'dbInstance_enabledCloudwatchLogsExports' - A list of log types that this DB 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 DB
+-- instance.
+--
+-- 'engineVersion', 'dbInstance_engineVersion' - Indicates the database engine version.
+--
+-- 'enhancedMonitoringResourceArn', 'dbInstance_enhancedMonitoringResourceArn' - The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream
+-- that receives the Enhanced Monitoring metrics data for the DB instance.
+--
+-- 'iAMDatabaseAuthenticationEnabled', 'dbInstance_iAMDatabaseAuthenticationEnabled' - True if Amazon Identity and Access Management (IAM) authentication is
+-- enabled, and otherwise false.
+--
+-- 'instanceCreateTime', 'dbInstance_instanceCreateTime' - Provides the date and time the DB instance was created.
+--
+-- 'iops', 'dbInstance_iops' - Specifies the Provisioned IOPS (I\/O operations per second) value.
+--
+-- 'kmsKeyId', 'dbInstance_kmsKeyId' - Not supported: The encryption for DB instances is managed by the DB
+-- cluster.
+--
+-- 'latestRestorableTime', 'dbInstance_latestRestorableTime' - Specifies the latest time to which a database can be restored with
+-- point-in-time restore.
+--
+-- 'licenseModel', 'dbInstance_licenseModel' - License model information for this DB instance.
+--
+-- 'masterUsername', 'dbInstance_masterUsername' - Not supported by Neptune.
+--
+-- 'monitoringInterval', 'dbInstance_monitoringInterval' - The interval, in seconds, between points when Enhanced Monitoring
+-- metrics are collected for the DB instance.
+--
+-- 'monitoringRoleArn', 'dbInstance_monitoringRoleArn' - The ARN for the IAM role that permits Neptune to send Enhanced
+-- Monitoring metrics to Amazon CloudWatch Logs.
+--
+-- 'multiAZ', 'dbInstance_multiAZ' - Specifies if the DB instance is a Multi-AZ deployment.
+--
+-- 'optionGroupMemberships', 'dbInstance_optionGroupMemberships' - /(Not supported by Neptune)/
+--
+-- 'pendingModifiedValues', 'dbInstance_pendingModifiedValues' - Specifies that changes to the DB instance are pending. This element is
+-- only included when changes are pending. Specific changes are identified
+-- by subelements.
+--
+-- 'performanceInsightsEnabled', 'dbInstance_performanceInsightsEnabled' - /(Not supported by Neptune)/
+--
+-- 'performanceInsightsKMSKeyId', 'dbInstance_performanceInsightsKMSKeyId' - /(Not supported by Neptune)/
+--
+-- '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 a Read Replica is promoted to
+-- the primary instance after a failure of the existing primary instance.
+--
+-- 'publiclyAccessible', 'dbInstance_publiclyAccessible' - This flag should no longer be used.
+--
+-- 'readReplicaDBClusterIdentifiers', 'dbInstance_readReplicaDBClusterIdentifiers' - Contains one or more identifiers of DB clusters that are Read Replicas
+-- of this DB instance.
+--
+-- 'readReplicaDBInstanceIdentifiers', 'dbInstance_readReplicaDBInstanceIdentifiers' - Contains one or more identifiers of the Read Replicas associated with
+-- this DB instance.
+--
+-- 'readReplicaSourceDBInstanceIdentifier', 'dbInstance_readReplicaSourceDBInstanceIdentifier' - Contains the identifier of the source DB instance if this DB instance is
+-- a Read Replica.
+--
+-- 'secondaryAvailabilityZone', 'dbInstance_secondaryAvailabilityZone' - If present, specifies the name of the secondary Availability Zone for a
+-- DB instance with multi-AZ support.
+--
+-- 'statusInfos', 'dbInstance_statusInfos' - The status of a Read Replica. If the instance is not a Read Replica,
+-- this is blank.
+--
+-- 'storageEncrypted', 'dbInstance_storageEncrypted' - Not supported: The encryption for DB instances is managed by the DB
+-- cluster.
+--
+-- 'storageType', 'dbInstance_storageType' - Specifies the storage type associated with DB instance.
+--
+-- 'tdeCredentialArn', 'dbInstance_tdeCredentialArn' - The ARN from the key store with which the instance is associated for TDE
+-- encryption.
+--
+-- 'timezone', 'dbInstance_timezone' - Not supported.
+--
+-- 'vpcSecurityGroups', 'dbInstance_vpcSecurityGroups' - Provides a list of VPC security group elements that the DB instance
+-- belongs to.
+newDBInstance ::
+  DBInstance
+newDBInstance =
+  DBInstance'
+    { allocatedStorage = Prelude.Nothing,
+      autoMinorVersionUpgrade = Prelude.Nothing,
+      availabilityZone = Prelude.Nothing,
+      backupRetentionPeriod = Prelude.Nothing,
+      cACertificateIdentifier = Prelude.Nothing,
+      characterSetName = Prelude.Nothing,
+      copyTagsToSnapshot = Prelude.Nothing,
+      dbClusterIdentifier = Prelude.Nothing,
+      dbInstanceArn = Prelude.Nothing,
+      dbInstanceClass = Prelude.Nothing,
+      dbInstanceIdentifier = Prelude.Nothing,
+      dbInstanceStatus = Prelude.Nothing,
+      dbName = Prelude.Nothing,
+      dbParameterGroups = Prelude.Nothing,
+      dbSecurityGroups = Prelude.Nothing,
+      dbSubnetGroup = Prelude.Nothing,
+      dbInstancePort = Prelude.Nothing,
+      dbiResourceId = Prelude.Nothing,
+      deletionProtection = Prelude.Nothing,
+      domainMemberships = Prelude.Nothing,
+      enabledCloudwatchLogsExports = Prelude.Nothing,
+      endpoint = Prelude.Nothing,
+      engine = Prelude.Nothing,
+      engineVersion = Prelude.Nothing,
+      enhancedMonitoringResourceArn = Prelude.Nothing,
+      iAMDatabaseAuthenticationEnabled = Prelude.Nothing,
+      instanceCreateTime = Prelude.Nothing,
+      iops = Prelude.Nothing,
+      kmsKeyId = Prelude.Nothing,
+      latestRestorableTime = Prelude.Nothing,
+      licenseModel = Prelude.Nothing,
+      masterUsername = Prelude.Nothing,
+      monitoringInterval = Prelude.Nothing,
+      monitoringRoleArn = Prelude.Nothing,
+      multiAZ = Prelude.Nothing,
+      optionGroupMemberships = Prelude.Nothing,
+      pendingModifiedValues = Prelude.Nothing,
+      performanceInsightsEnabled = Prelude.Nothing,
+      performanceInsightsKMSKeyId = Prelude.Nothing,
+      preferredBackupWindow = Prelude.Nothing,
+      preferredMaintenanceWindow = Prelude.Nothing,
+      promotionTier = Prelude.Nothing,
+      publiclyAccessible = Prelude.Nothing,
+      readReplicaDBClusterIdentifiers = Prelude.Nothing,
+      readReplicaDBInstanceIdentifiers = Prelude.Nothing,
+      readReplicaSourceDBInstanceIdentifier =
+        Prelude.Nothing,
+      secondaryAvailabilityZone = Prelude.Nothing,
+      statusInfos = Prelude.Nothing,
+      storageEncrypted = Prelude.Nothing,
+      storageType = Prelude.Nothing,
+      tdeCredentialArn = Prelude.Nothing,
+      timezone = Prelude.Nothing,
+      vpcSecurityGroups = Prelude.Nothing
+    }
+
+-- | Not supported by Neptune.
+dbInstance_allocatedStorage :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Int)
+dbInstance_allocatedStorage = Lens.lens (\DBInstance' {allocatedStorage} -> allocatedStorage) (\s@DBInstance' {} a -> s {allocatedStorage = a} :: DBInstance)
+
+-- | Indicates that minor version patches are applied automatically.
+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 the DB 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 DB 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)
+
+-- | /(Not supported by Neptune)/
+dbInstance_characterSetName :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
+dbInstance_characterSetName = Lens.lens (\DBInstance' {characterSetName} -> characterSetName) (\s@DBInstance' {} a -> s {characterSetName = a} :: DBInstance)
+
+-- | Specifies whether tags are copied from the DB instance to snapshots of
+-- the DB instance.
+dbInstance_copyTagsToSnapshot :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
+dbInstance_copyTagsToSnapshot = Lens.lens (\DBInstance' {copyTagsToSnapshot} -> copyTagsToSnapshot) (\s@DBInstance' {} a -> s {copyTagsToSnapshot = a} :: DBInstance)
+
+-- | If the DB instance is a member of a DB cluster, contains the name of the
+-- DB cluster that the DB instance is a member of.
+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 DB 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 DB
+-- 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-supplied database identifier. This identifier is the
+-- unique key that identifies a DB 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)
+
+-- | The database name.
+dbInstance_dbName :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
+dbInstance_dbName = Lens.lens (\DBInstance' {dbName} -> dbName) (\s@DBInstance' {} a -> s {dbName = a} :: DBInstance)
+
+-- | Provides the list of DB parameter groups applied to this DB instance.
+dbInstance_dbParameterGroups :: Lens.Lens' DBInstance (Prelude.Maybe [DBParameterGroupStatus])
+dbInstance_dbParameterGroups = Lens.lens (\DBInstance' {dbParameterGroups} -> dbParameterGroups) (\s@DBInstance' {} a -> s {dbParameterGroups = a} :: DBInstance) Prelude.. Lens.mapping Lens.coerced
+
+-- | Provides List of DB security group elements containing only
+-- @DBSecurityGroup.Name@ and @DBSecurityGroup.Status@ subelements.
+dbInstance_dbSecurityGroups :: Lens.Lens' DBInstance (Prelude.Maybe [DBSecurityGroupMembership])
+dbInstance_dbSecurityGroups = Lens.lens (\DBInstance' {dbSecurityGroups} -> dbSecurityGroups) (\s@DBInstance' {} a -> s {dbSecurityGroups = a} :: DBInstance) Prelude.. Lens.mapping Lens.coerced
+
+-- | Specifies information on the subnet group associated with the DB
+-- 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)
+
+-- | Specifies the port that the DB instance listens on. If the DB instance
+-- is part of a DB cluster, this can be a different port than the DB
+-- cluster port.
+dbInstance_dbInstancePort :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Int)
+dbInstance_dbInstancePort = Lens.lens (\DBInstance' {dbInstancePort} -> dbInstancePort) (\s@DBInstance' {} a -> s {dbInstancePort = a} :: DBInstance)
+
+-- | The Amazon Region-unique, immutable identifier for the DB instance. This
+-- identifier is found in Amazon CloudTrail log entries whenever the Amazon
+-- KMS key for the DB 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)
+
+-- | Indicates whether or not the DB instance has deletion protection
+-- enabled. The instance can\'t be deleted when deletion protection is
+-- enabled. See
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
+dbInstance_deletionProtection :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
+dbInstance_deletionProtection = Lens.lens (\DBInstance' {deletionProtection} -> deletionProtection) (\s@DBInstance' {} a -> s {deletionProtection = a} :: DBInstance)
+
+-- | Not supported
+dbInstance_domainMemberships :: Lens.Lens' DBInstance (Prelude.Maybe [DomainMembership])
+dbInstance_domainMemberships = Lens.lens (\DBInstance' {domainMemberships} -> domainMemberships) (\s@DBInstance' {} a -> s {domainMemberships = a} :: DBInstance) Prelude.. Lens.mapping Lens.coerced
+
+-- | A list of log types that this DB 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 DB
+-- 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)
+
+-- | The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream
+-- that receives the Enhanced Monitoring metrics data for the DB instance.
+dbInstance_enhancedMonitoringResourceArn :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
+dbInstance_enhancedMonitoringResourceArn = Lens.lens (\DBInstance' {enhancedMonitoringResourceArn} -> enhancedMonitoringResourceArn) (\s@DBInstance' {} a -> s {enhancedMonitoringResourceArn = a} :: DBInstance)
+
+-- | True if Amazon Identity and Access Management (IAM) authentication is
+-- enabled, and otherwise false.
+dbInstance_iAMDatabaseAuthenticationEnabled :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
+dbInstance_iAMDatabaseAuthenticationEnabled = Lens.lens (\DBInstance' {iAMDatabaseAuthenticationEnabled} -> iAMDatabaseAuthenticationEnabled) (\s@DBInstance' {} a -> s {iAMDatabaseAuthenticationEnabled = a} :: DBInstance)
+
+-- | Provides the date and time the DB 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
+
+-- | Specifies the Provisioned IOPS (I\/O operations per second) value.
+dbInstance_iops :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Int)
+dbInstance_iops = Lens.lens (\DBInstance' {iops} -> iops) (\s@DBInstance' {} a -> s {iops = a} :: DBInstance)
+
+-- | Not supported: The encryption for DB instances is managed by the DB
+-- cluster.
+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
+
+-- | License model information for this DB instance.
+dbInstance_licenseModel :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
+dbInstance_licenseModel = Lens.lens (\DBInstance' {licenseModel} -> licenseModel) (\s@DBInstance' {} a -> s {licenseModel = a} :: DBInstance)
+
+-- | Not supported by Neptune.
+dbInstance_masterUsername :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
+dbInstance_masterUsername = Lens.lens (\DBInstance' {masterUsername} -> masterUsername) (\s@DBInstance' {} a -> s {masterUsername = a} :: DBInstance)
+
+-- | The interval, in seconds, between points when Enhanced Monitoring
+-- metrics are collected for the DB instance.
+dbInstance_monitoringInterval :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Int)
+dbInstance_monitoringInterval = Lens.lens (\DBInstance' {monitoringInterval} -> monitoringInterval) (\s@DBInstance' {} a -> s {monitoringInterval = a} :: DBInstance)
+
+-- | The ARN for the IAM role that permits Neptune to send Enhanced
+-- Monitoring metrics to Amazon CloudWatch Logs.
+dbInstance_monitoringRoleArn :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
+dbInstance_monitoringRoleArn = Lens.lens (\DBInstance' {monitoringRoleArn} -> monitoringRoleArn) (\s@DBInstance' {} a -> s {monitoringRoleArn = a} :: DBInstance)
+
+-- | Specifies if the DB instance is a Multi-AZ deployment.
+dbInstance_multiAZ :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
+dbInstance_multiAZ = Lens.lens (\DBInstance' {multiAZ} -> multiAZ) (\s@DBInstance' {} a -> s {multiAZ = a} :: DBInstance)
+
+-- | /(Not supported by Neptune)/
+dbInstance_optionGroupMemberships :: Lens.Lens' DBInstance (Prelude.Maybe [OptionGroupMembership])
+dbInstance_optionGroupMemberships = Lens.lens (\DBInstance' {optionGroupMemberships} -> optionGroupMemberships) (\s@DBInstance' {} a -> s {optionGroupMemberships = a} :: DBInstance) Prelude.. Lens.mapping Lens.coerced
+
+-- | Specifies that changes to the DB instance are pending. This element is
+-- only included 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)
+
+-- | /(Not supported by Neptune)/
+dbInstance_performanceInsightsEnabled :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
+dbInstance_performanceInsightsEnabled = Lens.lens (\DBInstance' {performanceInsightsEnabled} -> performanceInsightsEnabled) (\s@DBInstance' {} a -> s {performanceInsightsEnabled = a} :: DBInstance)
+
+-- | /(Not supported by Neptune)/
+dbInstance_performanceInsightsKMSKeyId :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
+dbInstance_performanceInsightsKMSKeyId = Lens.lens (\DBInstance' {performanceInsightsKMSKeyId} -> performanceInsightsKMSKeyId) (\s@DBInstance' {} a -> s {performanceInsightsKMSKeyId = 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 a Read 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)
+
+-- | This flag should no longer be used.
+dbInstance_publiclyAccessible :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
+dbInstance_publiclyAccessible = Lens.lens (\DBInstance' {publiclyAccessible} -> publiclyAccessible) (\s@DBInstance' {} a -> s {publiclyAccessible = a} :: DBInstance)
+
+-- | Contains one or more identifiers of DB clusters that are Read Replicas
+-- of this DB instance.
+dbInstance_readReplicaDBClusterIdentifiers :: Lens.Lens' DBInstance (Prelude.Maybe [Prelude.Text])
+dbInstance_readReplicaDBClusterIdentifiers = Lens.lens (\DBInstance' {readReplicaDBClusterIdentifiers} -> readReplicaDBClusterIdentifiers) (\s@DBInstance' {} a -> s {readReplicaDBClusterIdentifiers = a} :: DBInstance) Prelude.. Lens.mapping Lens.coerced
+
+-- | Contains one or more identifiers of the Read Replicas associated with
+-- this DB instance.
+dbInstance_readReplicaDBInstanceIdentifiers :: Lens.Lens' DBInstance (Prelude.Maybe [Prelude.Text])
+dbInstance_readReplicaDBInstanceIdentifiers = Lens.lens (\DBInstance' {readReplicaDBInstanceIdentifiers} -> readReplicaDBInstanceIdentifiers) (\s@DBInstance' {} a -> s {readReplicaDBInstanceIdentifiers = a} :: DBInstance) Prelude.. Lens.mapping Lens.coerced
+
+-- | Contains the identifier of the source DB instance if this DB instance is
+-- a Read Replica.
+dbInstance_readReplicaSourceDBInstanceIdentifier :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
+dbInstance_readReplicaSourceDBInstanceIdentifier = Lens.lens (\DBInstance' {readReplicaSourceDBInstanceIdentifier} -> readReplicaSourceDBInstanceIdentifier) (\s@DBInstance' {} a -> s {readReplicaSourceDBInstanceIdentifier = a} :: DBInstance)
+
+-- | If present, specifies the name of the secondary Availability Zone for a
+-- DB instance with multi-AZ support.
+dbInstance_secondaryAvailabilityZone :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
+dbInstance_secondaryAvailabilityZone = Lens.lens (\DBInstance' {secondaryAvailabilityZone} -> secondaryAvailabilityZone) (\s@DBInstance' {} a -> s {secondaryAvailabilityZone = 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
+
+-- | Not supported: The encryption for DB instances is managed by the DB
+-- cluster.
+dbInstance_storageEncrypted :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
+dbInstance_storageEncrypted = Lens.lens (\DBInstance' {storageEncrypted} -> storageEncrypted) (\s@DBInstance' {} a -> s {storageEncrypted = a} :: DBInstance)
+
+-- | Specifies the storage type associated with DB instance.
+dbInstance_storageType :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
+dbInstance_storageType = Lens.lens (\DBInstance' {storageType} -> storageType) (\s@DBInstance' {} a -> s {storageType = a} :: DBInstance)
+
+-- | The ARN from the key store with which the instance is associated for TDE
+-- encryption.
+dbInstance_tdeCredentialArn :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
+dbInstance_tdeCredentialArn = Lens.lens (\DBInstance' {tdeCredentialArn} -> tdeCredentialArn) (\s@DBInstance' {} a -> s {tdeCredentialArn = a} :: DBInstance)
+
+-- | Not supported.
+dbInstance_timezone :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
+dbInstance_timezone = Lens.lens (\DBInstance' {timezone} -> timezone) (\s@DBInstance' {} a -> s {timezone = a} :: DBInstance)
+
+-- | Provides a list of VPC security group elements that the DB 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..@? "AllocatedStorage")
+      Prelude.<*> (x Data..@? "AutoMinorVersionUpgrade")
+      Prelude.<*> (x Data..@? "AvailabilityZone")
+      Prelude.<*> (x Data..@? "BackupRetentionPeriod")
+      Prelude.<*> (x Data..@? "CACertificateIdentifier")
+      Prelude.<*> (x Data..@? "CharacterSetName")
+      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..@? "DBName")
+      Prelude.<*> ( x
+                      Data..@? "DBParameterGroups"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "DBParameterGroup")
+                  )
+      Prelude.<*> ( x
+                      Data..@? "DBSecurityGroups"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "DBSecurityGroup")
+                  )
+      Prelude.<*> (x Data..@? "DBSubnetGroup")
+      Prelude.<*> (x Data..@? "DbInstancePort")
+      Prelude.<*> (x Data..@? "DbiResourceId")
+      Prelude.<*> (x Data..@? "DeletionProtection")
+      Prelude.<*> ( x
+                      Data..@? "DomainMemberships"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "DomainMembership")
+                  )
+      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..@? "EnhancedMonitoringResourceArn")
+      Prelude.<*> (x Data..@? "IAMDatabaseAuthenticationEnabled")
+      Prelude.<*> (x Data..@? "InstanceCreateTime")
+      Prelude.<*> (x Data..@? "Iops")
+      Prelude.<*> (x Data..@? "KmsKeyId")
+      Prelude.<*> (x Data..@? "LatestRestorableTime")
+      Prelude.<*> (x Data..@? "LicenseModel")
+      Prelude.<*> (x Data..@? "MasterUsername")
+      Prelude.<*> (x Data..@? "MonitoringInterval")
+      Prelude.<*> (x Data..@? "MonitoringRoleArn")
+      Prelude.<*> (x Data..@? "MultiAZ")
+      Prelude.<*> ( x
+                      Data..@? "OptionGroupMemberships"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "OptionGroupMembership")
+                  )
+      Prelude.<*> (x Data..@? "PendingModifiedValues")
+      Prelude.<*> (x Data..@? "PerformanceInsightsEnabled")
+      Prelude.<*> (x Data..@? "PerformanceInsightsKMSKeyId")
+      Prelude.<*> (x Data..@? "PreferredBackupWindow")
+      Prelude.<*> (x Data..@? "PreferredMaintenanceWindow")
+      Prelude.<*> (x Data..@? "PromotionTier")
+      Prelude.<*> (x Data..@? "PubliclyAccessible")
+      Prelude.<*> ( x
+                      Data..@? "ReadReplicaDBClusterIdentifiers"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may
+                        (Data.parseXMLList "ReadReplicaDBClusterIdentifier")
+                  )
+      Prelude.<*> ( x
+                      Data..@? "ReadReplicaDBInstanceIdentifiers"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may
+                        ( Data.parseXMLList
+                            "ReadReplicaDBInstanceIdentifier"
+                        )
+                  )
+      Prelude.<*> (x Data..@? "ReadReplicaSourceDBInstanceIdentifier")
+      Prelude.<*> (x Data..@? "SecondaryAvailabilityZone")
+      Prelude.<*> ( x
+                      Data..@? "StatusInfos"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "DBInstanceStatusInfo")
+                  )
+      Prelude.<*> (x Data..@? "StorageEncrypted")
+      Prelude.<*> (x Data..@? "StorageType")
+      Prelude.<*> (x Data..@? "TdeCredentialArn")
+      Prelude.<*> (x Data..@? "Timezone")
+      Prelude.<*> ( x
+                      Data..@? "VpcSecurityGroups"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may
+                        (Data.parseXMLList "VpcSecurityGroupMembership")
+                  )
+
+instance Prelude.Hashable DBInstance where
+  hashWithSalt _salt DBInstance' {..} =
+    _salt
+      `Prelude.hashWithSalt` allocatedStorage
+      `Prelude.hashWithSalt` autoMinorVersionUpgrade
+      `Prelude.hashWithSalt` availabilityZone
+      `Prelude.hashWithSalt` backupRetentionPeriod
+      `Prelude.hashWithSalt` cACertificateIdentifier
+      `Prelude.hashWithSalt` characterSetName
+      `Prelude.hashWithSalt` copyTagsToSnapshot
+      `Prelude.hashWithSalt` dbClusterIdentifier
+      `Prelude.hashWithSalt` dbInstanceArn
+      `Prelude.hashWithSalt` dbInstanceClass
+      `Prelude.hashWithSalt` dbInstanceIdentifier
+      `Prelude.hashWithSalt` dbInstanceStatus
+      `Prelude.hashWithSalt` dbName
+      `Prelude.hashWithSalt` dbParameterGroups
+      `Prelude.hashWithSalt` dbSecurityGroups
+      `Prelude.hashWithSalt` dbSubnetGroup
+      `Prelude.hashWithSalt` dbInstancePort
+      `Prelude.hashWithSalt` dbiResourceId
+      `Prelude.hashWithSalt` deletionProtection
+      `Prelude.hashWithSalt` domainMemberships
+      `Prelude.hashWithSalt` enabledCloudwatchLogsExports
+      `Prelude.hashWithSalt` endpoint
+      `Prelude.hashWithSalt` engine
+      `Prelude.hashWithSalt` engineVersion
+      `Prelude.hashWithSalt` enhancedMonitoringResourceArn
+      `Prelude.hashWithSalt` iAMDatabaseAuthenticationEnabled
+      `Prelude.hashWithSalt` instanceCreateTime
+      `Prelude.hashWithSalt` iops
+      `Prelude.hashWithSalt` kmsKeyId
+      `Prelude.hashWithSalt` latestRestorableTime
+      `Prelude.hashWithSalt` licenseModel
+      `Prelude.hashWithSalt` masterUsername
+      `Prelude.hashWithSalt` monitoringInterval
+      `Prelude.hashWithSalt` monitoringRoleArn
+      `Prelude.hashWithSalt` multiAZ
+      `Prelude.hashWithSalt` optionGroupMemberships
+      `Prelude.hashWithSalt` pendingModifiedValues
+      `Prelude.hashWithSalt` performanceInsightsEnabled
+      `Prelude.hashWithSalt` performanceInsightsKMSKeyId
+      `Prelude.hashWithSalt` preferredBackupWindow
+      `Prelude.hashWithSalt` preferredMaintenanceWindow
+      `Prelude.hashWithSalt` promotionTier
+      `Prelude.hashWithSalt` publiclyAccessible
+      `Prelude.hashWithSalt` readReplicaDBClusterIdentifiers
+      `Prelude.hashWithSalt` readReplicaDBInstanceIdentifiers
+      `Prelude.hashWithSalt` readReplicaSourceDBInstanceIdentifier
+      `Prelude.hashWithSalt` secondaryAvailabilityZone
+      `Prelude.hashWithSalt` statusInfos
+      `Prelude.hashWithSalt` storageEncrypted
+      `Prelude.hashWithSalt` storageType
+      `Prelude.hashWithSalt` tdeCredentialArn
+      `Prelude.hashWithSalt` timezone
+      `Prelude.hashWithSalt` vpcSecurityGroups
+
+instance Prelude.NFData DBInstance where
+  rnf DBInstance' {..} =
+    Prelude.rnf allocatedStorage
+      `Prelude.seq` Prelude.rnf autoMinorVersionUpgrade
+      `Prelude.seq` Prelude.rnf availabilityZone
+      `Prelude.seq` Prelude.rnf backupRetentionPeriod
+      `Prelude.seq` Prelude.rnf cACertificateIdentifier
+      `Prelude.seq` Prelude.rnf characterSetName
+      `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 dbName
+      `Prelude.seq` Prelude.rnf dbParameterGroups
+      `Prelude.seq` Prelude.rnf dbSecurityGroups
+      `Prelude.seq` Prelude.rnf dbSubnetGroup
+      `Prelude.seq` Prelude.rnf dbInstancePort
+      `Prelude.seq` Prelude.rnf dbiResourceId
+      `Prelude.seq` Prelude.rnf deletionProtection
+      `Prelude.seq` Prelude.rnf domainMemberships
+      `Prelude.seq` Prelude.rnf
+        enabledCloudwatchLogsExports
+      `Prelude.seq` Prelude.rnf endpoint
+      `Prelude.seq` Prelude.rnf engine
+      `Prelude.seq` Prelude.rnf
+        engineVersion
+      `Prelude.seq` Prelude.rnf
+        enhancedMonitoringResourceArn
+      `Prelude.seq` Prelude.rnf
+        iAMDatabaseAuthenticationEnabled
+      `Prelude.seq` Prelude.rnf
+        instanceCreateTime
+      `Prelude.seq` Prelude.rnf
+        iops
+      `Prelude.seq` Prelude.rnf
+        kmsKeyId
+      `Prelude.seq` Prelude.rnf
+        latestRestorableTime
+      `Prelude.seq` Prelude.rnf
+        licenseModel
+      `Prelude.seq` Prelude.rnf
+        masterUsername
+      `Prelude.seq` Prelude.rnf
+        monitoringInterval
+      `Prelude.seq` Prelude.rnf
+        monitoringRoleArn
+      `Prelude.seq` Prelude.rnf
+        multiAZ
+      `Prelude.seq` Prelude.rnf
+        optionGroupMemberships
+      `Prelude.seq` Prelude.rnf
+        pendingModifiedValues
+      `Prelude.seq` Prelude.rnf
+        performanceInsightsEnabled
+      `Prelude.seq` Prelude.rnf
+        performanceInsightsKMSKeyId
+      `Prelude.seq` Prelude.rnf
+        preferredBackupWindow
+      `Prelude.seq` Prelude.rnf
+        preferredMaintenanceWindow
+      `Prelude.seq` Prelude.rnf
+        promotionTier
+      `Prelude.seq` Prelude.rnf
+        publiclyAccessible
+      `Prelude.seq` Prelude.rnf
+        readReplicaDBClusterIdentifiers
+      `Prelude.seq` Prelude.rnf
+        readReplicaDBInstanceIdentifiers
+      `Prelude.seq` Prelude.rnf
+        readReplicaSourceDBInstanceIdentifier
+      `Prelude.seq` Prelude.rnf
+        secondaryAvailabilityZone
+      `Prelude.seq` Prelude.rnf
+        statusInfos
+      `Prelude.seq` Prelude.rnf
+        storageEncrypted
+      `Prelude.seq` Prelude.rnf
+        storageType
+      `Prelude.seq` Prelude.rnf
+        tdeCredentialArn
+      `Prelude.seq` Prelude.rnf
+        timezone
+      `Prelude.seq` Prelude.rnf
+        vpcSecurityGroups
diff --git a/gen/Amazonka/Neptune/Types/DBInstanceStatusInfo.hs b/gen/Amazonka/Neptune/Types/DBInstanceStatusInfo.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBInstanceStatusInfo.hs
@@ -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.Neptune.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.Neptune.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 a DB 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,
+    -- | 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 DB 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' - 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 DB 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)
+
+-- | 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 DB 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
diff --git a/gen/Amazonka/Neptune/Types/DBParameterGroup.hs b/gen/Amazonka/Neptune/Types/DBParameterGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBParameterGroup.hs
@@ -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.Neptune.Types.DBParameterGroup
+-- 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.Neptune.Types.DBParameterGroup 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 details of an Amazon Neptune DB parameter group.
+--
+-- This data type is used as a response element in the
+-- DescribeDBParameterGroups action.
+--
+-- /See:/ 'newDBParameterGroup' smart constructor.
+data DBParameterGroup = DBParameterGroup'
+  { -- | The Amazon Resource Name (ARN) for the DB parameter group.
+    dbParameterGroupArn :: Prelude.Maybe Prelude.Text,
+    -- | Provides the name of the DB parameter group family that this DB
+    -- parameter group is compatible with.
+    dbParameterGroupFamily :: Prelude.Maybe Prelude.Text,
+    -- | Provides the name of the DB parameter group.
+    dbParameterGroupName :: Prelude.Maybe Prelude.Text,
+    -- | Provides the customer-specified description for this DB parameter group.
+    description :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DBParameterGroup' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dbParameterGroupArn', 'dbParameterGroup_dbParameterGroupArn' - The Amazon Resource Name (ARN) for the DB parameter group.
+--
+-- 'dbParameterGroupFamily', 'dbParameterGroup_dbParameterGroupFamily' - Provides the name of the DB parameter group family that this DB
+-- parameter group is compatible with.
+--
+-- 'dbParameterGroupName', 'dbParameterGroup_dbParameterGroupName' - Provides the name of the DB parameter group.
+--
+-- 'description', 'dbParameterGroup_description' - Provides the customer-specified description for this DB parameter group.
+newDBParameterGroup ::
+  DBParameterGroup
+newDBParameterGroup =
+  DBParameterGroup'
+    { dbParameterGroupArn =
+        Prelude.Nothing,
+      dbParameterGroupFamily = Prelude.Nothing,
+      dbParameterGroupName = Prelude.Nothing,
+      description = Prelude.Nothing
+    }
+
+-- | The Amazon Resource Name (ARN) for the DB parameter group.
+dbParameterGroup_dbParameterGroupArn :: Lens.Lens' DBParameterGroup (Prelude.Maybe Prelude.Text)
+dbParameterGroup_dbParameterGroupArn = Lens.lens (\DBParameterGroup' {dbParameterGroupArn} -> dbParameterGroupArn) (\s@DBParameterGroup' {} a -> s {dbParameterGroupArn = a} :: DBParameterGroup)
+
+-- | Provides the name of the DB parameter group family that this DB
+-- parameter group is compatible with.
+dbParameterGroup_dbParameterGroupFamily :: Lens.Lens' DBParameterGroup (Prelude.Maybe Prelude.Text)
+dbParameterGroup_dbParameterGroupFamily = Lens.lens (\DBParameterGroup' {dbParameterGroupFamily} -> dbParameterGroupFamily) (\s@DBParameterGroup' {} a -> s {dbParameterGroupFamily = a} :: DBParameterGroup)
+
+-- | Provides the name of the DB parameter group.
+dbParameterGroup_dbParameterGroupName :: Lens.Lens' DBParameterGroup (Prelude.Maybe Prelude.Text)
+dbParameterGroup_dbParameterGroupName = Lens.lens (\DBParameterGroup' {dbParameterGroupName} -> dbParameterGroupName) (\s@DBParameterGroup' {} a -> s {dbParameterGroupName = a} :: DBParameterGroup)
+
+-- | Provides the customer-specified description for this DB parameter group.
+dbParameterGroup_description :: Lens.Lens' DBParameterGroup (Prelude.Maybe Prelude.Text)
+dbParameterGroup_description = Lens.lens (\DBParameterGroup' {description} -> description) (\s@DBParameterGroup' {} a -> s {description = a} :: DBParameterGroup)
+
+instance Data.FromXML DBParameterGroup where
+  parseXML x =
+    DBParameterGroup'
+      Prelude.<$> (x Data..@? "DBParameterGroupArn")
+      Prelude.<*> (x Data..@? "DBParameterGroupFamily")
+      Prelude.<*> (x Data..@? "DBParameterGroupName")
+      Prelude.<*> (x Data..@? "Description")
+
+instance Prelude.Hashable DBParameterGroup where
+  hashWithSalt _salt DBParameterGroup' {..} =
+    _salt
+      `Prelude.hashWithSalt` dbParameterGroupArn
+      `Prelude.hashWithSalt` dbParameterGroupFamily
+      `Prelude.hashWithSalt` dbParameterGroupName
+      `Prelude.hashWithSalt` description
+
+instance Prelude.NFData DBParameterGroup where
+  rnf DBParameterGroup' {..} =
+    Prelude.rnf dbParameterGroupArn
+      `Prelude.seq` Prelude.rnf dbParameterGroupFamily
+      `Prelude.seq` Prelude.rnf dbParameterGroupName
+      `Prelude.seq` Prelude.rnf description
diff --git a/gen/Amazonka/Neptune/Types/DBParameterGroupNameMessage.hs b/gen/Amazonka/Neptune/Types/DBParameterGroupNameMessage.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBParameterGroupNameMessage.hs
@@ -0,0 +1,66 @@
+{-# 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.Neptune.Types.DBParameterGroupNameMessage
+-- 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.Neptune.Types.DBParameterGroupNameMessage 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
+
+-- | /See:/ 'newDBParameterGroupNameMessage' smart constructor.
+data DBParameterGroupNameMessage = DBParameterGroupNameMessage'
+  { -- | Provides the name of the DB parameter group.
+    dbParameterGroupName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DBParameterGroupNameMessage' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dbParameterGroupName', 'dbParameterGroupNameMessage_dbParameterGroupName' - Provides the name of the DB parameter group.
+newDBParameterGroupNameMessage ::
+  DBParameterGroupNameMessage
+newDBParameterGroupNameMessage =
+  DBParameterGroupNameMessage'
+    { dbParameterGroupName =
+        Prelude.Nothing
+    }
+
+-- | Provides the name of the DB parameter group.
+dbParameterGroupNameMessage_dbParameterGroupName :: Lens.Lens' DBParameterGroupNameMessage (Prelude.Maybe Prelude.Text)
+dbParameterGroupNameMessage_dbParameterGroupName = Lens.lens (\DBParameterGroupNameMessage' {dbParameterGroupName} -> dbParameterGroupName) (\s@DBParameterGroupNameMessage' {} a -> s {dbParameterGroupName = a} :: DBParameterGroupNameMessage)
+
+instance Data.FromXML DBParameterGroupNameMessage where
+  parseXML x =
+    DBParameterGroupNameMessage'
+      Prelude.<$> (x Data..@? "DBParameterGroupName")
+
+instance Prelude.Hashable DBParameterGroupNameMessage where
+  hashWithSalt _salt DBParameterGroupNameMessage' {..} =
+    _salt `Prelude.hashWithSalt` dbParameterGroupName
+
+instance Prelude.NFData DBParameterGroupNameMessage where
+  rnf DBParameterGroupNameMessage' {..} =
+    Prelude.rnf dbParameterGroupName
diff --git a/gen/Amazonka/Neptune/Types/DBParameterGroupStatus.hs b/gen/Amazonka/Neptune/Types/DBParameterGroupStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBParameterGroupStatus.hs
@@ -0,0 +1,91 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.Types.DBParameterGroupStatus
+-- 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.Neptune.Types.DBParameterGroupStatus where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The status of the DB parameter group.
+--
+-- This data type is used as a response element in the following actions:
+--
+-- -   CreateDBInstance
+--
+-- -   DeleteDBInstance
+--
+-- -   ModifyDBInstance
+--
+-- -   RebootDBInstance
+--
+-- /See:/ 'newDBParameterGroupStatus' smart constructor.
+data DBParameterGroupStatus = DBParameterGroupStatus'
+  { -- | The name of the DP parameter group.
+    dbParameterGroupName :: Prelude.Maybe Prelude.Text,
+    -- | The status of parameter updates.
+    parameterApplyStatus :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DBParameterGroupStatus' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dbParameterGroupName', 'dbParameterGroupStatus_dbParameterGroupName' - The name of the DP parameter group.
+--
+-- 'parameterApplyStatus', 'dbParameterGroupStatus_parameterApplyStatus' - The status of parameter updates.
+newDBParameterGroupStatus ::
+  DBParameterGroupStatus
+newDBParameterGroupStatus =
+  DBParameterGroupStatus'
+    { dbParameterGroupName =
+        Prelude.Nothing,
+      parameterApplyStatus = Prelude.Nothing
+    }
+
+-- | The name of the DP parameter group.
+dbParameterGroupStatus_dbParameterGroupName :: Lens.Lens' DBParameterGroupStatus (Prelude.Maybe Prelude.Text)
+dbParameterGroupStatus_dbParameterGroupName = Lens.lens (\DBParameterGroupStatus' {dbParameterGroupName} -> dbParameterGroupName) (\s@DBParameterGroupStatus' {} a -> s {dbParameterGroupName = a} :: DBParameterGroupStatus)
+
+-- | The status of parameter updates.
+dbParameterGroupStatus_parameterApplyStatus :: Lens.Lens' DBParameterGroupStatus (Prelude.Maybe Prelude.Text)
+dbParameterGroupStatus_parameterApplyStatus = Lens.lens (\DBParameterGroupStatus' {parameterApplyStatus} -> parameterApplyStatus) (\s@DBParameterGroupStatus' {} a -> s {parameterApplyStatus = a} :: DBParameterGroupStatus)
+
+instance Data.FromXML DBParameterGroupStatus where
+  parseXML x =
+    DBParameterGroupStatus'
+      Prelude.<$> (x Data..@? "DBParameterGroupName")
+      Prelude.<*> (x Data..@? "ParameterApplyStatus")
+
+instance Prelude.Hashable DBParameterGroupStatus where
+  hashWithSalt _salt DBParameterGroupStatus' {..} =
+    _salt
+      `Prelude.hashWithSalt` dbParameterGroupName
+      `Prelude.hashWithSalt` parameterApplyStatus
+
+instance Prelude.NFData DBParameterGroupStatus where
+  rnf DBParameterGroupStatus' {..} =
+    Prelude.rnf dbParameterGroupName
+      `Prelude.seq` Prelude.rnf parameterApplyStatus
diff --git a/gen/Amazonka/Neptune/Types/DBSecurityGroupMembership.hs b/gen/Amazonka/Neptune/Types/DBSecurityGroupMembership.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBSecurityGroupMembership.hs
@@ -0,0 +1,81 @@
+{-# 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.Neptune.Types.DBSecurityGroupMembership
+-- 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.Neptune.Types.DBSecurityGroupMembership where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Specifies membership in a designated DB security group.
+--
+-- /See:/ 'newDBSecurityGroupMembership' smart constructor.
+data DBSecurityGroupMembership = DBSecurityGroupMembership'
+  { -- | The name of the DB security group.
+    dbSecurityGroupName :: Prelude.Maybe Prelude.Text,
+    -- | The status of the DB security group.
+    status :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DBSecurityGroupMembership' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dbSecurityGroupName', 'dbSecurityGroupMembership_dbSecurityGroupName' - The name of the DB security group.
+--
+-- 'status', 'dbSecurityGroupMembership_status' - The status of the DB security group.
+newDBSecurityGroupMembership ::
+  DBSecurityGroupMembership
+newDBSecurityGroupMembership =
+  DBSecurityGroupMembership'
+    { dbSecurityGroupName =
+        Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | The name of the DB security group.
+dbSecurityGroupMembership_dbSecurityGroupName :: Lens.Lens' DBSecurityGroupMembership (Prelude.Maybe Prelude.Text)
+dbSecurityGroupMembership_dbSecurityGroupName = Lens.lens (\DBSecurityGroupMembership' {dbSecurityGroupName} -> dbSecurityGroupName) (\s@DBSecurityGroupMembership' {} a -> s {dbSecurityGroupName = a} :: DBSecurityGroupMembership)
+
+-- | The status of the DB security group.
+dbSecurityGroupMembership_status :: Lens.Lens' DBSecurityGroupMembership (Prelude.Maybe Prelude.Text)
+dbSecurityGroupMembership_status = Lens.lens (\DBSecurityGroupMembership' {status} -> status) (\s@DBSecurityGroupMembership' {} a -> s {status = a} :: DBSecurityGroupMembership)
+
+instance Data.FromXML DBSecurityGroupMembership where
+  parseXML x =
+    DBSecurityGroupMembership'
+      Prelude.<$> (x Data..@? "DBSecurityGroupName")
+      Prelude.<*> (x Data..@? "Status")
+
+instance Prelude.Hashable DBSecurityGroupMembership where
+  hashWithSalt _salt DBSecurityGroupMembership' {..} =
+    _salt
+      `Prelude.hashWithSalt` dbSecurityGroupName
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData DBSecurityGroupMembership where
+  rnf DBSecurityGroupMembership' {..} =
+    Prelude.rnf dbSecurityGroupName
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/Neptune/Types/DBSubnetGroup.hs b/gen/Amazonka/Neptune/Types/DBSubnetGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DBSubnetGroup.hs
@@ -0,0 +1,136 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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.Neptune.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.Neptune.Types.Subnet
+import qualified Amazonka.Prelude as Prelude
+
+-- | Contains the details of an Amazon Neptune DB subnet group.
+--
+-- This data type is used as a response element in the
+-- DescribeDBSubnetGroups action.
+--
+-- /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 DB subnet group.
+    dbSubnetGroupDescription :: Prelude.Maybe Prelude.Text,
+    -- | The name of the DB subnet group.
+    dbSubnetGroupName :: Prelude.Maybe Prelude.Text,
+    -- | Provides the status of the DB subnet group.
+    subnetGroupStatus :: Prelude.Maybe Prelude.Text,
+    -- | Contains a list of Subnet elements.
+    subnets :: Prelude.Maybe [Subnet],
+    -- | Provides the VpcId of the DB 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 DB subnet group.
+--
+-- 'dbSubnetGroupName', 'dbSubnetGroup_dbSubnetGroupName' - The name of the DB subnet group.
+--
+-- 'subnetGroupStatus', 'dbSubnetGroup_subnetGroupStatus' - Provides the status of the DB subnet group.
+--
+-- 'subnets', 'dbSubnetGroup_subnets' - Contains a list of Subnet elements.
+--
+-- 'vpcId', 'dbSubnetGroup_vpcId' - Provides the VpcId of the DB 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 DB 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 DB 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 DB 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)
+
+-- | Contains a list of Subnet elements.
+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 VpcId of the DB 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
diff --git a/gen/Amazonka/Neptune/Types/DomainMembership.hs b/gen/Amazonka/Neptune/Types/DomainMembership.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DomainMembership.hs
@@ -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.Neptune.Types.DomainMembership
+-- 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.Neptune.Types.DomainMembership 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 Active Directory Domain membership record associated with a DB
+-- instance.
+--
+-- /See:/ 'newDomainMembership' smart constructor.
+data DomainMembership = DomainMembership'
+  { -- | The identifier of the Active Directory Domain.
+    domain :: Prelude.Maybe Prelude.Text,
+    -- | The fully qualified domain name of the Active Directory Domain.
+    fqdn :: Prelude.Maybe Prelude.Text,
+    -- | The name of the IAM role to be used when making API calls to the
+    -- Directory Service.
+    iAMRoleName :: Prelude.Maybe Prelude.Text,
+    -- | The status of the DB instance\'s Active Directory Domain membership,
+    -- such as joined, pending-join, failed etc).
+    status :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DomainMembership' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'domain', 'domainMembership_domain' - The identifier of the Active Directory Domain.
+--
+-- 'fqdn', 'domainMembership_fqdn' - The fully qualified domain name of the Active Directory Domain.
+--
+-- 'iAMRoleName', 'domainMembership_iAMRoleName' - The name of the IAM role to be used when making API calls to the
+-- Directory Service.
+--
+-- 'status', 'domainMembership_status' - The status of the DB instance\'s Active Directory Domain membership,
+-- such as joined, pending-join, failed etc).
+newDomainMembership ::
+  DomainMembership
+newDomainMembership =
+  DomainMembership'
+    { domain = Prelude.Nothing,
+      fqdn = Prelude.Nothing,
+      iAMRoleName = Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | The identifier of the Active Directory Domain.
+domainMembership_domain :: Lens.Lens' DomainMembership (Prelude.Maybe Prelude.Text)
+domainMembership_domain = Lens.lens (\DomainMembership' {domain} -> domain) (\s@DomainMembership' {} a -> s {domain = a} :: DomainMembership)
+
+-- | The fully qualified domain name of the Active Directory Domain.
+domainMembership_fqdn :: Lens.Lens' DomainMembership (Prelude.Maybe Prelude.Text)
+domainMembership_fqdn = Lens.lens (\DomainMembership' {fqdn} -> fqdn) (\s@DomainMembership' {} a -> s {fqdn = a} :: DomainMembership)
+
+-- | The name of the IAM role to be used when making API calls to the
+-- Directory Service.
+domainMembership_iAMRoleName :: Lens.Lens' DomainMembership (Prelude.Maybe Prelude.Text)
+domainMembership_iAMRoleName = Lens.lens (\DomainMembership' {iAMRoleName} -> iAMRoleName) (\s@DomainMembership' {} a -> s {iAMRoleName = a} :: DomainMembership)
+
+-- | The status of the DB instance\'s Active Directory Domain membership,
+-- such as joined, pending-join, failed etc).
+domainMembership_status :: Lens.Lens' DomainMembership (Prelude.Maybe Prelude.Text)
+domainMembership_status = Lens.lens (\DomainMembership' {status} -> status) (\s@DomainMembership' {} a -> s {status = a} :: DomainMembership)
+
+instance Data.FromXML DomainMembership where
+  parseXML x =
+    DomainMembership'
+      Prelude.<$> (x Data..@? "Domain")
+      Prelude.<*> (x Data..@? "FQDN")
+      Prelude.<*> (x Data..@? "IAMRoleName")
+      Prelude.<*> (x Data..@? "Status")
+
+instance Prelude.Hashable DomainMembership where
+  hashWithSalt _salt DomainMembership' {..} =
+    _salt
+      `Prelude.hashWithSalt` domain
+      `Prelude.hashWithSalt` fqdn
+      `Prelude.hashWithSalt` iAMRoleName
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData DomainMembership where
+  rnf DomainMembership' {..} =
+    Prelude.rnf domain
+      `Prelude.seq` Prelude.rnf fqdn
+      `Prelude.seq` Prelude.rnf iAMRoleName
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/Neptune/Types/DoubleRange.hs b/gen/Amazonka/Neptune/Types/DoubleRange.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/DoubleRange.hs
@@ -0,0 +1,79 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.Types.DoubleRange
+-- 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.Neptune.Types.DoubleRange 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 range of double values.
+--
+-- /See:/ 'newDoubleRange' smart constructor.
+data DoubleRange = DoubleRange'
+  { -- | The minimum value in the range.
+    from :: Prelude.Maybe Prelude.Double,
+    -- | The maximum value in the range.
+    to :: Prelude.Maybe Prelude.Double
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DoubleRange' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'from', 'doubleRange_from' - The minimum value in the range.
+--
+-- 'to', 'doubleRange_to' - The maximum value in the range.
+newDoubleRange ::
+  DoubleRange
+newDoubleRange =
+  DoubleRange'
+    { from = Prelude.Nothing,
+      to = Prelude.Nothing
+    }
+
+-- | The minimum value in the range.
+doubleRange_from :: Lens.Lens' DoubleRange (Prelude.Maybe Prelude.Double)
+doubleRange_from = Lens.lens (\DoubleRange' {from} -> from) (\s@DoubleRange' {} a -> s {from = a} :: DoubleRange)
+
+-- | The maximum value in the range.
+doubleRange_to :: Lens.Lens' DoubleRange (Prelude.Maybe Prelude.Double)
+doubleRange_to = Lens.lens (\DoubleRange' {to} -> to) (\s@DoubleRange' {} a -> s {to = a} :: DoubleRange)
+
+instance Data.FromXML DoubleRange where
+  parseXML x =
+    DoubleRange'
+      Prelude.<$> (x Data..@? "From")
+      Prelude.<*> (x Data..@? "To")
+
+instance Prelude.Hashable DoubleRange where
+  hashWithSalt _salt DoubleRange' {..} =
+    _salt
+      `Prelude.hashWithSalt` from
+      `Prelude.hashWithSalt` to
+
+instance Prelude.NFData DoubleRange where
+  rnf DoubleRange' {..} =
+    Prelude.rnf from `Prelude.seq` Prelude.rnf to
diff --git a/gen/Amazonka/Neptune/Types/Endpoint.hs b/gen/Amazonka/Neptune/Types/Endpoint.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/Endpoint.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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.Neptune.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
+
+-- | Specifies a connection endpoint.
+--
+-- For the data structure that represents Amazon Neptune DB cluster
+-- endpoints, see @DBClusterEndpoint@.
+--
+-- /See:/ 'newEndpoint' smart constructor.
+data Endpoint = Endpoint'
+  { -- | Specifies the DNS address of the DB 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 DB 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 DB 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
diff --git a/gen/Amazonka/Neptune/Types/EngineDefaults.hs b/gen/Amazonka/Neptune/Types/EngineDefaults.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/EngineDefaults.hs
@@ -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.Neptune.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.Neptune.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.Neptune.Types.Parameter
+import qualified Amazonka.Prelude as Prelude
+
+-- | Contains the result of a successful invocation of the
+-- DescribeEngineDefaultParameters action.
+--
+-- /See:/ 'newEngineDefaults' smart constructor.
+data EngineDefaults = EngineDefaults'
+  { -- | Specifies the name of the DB parameter group family that the engine
+    -- default parameters apply to.
+    dbParameterGroupFamily :: Prelude.Maybe Prelude.Text,
+    -- | An optional pagination token provided by a previous EngineDefaults
+    -- 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,
+    -- | Contains a list of engine default parameters.
+    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' - Specifies the name of the DB parameter group family that the engine
+-- default parameters apply to.
+--
+-- 'marker', 'engineDefaults_marker' - An optional pagination token provided by a previous EngineDefaults
+-- request. If this parameter is specified, the response includes only
+-- records beyond the marker, up to the value specified by @MaxRecords@ .
+--
+-- 'parameters', 'engineDefaults_parameters' - Contains a list of engine default parameters.
+newEngineDefaults ::
+  EngineDefaults
+newEngineDefaults =
+  EngineDefaults'
+    { dbParameterGroupFamily =
+        Prelude.Nothing,
+      marker = Prelude.Nothing,
+      parameters = Prelude.Nothing
+    }
+
+-- | Specifies the name of the DB parameter group family that the engine
+-- default parameters apply to.
+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 EngineDefaults
+-- 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)
+
+-- | Contains a list of engine default parameters.
+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
diff --git a/gen/Amazonka/Neptune/Types/Event.hs b/gen/Amazonka/Neptune/Types/Event.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/Event.hs
@@ -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.Neptune.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.Neptune.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.Neptune.Types.SourceType
+import qualified Amazonka.Prelude as Prelude
+
+-- | This data type is used as a response element in the DescribeEvents
+-- action.
+--
+-- /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
diff --git a/gen/Amazonka/Neptune/Types/EventCategoriesMap.hs b/gen/Amazonka/Neptune/Types/EventCategoriesMap.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/EventCategoriesMap.hs
@@ -0,0 +1,86 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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.Neptune.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
+
+-- | Contains the results of a successful invocation of the
+-- DescribeEventCategories action.
+--
+-- /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
diff --git a/gen/Amazonka/Neptune/Types/EventSubscription.hs b/gen/Amazonka/Neptune/Types/EventSubscription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/EventSubscription.hs
@@ -0,0 +1,219 @@
+{-# 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.Neptune.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.Neptune.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
+
+-- | Contains the results of a successful invocation of the
+-- DescribeEventSubscriptions action.
+--
+-- /See:/ 'newEventSubscription' smart constructor.
+data EventSubscription = EventSubscription'
+  { -- | The event notification subscription Id.
+    custSubscriptionId :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon customer account associated with the event notification
+    -- subscription.
+    customerAwsId :: Prelude.Maybe Prelude.Text,
+    -- | A Boolean value indicating if the subscription is enabled. True
+    -- indicates the subscription is enabled.
+    enabled :: Prelude.Maybe Prelude.Bool,
+    -- | A list of event categories for the 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 event notification subscription.
+    snsTopicArn :: Prelude.Maybe Prelude.Text,
+    -- | A list of source IDs for the event notification subscription.
+    sourceIdsList :: Prelude.Maybe [Prelude.Text],
+    -- | The source type for the event notification subscription.
+    sourceType :: Prelude.Maybe Prelude.Text,
+    -- | The status of the event notification subscription.
+    --
+    -- Constraints:
+    --
+    -- Can be one of the following: creating | modifying | deleting | active |
+    -- no-permission | topic-not-exist
+    --
+    -- The status \"no-permission\" indicates that Neptune no longer has
+    -- permission to post to the SNS topic. The status \"topic-not-exist\"
+    -- indicates that the topic was deleted after the subscription was created.
+    status :: Prelude.Maybe Prelude.Text,
+    -- | The time the 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 event notification subscription Id.
+--
+-- 'customerAwsId', 'eventSubscription_customerAwsId' - The Amazon customer account associated with the event notification
+-- subscription.
+--
+-- 'enabled', 'eventSubscription_enabled' - A Boolean value indicating if the subscription is enabled. True
+-- indicates the subscription is enabled.
+--
+-- 'eventCategoriesList', 'eventSubscription_eventCategoriesList' - A list of event categories for the event notification subscription.
+--
+-- 'eventSubscriptionArn', 'eventSubscription_eventSubscriptionArn' - The Amazon Resource Name (ARN) for the event subscription.
+--
+-- 'snsTopicArn', 'eventSubscription_snsTopicArn' - The topic ARN of the event notification subscription.
+--
+-- 'sourceIdsList', 'eventSubscription_sourceIdsList' - A list of source IDs for the event notification subscription.
+--
+-- 'sourceType', 'eventSubscription_sourceType' - The source type for the event notification subscription.
+--
+-- 'status', 'eventSubscription_status' - The status of the event notification subscription.
+--
+-- Constraints:
+--
+-- Can be one of the following: creating | modifying | deleting | active |
+-- no-permission | topic-not-exist
+--
+-- The status \"no-permission\" indicates that Neptune no longer has
+-- permission to post to the SNS topic. The status \"topic-not-exist\"
+-- indicates that the topic was deleted after the subscription was created.
+--
+-- 'subscriptionCreationTime', 'eventSubscription_subscriptionCreationTime' - The time the 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 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 customer account associated with the 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 if the subscription is enabled. True
+-- indicates 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 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 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 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 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 event notification subscription.
+--
+-- Constraints:
+--
+-- Can be one of the following: creating | modifying | deleting | active |
+-- no-permission | topic-not-exist
+--
+-- The status \"no-permission\" indicates that Neptune no longer has
+-- permission to post to the SNS topic. The status \"topic-not-exist\"
+-- 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 the 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
diff --git a/gen/Amazonka/Neptune/Types/Filter.hs b/gen/Amazonka/Neptune/Types/Filter.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/Filter.hs
@@ -0,0 +1,79 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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.Neptune.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
+
+-- | This type is not currently supported.
+--
+-- /See:/ 'newFilter' smart constructor.
+data Filter = Filter'
+  { -- | This parameter is not currently supported.
+    name :: Prelude.Text,
+    -- | This parameter is not currently supported.
+    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' - This parameter is not currently supported.
+--
+-- 'values', 'filter_values' - This parameter is not currently supported.
+newFilter ::
+  -- | 'name'
+  Prelude.Text ->
+  Filter
+newFilter pName_ =
+  Filter' {name = pName_, values = Prelude.mempty}
+
+-- | This parameter is not currently supported.
+filter_name :: Lens.Lens' Filter Prelude.Text
+filter_name = Lens.lens (\Filter' {name} -> name) (\s@Filter' {} a -> s {name = a} :: Filter)
+
+-- | This parameter is not currently supported.
+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
+      ]
diff --git a/gen/Amazonka/Neptune/Types/GlobalCluster.hs b/gen/Amazonka/Neptune/Types/GlobalCluster.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/GlobalCluster.hs
@@ -0,0 +1,187 @@
+{-# 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.Neptune.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.Neptune.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.Neptune.Types.GlobalClusterMember
+import qualified Amazonka.Prelude as Prelude
+
+-- | Contains the details of an Amazon Neptune global database.
+--
+-- This data type is used as a response element for the
+-- CreateGlobalCluster, DescribeGlobalClusters, ModifyGlobalCluster,
+-- DeleteGlobalCluster, FailoverGlobalCluster, and RemoveFromGlobalCluster
+-- actions.
+--
+-- /See:/ 'newGlobalCluster' smart constructor.
+data GlobalCluster = GlobalCluster'
+  { -- | The deletion protection setting for the global database.
+    deletionProtection :: Prelude.Maybe Prelude.Bool,
+    -- | The Neptune database engine used by the global database (@\"neptune\"@).
+    engine :: Prelude.Maybe Prelude.Text,
+    -- | The Neptune engine version used by the global database.
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) for the global database.
+    globalClusterArn :: Prelude.Maybe Prelude.Text,
+    -- | Contains a user-supplied global database cluster identifier. This
+    -- identifier is the unique key that identifies a global database.
+    globalClusterIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | A list of cluster ARNs and instance ARNs for all the DB clusters that
+    -- are part of the global database.
+    globalClusterMembers :: Prelude.Maybe [GlobalClusterMember],
+    -- | An immutable identifier for the global database that is unique within in
+    -- all regions. This identifier is found in CloudTrail log entries whenever
+    -- the KMS key for the DB cluster is accessed.
+    globalClusterResourceId :: Prelude.Maybe Prelude.Text,
+    -- | Specifies the current state of this global database.
+    status :: Prelude.Maybe Prelude.Text,
+    -- | The storage encryption setting for the global database.
+    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:
+--
+-- 'deletionProtection', 'globalCluster_deletionProtection' - The deletion protection setting for the global database.
+--
+-- 'engine', 'globalCluster_engine' - The Neptune database engine used by the global database (@\"neptune\"@).
+--
+-- 'engineVersion', 'globalCluster_engineVersion' - The Neptune engine version used by the global database.
+--
+-- 'globalClusterArn', 'globalCluster_globalClusterArn' - The Amazon Resource Name (ARN) for the global database.
+--
+-- 'globalClusterIdentifier', 'globalCluster_globalClusterIdentifier' - Contains a user-supplied global database cluster identifier. This
+-- identifier is the unique key that identifies a global database.
+--
+-- 'globalClusterMembers', 'globalCluster_globalClusterMembers' - A list of cluster ARNs and instance ARNs for all the DB clusters that
+-- are part of the global database.
+--
+-- 'globalClusterResourceId', 'globalCluster_globalClusterResourceId' - An immutable identifier for the global database that is unique within in
+-- all regions. This identifier is found in CloudTrail log entries whenever
+-- the KMS key for the DB cluster is accessed.
+--
+-- 'status', 'globalCluster_status' - Specifies the current state of this global database.
+--
+-- 'storageEncrypted', 'globalCluster_storageEncrypted' - The storage encryption setting for the global database.
+newGlobalCluster ::
+  GlobalCluster
+newGlobalCluster =
+  GlobalCluster'
+    { 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 deletion protection setting for the global database.
+globalCluster_deletionProtection :: Lens.Lens' GlobalCluster (Prelude.Maybe Prelude.Bool)
+globalCluster_deletionProtection = Lens.lens (\GlobalCluster' {deletionProtection} -> deletionProtection) (\s@GlobalCluster' {} a -> s {deletionProtection = a} :: GlobalCluster)
+
+-- | The Neptune database engine used by the global database (@\"neptune\"@).
+globalCluster_engine :: Lens.Lens' GlobalCluster (Prelude.Maybe Prelude.Text)
+globalCluster_engine = Lens.lens (\GlobalCluster' {engine} -> engine) (\s@GlobalCluster' {} a -> s {engine = a} :: GlobalCluster)
+
+-- | The Neptune engine version used by the global database.
+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 database.
+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 database cluster identifier. This
+-- identifier is the unique key that identifies a global database.
+globalCluster_globalClusterIdentifier :: Lens.Lens' GlobalCluster (Prelude.Maybe Prelude.Text)
+globalCluster_globalClusterIdentifier = Lens.lens (\GlobalCluster' {globalClusterIdentifier} -> globalClusterIdentifier) (\s@GlobalCluster' {} a -> s {globalClusterIdentifier = a} :: GlobalCluster)
+
+-- | A list of cluster ARNs and instance ARNs for all the DB clusters that
+-- are part of the global database.
+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
+
+-- | An immutable identifier for the global database that is unique within in
+-- all regions. This identifier is found in CloudTrail log entries whenever
+-- the KMS key for the DB 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 database.
+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 database.
+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..@? "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` 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 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
diff --git a/gen/Amazonka/Neptune/Types/GlobalClusterMember.hs b/gen/Amazonka/Neptune/Types/GlobalClusterMember.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/GlobalClusterMember.hs
@@ -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.Neptune.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.Neptune.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 Neptune global database.
+--
+-- /See:/ 'newGlobalClusterMember' smart constructor.
+data GlobalClusterMember = GlobalClusterMember'
+  { -- | The Amazon Resource Name (ARN) for each Neptune cluster.
+    dbClusterArn :: Prelude.Maybe Prelude.Text,
+    -- | Specifies whether the Neptune cluster is the primary cluster (that is,
+    -- has read-write capability) for the Neptune global database with which it
+    -- is associated.
+    isWriter :: Prelude.Maybe Prelude.Bool,
+    -- | The Amazon Resource Name (ARN) for each read-only secondary cluster
+    -- associated with the Neptune global database.
+    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 Neptune cluster.
+--
+-- 'isWriter', 'globalClusterMember_isWriter' - Specifies whether the Neptune cluster is the primary cluster (that is,
+-- has read-write capability) for the Neptune global database with which it
+-- is associated.
+--
+-- 'readers', 'globalClusterMember_readers' - The Amazon Resource Name (ARN) for each read-only secondary cluster
+-- associated with the Neptune global database.
+newGlobalClusterMember ::
+  GlobalClusterMember
+newGlobalClusterMember =
+  GlobalClusterMember'
+    { dbClusterArn =
+        Prelude.Nothing,
+      isWriter = Prelude.Nothing,
+      readers = Prelude.Nothing
+    }
+
+-- | The Amazon Resource Name (ARN) for each Neptune 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 Neptune cluster is the primary cluster (that is,
+-- has read-write capability) for the Neptune global database 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 Neptune global database.
+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
diff --git a/gen/Amazonka/Neptune/Types/OptionGroupMembership.hs b/gen/Amazonka/Neptune/Types/OptionGroupMembership.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/OptionGroupMembership.hs
@@ -0,0 +1,81 @@
+{-# 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.Neptune.Types.OptionGroupMembership
+-- 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.Neptune.Types.OptionGroupMembership 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
+
+-- | Not supported by Neptune.
+--
+-- /See:/ 'newOptionGroupMembership' smart constructor.
+data OptionGroupMembership = OptionGroupMembership'
+  { -- | Not supported by Neptune.
+    optionGroupName :: Prelude.Maybe Prelude.Text,
+    -- | Not supported by Neptune.
+    status :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'OptionGroupMembership' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'optionGroupName', 'optionGroupMembership_optionGroupName' - Not supported by Neptune.
+--
+-- 'status', 'optionGroupMembership_status' - Not supported by Neptune.
+newOptionGroupMembership ::
+  OptionGroupMembership
+newOptionGroupMembership =
+  OptionGroupMembership'
+    { optionGroupName =
+        Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | Not supported by Neptune.
+optionGroupMembership_optionGroupName :: Lens.Lens' OptionGroupMembership (Prelude.Maybe Prelude.Text)
+optionGroupMembership_optionGroupName = Lens.lens (\OptionGroupMembership' {optionGroupName} -> optionGroupName) (\s@OptionGroupMembership' {} a -> s {optionGroupName = a} :: OptionGroupMembership)
+
+-- | Not supported by Neptune.
+optionGroupMembership_status :: Lens.Lens' OptionGroupMembership (Prelude.Maybe Prelude.Text)
+optionGroupMembership_status = Lens.lens (\OptionGroupMembership' {status} -> status) (\s@OptionGroupMembership' {} a -> s {status = a} :: OptionGroupMembership)
+
+instance Data.FromXML OptionGroupMembership where
+  parseXML x =
+    OptionGroupMembership'
+      Prelude.<$> (x Data..@? "OptionGroupName")
+      Prelude.<*> (x Data..@? "Status")
+
+instance Prelude.Hashable OptionGroupMembership where
+  hashWithSalt _salt OptionGroupMembership' {..} =
+    _salt
+      `Prelude.hashWithSalt` optionGroupName
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData OptionGroupMembership where
+  rnf OptionGroupMembership' {..} =
+    Prelude.rnf optionGroupName
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/Neptune/Types/OrderableDBInstanceOption.hs b/gen/Amazonka/Neptune/Types/OrderableDBInstanceOption.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/OrderableDBInstanceOption.hs
@@ -0,0 +1,327 @@
+{-# 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.Neptune.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.Neptune.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.Neptune.Types.AvailabilityZone
+import qualified Amazonka.Prelude as Prelude
+
+-- | Contains a list of available options for a DB instance.
+--
+-- This data type is used as a response element in the
+-- DescribeOrderableDBInstanceOptions action.
+--
+-- /See:/ 'newOrderableDBInstanceOption' smart constructor.
+data OrderableDBInstanceOption = OrderableDBInstanceOption'
+  { -- | A list of Availability Zones for a DB instance.
+    availabilityZones :: Prelude.Maybe [AvailabilityZone],
+    -- | The DB instance class for a DB instance.
+    dbInstanceClass :: Prelude.Maybe Prelude.Text,
+    -- | The engine type of a DB instance.
+    engine :: Prelude.Maybe Prelude.Text,
+    -- | The engine version of a DB instance.
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | The license model for a DB instance.
+    licenseModel :: Prelude.Maybe Prelude.Text,
+    -- | Maximum total provisioned IOPS for a DB instance.
+    maxIopsPerDbInstance :: Prelude.Maybe Prelude.Int,
+    -- | Maximum provisioned IOPS per GiB for a DB instance.
+    maxIopsPerGib :: Prelude.Maybe Prelude.Double,
+    -- | Maximum storage size for a DB instance.
+    maxStorageSize :: Prelude.Maybe Prelude.Int,
+    -- | Minimum total provisioned IOPS for a DB instance.
+    minIopsPerDbInstance :: Prelude.Maybe Prelude.Int,
+    -- | Minimum provisioned IOPS per GiB for a DB instance.
+    minIopsPerGib :: Prelude.Maybe Prelude.Double,
+    -- | Minimum storage size for a DB instance.
+    minStorageSize :: Prelude.Maybe Prelude.Int,
+    -- | Indicates whether a DB instance is Multi-AZ capable.
+    multiAZCapable :: Prelude.Maybe Prelude.Bool,
+    -- | Indicates whether a DB instance can have a Read Replica.
+    readReplicaCapable :: Prelude.Maybe Prelude.Bool,
+    -- | Indicates the storage type for a DB instance.
+    storageType :: Prelude.Maybe Prelude.Text,
+    -- | Indicates whether a DB instance supports Enhanced Monitoring at
+    -- intervals from 1 to 60 seconds.
+    supportsEnhancedMonitoring :: Prelude.Maybe Prelude.Bool,
+    -- | A value that indicates whether you can use Neptune global databases with
+    -- a specific combination of other DB engine attributes.
+    supportsGlobalDatabases :: Prelude.Maybe Prelude.Bool,
+    -- | Indicates whether a DB instance supports IAM database authentication.
+    supportsIAMDatabaseAuthentication :: Prelude.Maybe Prelude.Bool,
+    -- | Indicates whether a DB instance supports provisioned IOPS.
+    supportsIops :: Prelude.Maybe Prelude.Bool,
+    -- | /(Not supported by Neptune)/
+    supportsPerformanceInsights :: Prelude.Maybe Prelude.Bool,
+    -- | Indicates whether a DB instance supports encrypted storage.
+    supportsStorageEncryption :: Prelude.Maybe Prelude.Bool,
+    -- | Indicates whether a DB instance is in a 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 a DB instance.
+--
+-- 'dbInstanceClass', 'orderableDBInstanceOption_dbInstanceClass' - The DB instance class for a DB instance.
+--
+-- 'engine', 'orderableDBInstanceOption_engine' - The engine type of a DB instance.
+--
+-- 'engineVersion', 'orderableDBInstanceOption_engineVersion' - The engine version of a DB instance.
+--
+-- 'licenseModel', 'orderableDBInstanceOption_licenseModel' - The license model for a DB instance.
+--
+-- 'maxIopsPerDbInstance', 'orderableDBInstanceOption_maxIopsPerDbInstance' - Maximum total provisioned IOPS for a DB instance.
+--
+-- 'maxIopsPerGib', 'orderableDBInstanceOption_maxIopsPerGib' - Maximum provisioned IOPS per GiB for a DB instance.
+--
+-- 'maxStorageSize', 'orderableDBInstanceOption_maxStorageSize' - Maximum storage size for a DB instance.
+--
+-- 'minIopsPerDbInstance', 'orderableDBInstanceOption_minIopsPerDbInstance' - Minimum total provisioned IOPS for a DB instance.
+--
+-- 'minIopsPerGib', 'orderableDBInstanceOption_minIopsPerGib' - Minimum provisioned IOPS per GiB for a DB instance.
+--
+-- 'minStorageSize', 'orderableDBInstanceOption_minStorageSize' - Minimum storage size for a DB instance.
+--
+-- 'multiAZCapable', 'orderableDBInstanceOption_multiAZCapable' - Indicates whether a DB instance is Multi-AZ capable.
+--
+-- 'readReplicaCapable', 'orderableDBInstanceOption_readReplicaCapable' - Indicates whether a DB instance can have a Read Replica.
+--
+-- 'storageType', 'orderableDBInstanceOption_storageType' - Indicates the storage type for a DB instance.
+--
+-- 'supportsEnhancedMonitoring', 'orderableDBInstanceOption_supportsEnhancedMonitoring' - Indicates whether a DB instance supports Enhanced Monitoring at
+-- intervals from 1 to 60 seconds.
+--
+-- 'supportsGlobalDatabases', 'orderableDBInstanceOption_supportsGlobalDatabases' - A value that indicates whether you can use Neptune global databases with
+-- a specific combination of other DB engine attributes.
+--
+-- 'supportsIAMDatabaseAuthentication', 'orderableDBInstanceOption_supportsIAMDatabaseAuthentication' - Indicates whether a DB instance supports IAM database authentication.
+--
+-- 'supportsIops', 'orderableDBInstanceOption_supportsIops' - Indicates whether a DB instance supports provisioned IOPS.
+--
+-- 'supportsPerformanceInsights', 'orderableDBInstanceOption_supportsPerformanceInsights' - /(Not supported by Neptune)/
+--
+-- 'supportsStorageEncryption', 'orderableDBInstanceOption_supportsStorageEncryption' - Indicates whether a DB instance supports encrypted storage.
+--
+-- 'vpc', 'orderableDBInstanceOption_vpc' - Indicates whether a DB instance is in a VPC.
+newOrderableDBInstanceOption ::
+  OrderableDBInstanceOption
+newOrderableDBInstanceOption =
+  OrderableDBInstanceOption'
+    { availabilityZones =
+        Prelude.Nothing,
+      dbInstanceClass = Prelude.Nothing,
+      engine = Prelude.Nothing,
+      engineVersion = Prelude.Nothing,
+      licenseModel = Prelude.Nothing,
+      maxIopsPerDbInstance = Prelude.Nothing,
+      maxIopsPerGib = Prelude.Nothing,
+      maxStorageSize = Prelude.Nothing,
+      minIopsPerDbInstance = Prelude.Nothing,
+      minIopsPerGib = Prelude.Nothing,
+      minStorageSize = Prelude.Nothing,
+      multiAZCapable = Prelude.Nothing,
+      readReplicaCapable = Prelude.Nothing,
+      storageType = Prelude.Nothing,
+      supportsEnhancedMonitoring = Prelude.Nothing,
+      supportsGlobalDatabases = Prelude.Nothing,
+      supportsIAMDatabaseAuthentication =
+        Prelude.Nothing,
+      supportsIops = Prelude.Nothing,
+      supportsPerformanceInsights = Prelude.Nothing,
+      supportsStorageEncryption = Prelude.Nothing,
+      vpc = Prelude.Nothing
+    }
+
+-- | A list of Availability Zones for a DB 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 DB instance class for a DB 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 a DB 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 a DB 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 a DB instance.
+orderableDBInstanceOption_licenseModel :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Text)
+orderableDBInstanceOption_licenseModel = Lens.lens (\OrderableDBInstanceOption' {licenseModel} -> licenseModel) (\s@OrderableDBInstanceOption' {} a -> s {licenseModel = a} :: OrderableDBInstanceOption)
+
+-- | Maximum total provisioned IOPS for a DB instance.
+orderableDBInstanceOption_maxIopsPerDbInstance :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Int)
+orderableDBInstanceOption_maxIopsPerDbInstance = Lens.lens (\OrderableDBInstanceOption' {maxIopsPerDbInstance} -> maxIopsPerDbInstance) (\s@OrderableDBInstanceOption' {} a -> s {maxIopsPerDbInstance = a} :: OrderableDBInstanceOption)
+
+-- | Maximum provisioned IOPS per GiB for a DB instance.
+orderableDBInstanceOption_maxIopsPerGib :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Double)
+orderableDBInstanceOption_maxIopsPerGib = Lens.lens (\OrderableDBInstanceOption' {maxIopsPerGib} -> maxIopsPerGib) (\s@OrderableDBInstanceOption' {} a -> s {maxIopsPerGib = a} :: OrderableDBInstanceOption)
+
+-- | Maximum storage size for a DB instance.
+orderableDBInstanceOption_maxStorageSize :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Int)
+orderableDBInstanceOption_maxStorageSize = Lens.lens (\OrderableDBInstanceOption' {maxStorageSize} -> maxStorageSize) (\s@OrderableDBInstanceOption' {} a -> s {maxStorageSize = a} :: OrderableDBInstanceOption)
+
+-- | Minimum total provisioned IOPS for a DB instance.
+orderableDBInstanceOption_minIopsPerDbInstance :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Int)
+orderableDBInstanceOption_minIopsPerDbInstance = Lens.lens (\OrderableDBInstanceOption' {minIopsPerDbInstance} -> minIopsPerDbInstance) (\s@OrderableDBInstanceOption' {} a -> s {minIopsPerDbInstance = a} :: OrderableDBInstanceOption)
+
+-- | Minimum provisioned IOPS per GiB for a DB instance.
+orderableDBInstanceOption_minIopsPerGib :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Double)
+orderableDBInstanceOption_minIopsPerGib = Lens.lens (\OrderableDBInstanceOption' {minIopsPerGib} -> minIopsPerGib) (\s@OrderableDBInstanceOption' {} a -> s {minIopsPerGib = a} :: OrderableDBInstanceOption)
+
+-- | Minimum storage size for a DB instance.
+orderableDBInstanceOption_minStorageSize :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Int)
+orderableDBInstanceOption_minStorageSize = Lens.lens (\OrderableDBInstanceOption' {minStorageSize} -> minStorageSize) (\s@OrderableDBInstanceOption' {} a -> s {minStorageSize = a} :: OrderableDBInstanceOption)
+
+-- | Indicates whether a DB instance is Multi-AZ capable.
+orderableDBInstanceOption_multiAZCapable :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Bool)
+orderableDBInstanceOption_multiAZCapable = Lens.lens (\OrderableDBInstanceOption' {multiAZCapable} -> multiAZCapable) (\s@OrderableDBInstanceOption' {} a -> s {multiAZCapable = a} :: OrderableDBInstanceOption)
+
+-- | Indicates whether a DB instance can have a Read Replica.
+orderableDBInstanceOption_readReplicaCapable :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Bool)
+orderableDBInstanceOption_readReplicaCapable = Lens.lens (\OrderableDBInstanceOption' {readReplicaCapable} -> readReplicaCapable) (\s@OrderableDBInstanceOption' {} a -> s {readReplicaCapable = a} :: OrderableDBInstanceOption)
+
+-- | Indicates the storage type for a DB instance.
+orderableDBInstanceOption_storageType :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Text)
+orderableDBInstanceOption_storageType = Lens.lens (\OrderableDBInstanceOption' {storageType} -> storageType) (\s@OrderableDBInstanceOption' {} a -> s {storageType = a} :: OrderableDBInstanceOption)
+
+-- | Indicates whether a DB instance supports Enhanced Monitoring at
+-- intervals from 1 to 60 seconds.
+orderableDBInstanceOption_supportsEnhancedMonitoring :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Bool)
+orderableDBInstanceOption_supportsEnhancedMonitoring = Lens.lens (\OrderableDBInstanceOption' {supportsEnhancedMonitoring} -> supportsEnhancedMonitoring) (\s@OrderableDBInstanceOption' {} a -> s {supportsEnhancedMonitoring = a} :: OrderableDBInstanceOption)
+
+-- | A value that indicates whether you can use Neptune global databases with
+-- a specific combination of other DB engine attributes.
+orderableDBInstanceOption_supportsGlobalDatabases :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Bool)
+orderableDBInstanceOption_supportsGlobalDatabases = Lens.lens (\OrderableDBInstanceOption' {supportsGlobalDatabases} -> supportsGlobalDatabases) (\s@OrderableDBInstanceOption' {} a -> s {supportsGlobalDatabases = a} :: OrderableDBInstanceOption)
+
+-- | Indicates whether a DB instance supports IAM database authentication.
+orderableDBInstanceOption_supportsIAMDatabaseAuthentication :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Bool)
+orderableDBInstanceOption_supportsIAMDatabaseAuthentication = Lens.lens (\OrderableDBInstanceOption' {supportsIAMDatabaseAuthentication} -> supportsIAMDatabaseAuthentication) (\s@OrderableDBInstanceOption' {} a -> s {supportsIAMDatabaseAuthentication = a} :: OrderableDBInstanceOption)
+
+-- | Indicates whether a DB instance supports provisioned IOPS.
+orderableDBInstanceOption_supportsIops :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Bool)
+orderableDBInstanceOption_supportsIops = Lens.lens (\OrderableDBInstanceOption' {supportsIops} -> supportsIops) (\s@OrderableDBInstanceOption' {} a -> s {supportsIops = a} :: OrderableDBInstanceOption)
+
+-- | /(Not supported by Neptune)/
+orderableDBInstanceOption_supportsPerformanceInsights :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Bool)
+orderableDBInstanceOption_supportsPerformanceInsights = Lens.lens (\OrderableDBInstanceOption' {supportsPerformanceInsights} -> supportsPerformanceInsights) (\s@OrderableDBInstanceOption' {} a -> s {supportsPerformanceInsights = a} :: OrderableDBInstanceOption)
+
+-- | Indicates whether a DB instance supports encrypted storage.
+orderableDBInstanceOption_supportsStorageEncryption :: Lens.Lens' OrderableDBInstanceOption (Prelude.Maybe Prelude.Bool)
+orderableDBInstanceOption_supportsStorageEncryption = Lens.lens (\OrderableDBInstanceOption' {supportsStorageEncryption} -> supportsStorageEncryption) (\s@OrderableDBInstanceOption' {} a -> s {supportsStorageEncryption = a} :: OrderableDBInstanceOption)
+
+-- | Indicates whether a DB instance is in a 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..@? "MaxIopsPerDbInstance")
+      Prelude.<*> (x Data..@? "MaxIopsPerGib")
+      Prelude.<*> (x Data..@? "MaxStorageSize")
+      Prelude.<*> (x Data..@? "MinIopsPerDbInstance")
+      Prelude.<*> (x Data..@? "MinIopsPerGib")
+      Prelude.<*> (x Data..@? "MinStorageSize")
+      Prelude.<*> (x Data..@? "MultiAZCapable")
+      Prelude.<*> (x Data..@? "ReadReplicaCapable")
+      Prelude.<*> (x Data..@? "StorageType")
+      Prelude.<*> (x Data..@? "SupportsEnhancedMonitoring")
+      Prelude.<*> (x Data..@? "SupportsGlobalDatabases")
+      Prelude.<*> (x Data..@? "SupportsIAMDatabaseAuthentication")
+      Prelude.<*> (x Data..@? "SupportsIops")
+      Prelude.<*> (x Data..@? "SupportsPerformanceInsights")
+      Prelude.<*> (x Data..@? "SupportsStorageEncryption")
+      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` maxIopsPerDbInstance
+      `Prelude.hashWithSalt` maxIopsPerGib
+      `Prelude.hashWithSalt` maxStorageSize
+      `Prelude.hashWithSalt` minIopsPerDbInstance
+      `Prelude.hashWithSalt` minIopsPerGib
+      `Prelude.hashWithSalt` minStorageSize
+      `Prelude.hashWithSalt` multiAZCapable
+      `Prelude.hashWithSalt` readReplicaCapable
+      `Prelude.hashWithSalt` storageType
+      `Prelude.hashWithSalt` supportsEnhancedMonitoring
+      `Prelude.hashWithSalt` supportsGlobalDatabases
+      `Prelude.hashWithSalt` supportsIAMDatabaseAuthentication
+      `Prelude.hashWithSalt` supportsIops
+      `Prelude.hashWithSalt` supportsPerformanceInsights
+      `Prelude.hashWithSalt` supportsStorageEncryption
+      `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 maxIopsPerDbInstance
+      `Prelude.seq` Prelude.rnf maxIopsPerGib
+      `Prelude.seq` Prelude.rnf maxStorageSize
+      `Prelude.seq` Prelude.rnf minIopsPerDbInstance
+      `Prelude.seq` Prelude.rnf minIopsPerGib
+      `Prelude.seq` Prelude.rnf minStorageSize
+      `Prelude.seq` Prelude.rnf multiAZCapable
+      `Prelude.seq` Prelude.rnf readReplicaCapable
+      `Prelude.seq` Prelude.rnf storageType
+      `Prelude.seq` Prelude.rnf supportsEnhancedMonitoring
+      `Prelude.seq` Prelude.rnf supportsGlobalDatabases
+      `Prelude.seq` Prelude.rnf
+        supportsIAMDatabaseAuthentication
+      `Prelude.seq` Prelude.rnf supportsIops
+      `Prelude.seq` Prelude.rnf
+        supportsPerformanceInsights
+      `Prelude.seq` Prelude.rnf
+        supportsStorageEncryption
+      `Prelude.seq` Prelude.rnf vpc
diff --git a/gen/Amazonka/Neptune/Types/Parameter.hs b/gen/Amazonka/Neptune/Types/Parameter.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/Parameter.hs
@@ -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.Neptune.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.Neptune.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.Neptune.Types.ApplyMethod
+import qualified Amazonka.Prelude as Prelude
+
+-- | Specifies a 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
+      ]
diff --git a/gen/Amazonka/Neptune/Types/PendingCloudwatchLogsExports.hs b/gen/Amazonka/Neptune/Types/PendingCloudwatchLogsExports.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/PendingCloudwatchLogsExports.hs
@@ -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.Neptune.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.Neptune.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. In other
+-- words, 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 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 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 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
diff --git a/gen/Amazonka/Neptune/Types/PendingMaintenanceAction.hs b/gen/Amazonka/Neptune/Types/PendingMaintenanceAction.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/PendingMaintenanceAction.hs
@@ -0,0 +1,167 @@
+{-# 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.Neptune.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.Neptune.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. This date takes into account opt-in requests received from the
+    -- ApplyPendingMaintenanceAction API, the @AutoAppliedAfterDate@, and the
+    -- @ForcedApplyDate@. This value is blank if an opt-in request has not been
+    -- received and nothing has been specified as @AutoAppliedAfterDate@ or
+    -- @ForcedApplyDate@.
+    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. This date takes into account opt-in requests received from the
+-- ApplyPendingMaintenanceAction API, the @AutoAppliedAfterDate@, and the
+-- @ForcedApplyDate@. This value is blank if an opt-in request has not been
+-- received and nothing has been specified as @AutoAppliedAfterDate@ or
+-- @ForcedApplyDate@.
+--
+-- '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. This date takes into account opt-in requests received from the
+-- ApplyPendingMaintenanceAction API, the @AutoAppliedAfterDate@, and the
+-- @ForcedApplyDate@. This value is blank if an opt-in request has not been
+-- received and nothing has been specified as @AutoAppliedAfterDate@ or
+-- @ForcedApplyDate@.
+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
diff --git a/gen/Amazonka/Neptune/Types/PendingModifiedValues.hs b/gen/Amazonka/Neptune/Types/PendingModifiedValues.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/PendingModifiedValues.hs
@@ -0,0 +1,248 @@
+{-# 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.Neptune.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.Neptune.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.Neptune.Types.PendingCloudwatchLogsExports
+import qualified Amazonka.Prelude as Prelude
+
+-- | This data type is used as a response element in the ModifyDBInstance
+-- action.
+--
+-- /See:/ 'newPendingModifiedValues' smart constructor.
+data PendingModifiedValues = PendingModifiedValues'
+  { -- | Contains the new @AllocatedStorage@ size for the DB 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 CA certificate for the DB instance.
+    cACertificateIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | Contains the new @DBInstanceClass@ for the DB instance that will be
+    -- applied or is currently being applied.
+    dbInstanceClass :: Prelude.Maybe Prelude.Text,
+    -- | Contains the new @DBInstanceIdentifier@ for the DB instance that will be
+    -- applied or is currently being applied.
+    dbInstanceIdentifier :: Prelude.Maybe Prelude.Text,
+    -- | The new DB subnet group for the DB instance.
+    dbSubnetGroupName :: Prelude.Maybe Prelude.Text,
+    -- | Indicates the database engine version.
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | Specifies the new Provisioned IOPS value for the DB instance that will
+    -- be applied or is currently being applied.
+    iops :: Prelude.Maybe Prelude.Int,
+    -- | Not supported by Neptune.
+    licenseModel :: Prelude.Maybe Prelude.Text,
+    -- | Not supported by Neptune.
+    masterUserPassword :: Prelude.Maybe Prelude.Text,
+    -- | Indicates that the Single-AZ DB instance is to change to a Multi-AZ
+    -- deployment.
+    multiAZ :: Prelude.Maybe Prelude.Bool,
+    -- | This @PendingCloudwatchLogsExports@ structure specifies pending changes
+    -- to which CloudWatch logs are enabled and which are disabled.
+    pendingCloudwatchLogsExports :: Prelude.Maybe PendingCloudwatchLogsExports,
+    -- | Specifies the pending port for the DB instance.
+    port :: Prelude.Maybe Prelude.Int,
+    -- | Specifies the storage type to be associated with the DB 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 the DB 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 CA certificate for the DB instance.
+--
+-- 'dbInstanceClass', 'pendingModifiedValues_dbInstanceClass' - Contains the new @DBInstanceClass@ for the DB instance that will be
+-- applied or is currently being applied.
+--
+-- 'dbInstanceIdentifier', 'pendingModifiedValues_dbInstanceIdentifier' - Contains the new @DBInstanceIdentifier@ for the DB instance that will be
+-- applied or is currently being applied.
+--
+-- 'dbSubnetGroupName', 'pendingModifiedValues_dbSubnetGroupName' - The new DB subnet group for the DB instance.
+--
+-- 'engineVersion', 'pendingModifiedValues_engineVersion' - Indicates the database engine version.
+--
+-- 'iops', 'pendingModifiedValues_iops' - Specifies the new Provisioned IOPS value for the DB instance that will
+-- be applied or is currently being applied.
+--
+-- 'licenseModel', 'pendingModifiedValues_licenseModel' - Not supported by Neptune.
+--
+-- 'masterUserPassword', 'pendingModifiedValues_masterUserPassword' - Not supported by Neptune.
+--
+-- 'multiAZ', 'pendingModifiedValues_multiAZ' - Indicates that the Single-AZ DB instance is to change to a Multi-AZ
+-- deployment.
+--
+-- 'pendingCloudwatchLogsExports', 'pendingModifiedValues_pendingCloudwatchLogsExports' - This @PendingCloudwatchLogsExports@ structure specifies pending changes
+-- to which CloudWatch logs are enabled and which are disabled.
+--
+-- 'port', 'pendingModifiedValues_port' - Specifies the pending port for the DB instance.
+--
+-- 'storageType', 'pendingModifiedValues_storageType' - Specifies the storage type to be associated with the DB 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 the DB 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 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 DB 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 DB 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 DB subnet group for the DB 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 DB 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)
+
+-- | Not supported by Neptune.
+pendingModifiedValues_licenseModel :: Lens.Lens' PendingModifiedValues (Prelude.Maybe Prelude.Text)
+pendingModifiedValues_licenseModel = Lens.lens (\PendingModifiedValues' {licenseModel} -> licenseModel) (\s@PendingModifiedValues' {} a -> s {licenseModel = a} :: PendingModifiedValues)
+
+-- | Not supported by Neptune.
+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 DB 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)
+
+-- | This @PendingCloudwatchLogsExports@ structure specifies pending changes
+-- to which CloudWatch logs are enabled and which are disabled.
+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 DB 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 DB 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
diff --git a/gen/Amazonka/Neptune/Types/Range.hs b/gen/Amazonka/Neptune/Types/Range.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/Range.hs
@@ -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.Neptune.Types.Range
+-- 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.Neptune.Types.Range 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 range of integer values.
+--
+-- /See:/ 'newRange' smart constructor.
+data Range = Range'
+  { -- | The minimum value in the range.
+    from :: Prelude.Maybe Prelude.Int,
+    -- | The step value for the range. For example, if you have a range of 5,000
+    -- to 10,000, with a step value of 1,000, the valid values start at 5,000
+    -- and step up by 1,000. Even though 7,500 is within the range, it isn\'t a
+    -- valid value for the range. The valid values are 5,000, 6,000, 7,000,
+    -- 8,000...
+    step :: Prelude.Maybe Prelude.Int,
+    -- | The maximum value in the range.
+    to :: Prelude.Maybe Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Range' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'from', 'range_from' - The minimum value in the range.
+--
+-- 'step', 'range_step' - The step value for the range. For example, if you have a range of 5,000
+-- to 10,000, with a step value of 1,000, the valid values start at 5,000
+-- and step up by 1,000. Even though 7,500 is within the range, it isn\'t a
+-- valid value for the range. The valid values are 5,000, 6,000, 7,000,
+-- 8,000...
+--
+-- 'to', 'range_to' - The maximum value in the range.
+newRange ::
+  Range
+newRange =
+  Range'
+    { from = Prelude.Nothing,
+      step = Prelude.Nothing,
+      to = Prelude.Nothing
+    }
+
+-- | The minimum value in the range.
+range_from :: Lens.Lens' Range (Prelude.Maybe Prelude.Int)
+range_from = Lens.lens (\Range' {from} -> from) (\s@Range' {} a -> s {from = a} :: Range)
+
+-- | The step value for the range. For example, if you have a range of 5,000
+-- to 10,000, with a step value of 1,000, the valid values start at 5,000
+-- and step up by 1,000. Even though 7,500 is within the range, it isn\'t a
+-- valid value for the range. The valid values are 5,000, 6,000, 7,000,
+-- 8,000...
+range_step :: Lens.Lens' Range (Prelude.Maybe Prelude.Int)
+range_step = Lens.lens (\Range' {step} -> step) (\s@Range' {} a -> s {step = a} :: Range)
+
+-- | The maximum value in the range.
+range_to :: Lens.Lens' Range (Prelude.Maybe Prelude.Int)
+range_to = Lens.lens (\Range' {to} -> to) (\s@Range' {} a -> s {to = a} :: Range)
+
+instance Data.FromXML Range where
+  parseXML x =
+    Range'
+      Prelude.<$> (x Data..@? "From")
+      Prelude.<*> (x Data..@? "Step")
+      Prelude.<*> (x Data..@? "To")
+
+instance Prelude.Hashable Range where
+  hashWithSalt _salt Range' {..} =
+    _salt
+      `Prelude.hashWithSalt` from
+      `Prelude.hashWithSalt` step
+      `Prelude.hashWithSalt` to
+
+instance Prelude.NFData Range where
+  rnf Range' {..} =
+    Prelude.rnf from
+      `Prelude.seq` Prelude.rnf step
+      `Prelude.seq` Prelude.rnf to
diff --git a/gen/Amazonka/Neptune/Types/ResourcePendingMaintenanceActions.hs b/gen/Amazonka/Neptune/Types/ResourcePendingMaintenanceActions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/ResourcePendingMaintenanceActions.hs
@@ -0,0 +1,101 @@
+{-# 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.Neptune.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.Neptune.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.Neptune.Types.PendingMaintenanceAction
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the pending maintenance actions for a resource.
+--
+-- /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 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 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 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
diff --git a/gen/Amazonka/Neptune/Types/ServerlessV2ScalingConfiguration.hs b/gen/Amazonka/Neptune/Types/ServerlessV2ScalingConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/ServerlessV2ScalingConfiguration.hs
@@ -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.Neptune.Types.ServerlessV2ScalingConfiguration
+-- 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.Neptune.Types.ServerlessV2ScalingConfiguration 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 scaling configuration of a Neptune Serverless DB cluster.
+--
+-- For more information, see
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/neptune-serverless-using.html Using Amazon Neptune Serverless>
+-- in the /Amazon Neptune User Guide/.
+--
+-- /See:/ 'newServerlessV2ScalingConfiguration' smart constructor.
+data ServerlessV2ScalingConfiguration = ServerlessV2ScalingConfiguration'
+  { -- | The maximum number of Neptune capacity units (NCUs) for a DB instance in
+    -- a Neptune Serverless cluster. You can specify NCU values in half-step
+    -- increments, such as 40, 40.5, 41, and so on.
+    maxCapacity :: Prelude.Maybe Prelude.Double,
+    -- | The minimum number of Neptune capacity units (NCUs) for a DB instance in
+    -- a Neptune Serverless cluster. You can specify NCU values in half-step
+    -- increments, such as 8, 8.5, 9, and so on.
+    minCapacity :: Prelude.Maybe Prelude.Double
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ServerlessV2ScalingConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'maxCapacity', 'serverlessV2ScalingConfiguration_maxCapacity' - The maximum number of Neptune capacity units (NCUs) for a DB instance in
+-- a Neptune Serverless cluster. You can specify NCU values in half-step
+-- increments, such as 40, 40.5, 41, and so on.
+--
+-- 'minCapacity', 'serverlessV2ScalingConfiguration_minCapacity' - The minimum number of Neptune capacity units (NCUs) for a DB instance in
+-- a Neptune Serverless cluster. You can specify NCU values in half-step
+-- increments, such as 8, 8.5, 9, and so on.
+newServerlessV2ScalingConfiguration ::
+  ServerlessV2ScalingConfiguration
+newServerlessV2ScalingConfiguration =
+  ServerlessV2ScalingConfiguration'
+    { maxCapacity =
+        Prelude.Nothing,
+      minCapacity = Prelude.Nothing
+    }
+
+-- | The maximum number of Neptune capacity units (NCUs) for a DB instance in
+-- a Neptune Serverless cluster. You can specify NCU values in half-step
+-- increments, such as 40, 40.5, 41, and so on.
+serverlessV2ScalingConfiguration_maxCapacity :: Lens.Lens' ServerlessV2ScalingConfiguration (Prelude.Maybe Prelude.Double)
+serverlessV2ScalingConfiguration_maxCapacity = Lens.lens (\ServerlessV2ScalingConfiguration' {maxCapacity} -> maxCapacity) (\s@ServerlessV2ScalingConfiguration' {} a -> s {maxCapacity = a} :: ServerlessV2ScalingConfiguration)
+
+-- | The minimum number of Neptune capacity units (NCUs) for a DB instance in
+-- a Neptune Serverless cluster. You can specify NCU values in half-step
+-- increments, such as 8, 8.5, 9, and so on.
+serverlessV2ScalingConfiguration_minCapacity :: Lens.Lens' ServerlessV2ScalingConfiguration (Prelude.Maybe Prelude.Double)
+serverlessV2ScalingConfiguration_minCapacity = Lens.lens (\ServerlessV2ScalingConfiguration' {minCapacity} -> minCapacity) (\s@ServerlessV2ScalingConfiguration' {} a -> s {minCapacity = a} :: ServerlessV2ScalingConfiguration)
+
+instance
+  Prelude.Hashable
+    ServerlessV2ScalingConfiguration
+  where
+  hashWithSalt
+    _salt
+    ServerlessV2ScalingConfiguration' {..} =
+      _salt
+        `Prelude.hashWithSalt` maxCapacity
+        `Prelude.hashWithSalt` minCapacity
+
+instance
+  Prelude.NFData
+    ServerlessV2ScalingConfiguration
+  where
+  rnf ServerlessV2ScalingConfiguration' {..} =
+    Prelude.rnf maxCapacity
+      `Prelude.seq` Prelude.rnf minCapacity
+
+instance
+  Data.ToQuery
+    ServerlessV2ScalingConfiguration
+  where
+  toQuery ServerlessV2ScalingConfiguration' {..} =
+    Prelude.mconcat
+      [ "MaxCapacity" Data.=: maxCapacity,
+        "MinCapacity" Data.=: minCapacity
+      ]
diff --git a/gen/Amazonka/Neptune/Types/ServerlessV2ScalingConfigurationInfo.hs b/gen/Amazonka/Neptune/Types/ServerlessV2ScalingConfigurationInfo.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/ServerlessV2ScalingConfigurationInfo.hs
@@ -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.Neptune.Types.ServerlessV2ScalingConfigurationInfo
+-- 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.Neptune.Types.ServerlessV2ScalingConfigurationInfo 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
+
+-- | Shows the scaling configuration for a Neptune Serverless DB cluster.
+--
+-- For more information, see
+-- <https://docs.aws.amazon.com/neptune/latest/userguide/neptune-serverless-using.html Using Amazon Neptune Serverless>
+-- in the /Amazon Neptune User Guide/.
+--
+-- /See:/ 'newServerlessV2ScalingConfigurationInfo' smart constructor.
+data ServerlessV2ScalingConfigurationInfo = ServerlessV2ScalingConfigurationInfo'
+  { -- | The maximum number of Neptune capacity units (NCUs) for a DB instance in
+    -- a Neptune Serverless cluster. You can specify NCU values in half-step
+    -- increments, such as 40, 40.5, 41, and so on.
+    maxCapacity :: Prelude.Maybe Prelude.Double,
+    -- | The minimum number of Neptune capacity units (NCUs) for a DB instance in
+    -- a Neptune Serverless cluster. You can specify NCU values in half-step
+    -- increments, such as 8, 8.5, 9, and so on.
+    minCapacity :: Prelude.Maybe Prelude.Double
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ServerlessV2ScalingConfigurationInfo' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'maxCapacity', 'serverlessV2ScalingConfigurationInfo_maxCapacity' - The maximum number of Neptune capacity units (NCUs) for a DB instance in
+-- a Neptune Serverless cluster. You can specify NCU values in half-step
+-- increments, such as 40, 40.5, 41, and so on.
+--
+-- 'minCapacity', 'serverlessV2ScalingConfigurationInfo_minCapacity' - The minimum number of Neptune capacity units (NCUs) for a DB instance in
+-- a Neptune Serverless cluster. You can specify NCU values in half-step
+-- increments, such as 8, 8.5, 9, and so on.
+newServerlessV2ScalingConfigurationInfo ::
+  ServerlessV2ScalingConfigurationInfo
+newServerlessV2ScalingConfigurationInfo =
+  ServerlessV2ScalingConfigurationInfo'
+    { maxCapacity =
+        Prelude.Nothing,
+      minCapacity = Prelude.Nothing
+    }
+
+-- | The maximum number of Neptune capacity units (NCUs) for a DB instance in
+-- a Neptune Serverless cluster. You can specify NCU values in half-step
+-- increments, such as 40, 40.5, 41, and so on.
+serverlessV2ScalingConfigurationInfo_maxCapacity :: Lens.Lens' ServerlessV2ScalingConfigurationInfo (Prelude.Maybe Prelude.Double)
+serverlessV2ScalingConfigurationInfo_maxCapacity = Lens.lens (\ServerlessV2ScalingConfigurationInfo' {maxCapacity} -> maxCapacity) (\s@ServerlessV2ScalingConfigurationInfo' {} a -> s {maxCapacity = a} :: ServerlessV2ScalingConfigurationInfo)
+
+-- | The minimum number of Neptune capacity units (NCUs) for a DB instance in
+-- a Neptune Serverless cluster. You can specify NCU values in half-step
+-- increments, such as 8, 8.5, 9, and so on.
+serverlessV2ScalingConfigurationInfo_minCapacity :: Lens.Lens' ServerlessV2ScalingConfigurationInfo (Prelude.Maybe Prelude.Double)
+serverlessV2ScalingConfigurationInfo_minCapacity = Lens.lens (\ServerlessV2ScalingConfigurationInfo' {minCapacity} -> minCapacity) (\s@ServerlessV2ScalingConfigurationInfo' {} a -> s {minCapacity = a} :: ServerlessV2ScalingConfigurationInfo)
+
+instance
+  Data.FromXML
+    ServerlessV2ScalingConfigurationInfo
+  where
+  parseXML x =
+    ServerlessV2ScalingConfigurationInfo'
+      Prelude.<$> (x Data..@? "MaxCapacity")
+      Prelude.<*> (x Data..@? "MinCapacity")
+
+instance
+  Prelude.Hashable
+    ServerlessV2ScalingConfigurationInfo
+  where
+  hashWithSalt
+    _salt
+    ServerlessV2ScalingConfigurationInfo' {..} =
+      _salt
+        `Prelude.hashWithSalt` maxCapacity
+        `Prelude.hashWithSalt` minCapacity
+
+instance
+  Prelude.NFData
+    ServerlessV2ScalingConfigurationInfo
+  where
+  rnf ServerlessV2ScalingConfigurationInfo' {..} =
+    Prelude.rnf maxCapacity
+      `Prelude.seq` Prelude.rnf minCapacity
diff --git a/gen/Amazonka/Neptune/Types/SourceType.hs b/gen/Amazonka/Neptune/Types/SourceType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/SourceType.hs
@@ -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.Neptune.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.Neptune.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'
+  #-}
diff --git a/gen/Amazonka/Neptune/Types/Subnet.hs b/gen/Amazonka/Neptune/Types/Subnet.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/Subnet.hs
@@ -0,0 +1,96 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.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.Neptune.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.Neptune.Types.AvailabilityZone
+import qualified Amazonka.Prelude as Prelude
+
+-- | Specifies a subnet.
+--
+-- This data type is used as a response element in the
+-- DescribeDBSubnetGroups action.
+--
+-- /See:/ 'newSubnet' smart constructor.
+data Subnet = Subnet'
+  { -- | Specifies the EC2 Availability Zone that the subnet is in.
+    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 EC2 Availability Zone that the subnet is in.
+--
+-- '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 EC2 Availability Zone that the subnet is in.
+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
diff --git a/gen/Amazonka/Neptune/Types/Tag.hs b/gen/Amazonka/Neptune/Types/Tag.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/Tag.hs
@@ -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.Neptune.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.Neptune.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 Neptune resource consisting of a
+-- key-value pair.
+--
+-- /See:/ 'newTag' smart constructor.
+data Tag = Tag'
+  { -- | A key is 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 only contain the set of Unicode letters, digits,
+    -- white-space, \'_\', \'.\', \'\/\', \'=\', \'+\', \'-\' (Java regex:
+    -- \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:\/=+\\\\-]*)$\").
+    key :: Prelude.Maybe Prelude.Text,
+    -- | A value is 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 only contain 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' - A key is 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 only contain the set of Unicode letters, digits,
+-- white-space, \'_\', \'.\', \'\/\', \'=\', \'+\', \'-\' (Java regex:
+-- \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:\/=+\\\\-]*)$\").
+--
+-- 'value', 'tag_value' - A value is 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 only contain 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
+    }
+
+-- | A key is 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 only contain 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)
+
+-- | A value is 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 only contain 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]
diff --git a/gen/Amazonka/Neptune/Types/Timezone.hs b/gen/Amazonka/Neptune/Types/Timezone.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/Timezone.hs
@@ -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.Neptune.Types.Timezone
+-- 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.Neptune.Types.Timezone 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 time zone associated with a DBInstance.
+--
+-- /See:/ 'newTimezone' smart constructor.
+data Timezone = Timezone'
+  { -- | The name of the time zone.
+    timezoneName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Timezone' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'timezoneName', 'timezone_timezoneName' - The name of the time zone.
+newTimezone ::
+  Timezone
+newTimezone =
+  Timezone' {timezoneName = Prelude.Nothing}
+
+-- | The name of the time zone.
+timezone_timezoneName :: Lens.Lens' Timezone (Prelude.Maybe Prelude.Text)
+timezone_timezoneName = Lens.lens (\Timezone' {timezoneName} -> timezoneName) (\s@Timezone' {} a -> s {timezoneName = a} :: Timezone)
+
+instance Data.FromXML Timezone where
+  parseXML x =
+    Timezone' Prelude.<$> (x Data..@? "TimezoneName")
+
+instance Prelude.Hashable Timezone where
+  hashWithSalt _salt Timezone' {..} =
+    _salt `Prelude.hashWithSalt` timezoneName
+
+instance Prelude.NFData Timezone where
+  rnf Timezone' {..} = Prelude.rnf timezoneName
diff --git a/gen/Amazonka/Neptune/Types/UpgradeTarget.hs b/gen/Amazonka/Neptune/Types/UpgradeTarget.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/UpgradeTarget.hs
@@ -0,0 +1,141 @@
+{-# 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.Neptune.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.Neptune.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 a DB 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 a DB 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,
+    -- | A value that indicates whether you can use Neptune global databases with
+    -- the target engine version.
+    supportsGlobalDatabases :: 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 a DB 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.
+--
+-- 'supportsGlobalDatabases', 'upgradeTarget_supportsGlobalDatabases' - A value that indicates whether you can use Neptune global databases with
+-- the target engine version.
+newUpgradeTarget ::
+  UpgradeTarget
+newUpgradeTarget =
+  UpgradeTarget'
+    { autoUpgrade = Prelude.Nothing,
+      description = Prelude.Nothing,
+      engine = Prelude.Nothing,
+      engineVersion = Prelude.Nothing,
+      isMajorVersionUpgrade = Prelude.Nothing,
+      supportsGlobalDatabases = 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 a DB 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)
+
+-- | A value that indicates whether you can use Neptune global databases with
+-- the target engine version.
+upgradeTarget_supportsGlobalDatabases :: Lens.Lens' UpgradeTarget (Prelude.Maybe Prelude.Bool)
+upgradeTarget_supportsGlobalDatabases = Lens.lens (\UpgradeTarget' {supportsGlobalDatabases} -> supportsGlobalDatabases) (\s@UpgradeTarget' {} a -> s {supportsGlobalDatabases = 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")
+      Prelude.<*> (x Data..@? "SupportsGlobalDatabases")
+
+instance Prelude.Hashable UpgradeTarget where
+  hashWithSalt _salt UpgradeTarget' {..} =
+    _salt
+      `Prelude.hashWithSalt` autoUpgrade
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` engine
+      `Prelude.hashWithSalt` engineVersion
+      `Prelude.hashWithSalt` isMajorVersionUpgrade
+      `Prelude.hashWithSalt` supportsGlobalDatabases
+
+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
+      `Prelude.seq` Prelude.rnf supportsGlobalDatabases
diff --git a/gen/Amazonka/Neptune/Types/ValidDBInstanceModificationsMessage.hs b/gen/Amazonka/Neptune/Types/ValidDBInstanceModificationsMessage.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/ValidDBInstanceModificationsMessage.hs
@@ -0,0 +1,87 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.Neptune.Types.ValidDBInstanceModificationsMessage
+-- 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.Neptune.Types.ValidDBInstanceModificationsMessage where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types.ValidStorageOptions
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about valid modifications that you can make to your DB
+-- instance. Contains the result of a successful call to the
+-- DescribeValidDBInstanceModifications action. You can use this
+-- information when you call ModifyDBInstance.
+--
+-- /See:/ 'newValidDBInstanceModificationsMessage' smart constructor.
+data ValidDBInstanceModificationsMessage = ValidDBInstanceModificationsMessage'
+  { -- | Valid storage options for your DB instance.
+    storage :: Prelude.Maybe [ValidStorageOptions]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ValidDBInstanceModificationsMessage' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'storage', 'validDBInstanceModificationsMessage_storage' - Valid storage options for your DB instance.
+newValidDBInstanceModificationsMessage ::
+  ValidDBInstanceModificationsMessage
+newValidDBInstanceModificationsMessage =
+  ValidDBInstanceModificationsMessage'
+    { storage =
+        Prelude.Nothing
+    }
+
+-- | Valid storage options for your DB instance.
+validDBInstanceModificationsMessage_storage :: Lens.Lens' ValidDBInstanceModificationsMessage (Prelude.Maybe [ValidStorageOptions])
+validDBInstanceModificationsMessage_storage = Lens.lens (\ValidDBInstanceModificationsMessage' {storage} -> storage) (\s@ValidDBInstanceModificationsMessage' {} a -> s {storage = a} :: ValidDBInstanceModificationsMessage) Prelude.. Lens.mapping Lens.coerced
+
+instance
+  Data.FromXML
+    ValidDBInstanceModificationsMessage
+  where
+  parseXML x =
+    ValidDBInstanceModificationsMessage'
+      Prelude.<$> ( x
+                      Data..@? "Storage"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "ValidStorageOptions")
+                  )
+
+instance
+  Prelude.Hashable
+    ValidDBInstanceModificationsMessage
+  where
+  hashWithSalt
+    _salt
+    ValidDBInstanceModificationsMessage' {..} =
+      _salt `Prelude.hashWithSalt` storage
+
+instance
+  Prelude.NFData
+    ValidDBInstanceModificationsMessage
+  where
+  rnf ValidDBInstanceModificationsMessage' {..} =
+    Prelude.rnf storage
diff --git a/gen/Amazonka/Neptune/Types/ValidStorageOptions.hs b/gen/Amazonka/Neptune/Types/ValidStorageOptions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/ValidStorageOptions.hs
@@ -0,0 +1,129 @@
+{-# 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.Neptune.Types.ValidStorageOptions
+-- 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.Neptune.Types.ValidStorageOptions where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.Types.DoubleRange
+import Amazonka.Neptune.Types.Range
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about valid modifications that you can make to your DB
+-- instance.
+--
+-- Contains the result of a successful call to the
+-- DescribeValidDBInstanceModifications action.
+--
+-- /See:/ 'newValidStorageOptions' smart constructor.
+data ValidStorageOptions = ValidStorageOptions'
+  { -- | The valid range of Provisioned IOPS to gibibytes of storage multiplier.
+    -- For example, 3-10, which means that provisioned IOPS can be between 3
+    -- and 10 times storage.
+    iopsToStorageRatio :: Prelude.Maybe [DoubleRange],
+    -- | The valid range of provisioned IOPS. For example, 1000-20000.
+    provisionedIops :: Prelude.Maybe [Range],
+    -- | The valid range of storage in gibibytes. For example, 100 to 16384.
+    storageSize :: Prelude.Maybe [Range],
+    -- | The valid storage types for your DB instance. For example, gp2, io1.
+    storageType :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ValidStorageOptions' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'iopsToStorageRatio', 'validStorageOptions_iopsToStorageRatio' - The valid range of Provisioned IOPS to gibibytes of storage multiplier.
+-- For example, 3-10, which means that provisioned IOPS can be between 3
+-- and 10 times storage.
+--
+-- 'provisionedIops', 'validStorageOptions_provisionedIops' - The valid range of provisioned IOPS. For example, 1000-20000.
+--
+-- 'storageSize', 'validStorageOptions_storageSize' - The valid range of storage in gibibytes. For example, 100 to 16384.
+--
+-- 'storageType', 'validStorageOptions_storageType' - The valid storage types for your DB instance. For example, gp2, io1.
+newValidStorageOptions ::
+  ValidStorageOptions
+newValidStorageOptions =
+  ValidStorageOptions'
+    { iopsToStorageRatio =
+        Prelude.Nothing,
+      provisionedIops = Prelude.Nothing,
+      storageSize = Prelude.Nothing,
+      storageType = Prelude.Nothing
+    }
+
+-- | The valid range of Provisioned IOPS to gibibytes of storage multiplier.
+-- For example, 3-10, which means that provisioned IOPS can be between 3
+-- and 10 times storage.
+validStorageOptions_iopsToStorageRatio :: Lens.Lens' ValidStorageOptions (Prelude.Maybe [DoubleRange])
+validStorageOptions_iopsToStorageRatio = Lens.lens (\ValidStorageOptions' {iopsToStorageRatio} -> iopsToStorageRatio) (\s@ValidStorageOptions' {} a -> s {iopsToStorageRatio = a} :: ValidStorageOptions) Prelude.. Lens.mapping Lens.coerced
+
+-- | The valid range of provisioned IOPS. For example, 1000-20000.
+validStorageOptions_provisionedIops :: Lens.Lens' ValidStorageOptions (Prelude.Maybe [Range])
+validStorageOptions_provisionedIops = Lens.lens (\ValidStorageOptions' {provisionedIops} -> provisionedIops) (\s@ValidStorageOptions' {} a -> s {provisionedIops = a} :: ValidStorageOptions) Prelude.. Lens.mapping Lens.coerced
+
+-- | The valid range of storage in gibibytes. For example, 100 to 16384.
+validStorageOptions_storageSize :: Lens.Lens' ValidStorageOptions (Prelude.Maybe [Range])
+validStorageOptions_storageSize = Lens.lens (\ValidStorageOptions' {storageSize} -> storageSize) (\s@ValidStorageOptions' {} a -> s {storageSize = a} :: ValidStorageOptions) Prelude.. Lens.mapping Lens.coerced
+
+-- | The valid storage types for your DB instance. For example, gp2, io1.
+validStorageOptions_storageType :: Lens.Lens' ValidStorageOptions (Prelude.Maybe Prelude.Text)
+validStorageOptions_storageType = Lens.lens (\ValidStorageOptions' {storageType} -> storageType) (\s@ValidStorageOptions' {} a -> s {storageType = a} :: ValidStorageOptions)
+
+instance Data.FromXML ValidStorageOptions where
+  parseXML x =
+    ValidStorageOptions'
+      Prelude.<$> ( x
+                      Data..@? "IopsToStorageRatio"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "DoubleRange")
+                  )
+      Prelude.<*> ( x
+                      Data..@? "ProvisionedIops"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "Range")
+                  )
+      Prelude.<*> ( x
+                      Data..@? "StorageSize"
+                      Core..!@ Prelude.mempty
+                      Prelude.>>= Core.may (Data.parseXMLList "Range")
+                  )
+      Prelude.<*> (x Data..@? "StorageType")
+
+instance Prelude.Hashable ValidStorageOptions where
+  hashWithSalt _salt ValidStorageOptions' {..} =
+    _salt
+      `Prelude.hashWithSalt` iopsToStorageRatio
+      `Prelude.hashWithSalt` provisionedIops
+      `Prelude.hashWithSalt` storageSize
+      `Prelude.hashWithSalt` storageType
+
+instance Prelude.NFData ValidStorageOptions where
+  rnf ValidStorageOptions' {..} =
+    Prelude.rnf iopsToStorageRatio
+      `Prelude.seq` Prelude.rnf provisionedIops
+      `Prelude.seq` Prelude.rnf storageSize
+      `Prelude.seq` Prelude.rnf storageType
diff --git a/gen/Amazonka/Neptune/Types/VpcSecurityGroupMembership.hs b/gen/Amazonka/Neptune/Types/VpcSecurityGroupMembership.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Types/VpcSecurityGroupMembership.hs
@@ -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.Neptune.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.Neptune.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
+
+-- | This data type is used as a response element for queries on 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
diff --git a/gen/Amazonka/Neptune/Waiters.hs b/gen/Amazonka/Neptune/Waiters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/Neptune/Waiters.hs
@@ -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.Neptune.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.Neptune.Waiters where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.Neptune.DescribeDBInstances
+import Amazonka.Neptune.Lens
+import Amazonka.Neptune.Types
+import qualified Amazonka.Prelude as Prelude
+
+-- | Polls 'Amazonka.Neptune.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.Neptune.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
+            )
+        ]
+    }
diff --git a/src/.gitkeep b/src/.gitkeep
new file mode 100644
--- /dev/null
+++ b/src/.gitkeep
diff --git a/test/Main.hs b/test/Main.hs
new file mode 100644
--- /dev/null
+++ b/test/Main.hs
@@ -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.Neptune
+import Test.Amazonka.Neptune.Internal
+import Test.Tasty
+
+main :: IO ()
+main =
+  defaultMain $
+    testGroup
+      "Neptune"
+      [ testGroup "tests" tests,
+        testGroup "fixtures" fixtures
+      ]
diff --git a/test/Test/Amazonka/Gen/Neptune.hs b/test/Test/Amazonka/Gen/Neptune.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/Gen/Neptune.hs
@@ -0,0 +1,1418 @@
+{-# 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.Neptune
+-- 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.Neptune where
+
+import Amazonka.Neptune
+import qualified Data.Proxy as Proxy
+import Test.Amazonka.Fixture
+import Test.Amazonka.Neptune.Internal
+import Test.Amazonka.Prelude
+import Test.Tasty
+
+-- Auto-generated: the actual test selection needs to be manually placed into
+-- the top-level so that real test data can be incrementally added.
+--
+-- This commented snippet is what the entire set should look like:
+
+-- fixtures :: TestTree
+-- fixtures =
+--     [ testGroup "request"
+--         [ requestAddRoleToDBCluster $
+--             newAddRoleToDBCluster
+--
+--         , requestAddSourceIdentifierToSubscription $
+--             newAddSourceIdentifierToSubscription
+--
+--         , requestAddTagsToResource $
+--             newAddTagsToResource
+--
+--         , requestApplyPendingMaintenanceAction $
+--             newApplyPendingMaintenanceAction
+--
+--         , requestCopyDBClusterParameterGroup $
+--             newCopyDBClusterParameterGroup
+--
+--         , requestCopyDBClusterSnapshot $
+--             newCopyDBClusterSnapshot
+--
+--         , requestCopyDBParameterGroup $
+--             newCopyDBParameterGroup
+--
+--         , requestCreateDBCluster $
+--             newCreateDBCluster
+--
+--         , requestCreateDBClusterEndpoint $
+--             newCreateDBClusterEndpoint
+--
+--         , requestCreateDBClusterParameterGroup $
+--             newCreateDBClusterParameterGroup
+--
+--         , requestCreateDBClusterSnapshot $
+--             newCreateDBClusterSnapshot
+--
+--         , requestCreateDBInstance $
+--             newCreateDBInstance
+--
+--         , requestCreateDBParameterGroup $
+--             newCreateDBParameterGroup
+--
+--         , requestCreateDBSubnetGroup $
+--             newCreateDBSubnetGroup
+--
+--         , requestCreateEventSubscription $
+--             newCreateEventSubscription
+--
+--         , requestCreateGlobalCluster $
+--             newCreateGlobalCluster
+--
+--         , requestDeleteDBCluster $
+--             newDeleteDBCluster
+--
+--         , requestDeleteDBClusterEndpoint $
+--             newDeleteDBClusterEndpoint
+--
+--         , requestDeleteDBClusterParameterGroup $
+--             newDeleteDBClusterParameterGroup
+--
+--         , requestDeleteDBClusterSnapshot $
+--             newDeleteDBClusterSnapshot
+--
+--         , requestDeleteDBInstance $
+--             newDeleteDBInstance
+--
+--         , requestDeleteDBParameterGroup $
+--             newDeleteDBParameterGroup
+--
+--         , requestDeleteDBSubnetGroup $
+--             newDeleteDBSubnetGroup
+--
+--         , requestDeleteEventSubscription $
+--             newDeleteEventSubscription
+--
+--         , requestDeleteGlobalCluster $
+--             newDeleteGlobalCluster
+--
+--         , requestDescribeDBClusterEndpoints $
+--             newDescribeDBClusterEndpoints
+--
+--         , requestDescribeDBClusterParameterGroups $
+--             newDescribeDBClusterParameterGroups
+--
+--         , requestDescribeDBClusterParameters $
+--             newDescribeDBClusterParameters
+--
+--         , requestDescribeDBClusterSnapshotAttributes $
+--             newDescribeDBClusterSnapshotAttributes
+--
+--         , requestDescribeDBClusterSnapshots $
+--             newDescribeDBClusterSnapshots
+--
+--         , requestDescribeDBClusters $
+--             newDescribeDBClusters
+--
+--         , requestDescribeDBEngineVersions $
+--             newDescribeDBEngineVersions
+--
+--         , requestDescribeDBInstances $
+--             newDescribeDBInstances
+--
+--         , requestDescribeDBParameterGroups $
+--             newDescribeDBParameterGroups
+--
+--         , requestDescribeDBParameters $
+--             newDescribeDBParameters
+--
+--         , requestDescribeDBSubnetGroups $
+--             newDescribeDBSubnetGroups
+--
+--         , requestDescribeEngineDefaultClusterParameters $
+--             newDescribeEngineDefaultClusterParameters
+--
+--         , requestDescribeEngineDefaultParameters $
+--             newDescribeEngineDefaultParameters
+--
+--         , requestDescribeEventCategories $
+--             newDescribeEventCategories
+--
+--         , requestDescribeEventSubscriptions $
+--             newDescribeEventSubscriptions
+--
+--         , requestDescribeEvents $
+--             newDescribeEvents
+--
+--         , requestDescribeGlobalClusters $
+--             newDescribeGlobalClusters
+--
+--         , requestDescribeOrderableDBInstanceOptions $
+--             newDescribeOrderableDBInstanceOptions
+--
+--         , requestDescribePendingMaintenanceActions $
+--             newDescribePendingMaintenanceActions
+--
+--         , requestDescribeValidDBInstanceModifications $
+--             newDescribeValidDBInstanceModifications
+--
+--         , requestFailoverDBCluster $
+--             newFailoverDBCluster
+--
+--         , requestFailoverGlobalCluster $
+--             newFailoverGlobalCluster
+--
+--         , requestListTagsForResource $
+--             newListTagsForResource
+--
+--         , requestModifyDBCluster $
+--             newModifyDBCluster
+--
+--         , requestModifyDBClusterEndpoint $
+--             newModifyDBClusterEndpoint
+--
+--         , requestModifyDBClusterParameterGroup $
+--             newModifyDBClusterParameterGroup
+--
+--         , requestModifyDBClusterSnapshotAttribute $
+--             newModifyDBClusterSnapshotAttribute
+--
+--         , requestModifyDBInstance $
+--             newModifyDBInstance
+--
+--         , requestModifyDBParameterGroup $
+--             newModifyDBParameterGroup
+--
+--         , requestModifyDBSubnetGroup $
+--             newModifyDBSubnetGroup
+--
+--         , requestModifyEventSubscription $
+--             newModifyEventSubscription
+--
+--         , requestModifyGlobalCluster $
+--             newModifyGlobalCluster
+--
+--         , requestPromoteReadReplicaDBCluster $
+--             newPromoteReadReplicaDBCluster
+--
+--         , requestRebootDBInstance $
+--             newRebootDBInstance
+--
+--         , requestRemoveFromGlobalCluster $
+--             newRemoveFromGlobalCluster
+--
+--         , requestRemoveRoleFromDBCluster $
+--             newRemoveRoleFromDBCluster
+--
+--         , requestRemoveSourceIdentifierFromSubscription $
+--             newRemoveSourceIdentifierFromSubscription
+--
+--         , requestRemoveTagsFromResource $
+--             newRemoveTagsFromResource
+--
+--         , requestResetDBClusterParameterGroup $
+--             newResetDBClusterParameterGroup
+--
+--         , requestResetDBParameterGroup $
+--             newResetDBParameterGroup
+--
+--         , requestRestoreDBClusterFromSnapshot $
+--             newRestoreDBClusterFromSnapshot
+--
+--         , requestRestoreDBClusterToPointInTime $
+--             newRestoreDBClusterToPointInTime
+--
+--         , requestStartDBCluster $
+--             newStartDBCluster
+--
+--         , requestStopDBCluster $
+--             newStopDBCluster
+--
+--           ]
+
+--     , testGroup "response"
+--         [ responseAddRoleToDBCluster $
+--             newAddRoleToDBClusterResponse
+--
+--         , responseAddSourceIdentifierToSubscription $
+--             newAddSourceIdentifierToSubscriptionResponse
+--
+--         , responseAddTagsToResource $
+--             newAddTagsToResourceResponse
+--
+--         , responseApplyPendingMaintenanceAction $
+--             newApplyPendingMaintenanceActionResponse
+--
+--         , responseCopyDBClusterParameterGroup $
+--             newCopyDBClusterParameterGroupResponse
+--
+--         , responseCopyDBClusterSnapshot $
+--             newCopyDBClusterSnapshotResponse
+--
+--         , responseCopyDBParameterGroup $
+--             newCopyDBParameterGroupResponse
+--
+--         , responseCreateDBCluster $
+--             newCreateDBClusterResponse
+--
+--         , responseCreateDBClusterEndpoint $
+--             newCreateDBClusterEndpointResponse
+--
+--         , responseCreateDBClusterParameterGroup $
+--             newCreateDBClusterParameterGroupResponse
+--
+--         , responseCreateDBClusterSnapshot $
+--             newCreateDBClusterSnapshotResponse
+--
+--         , responseCreateDBInstance $
+--             newCreateDBInstanceResponse
+--
+--         , responseCreateDBParameterGroup $
+--             newCreateDBParameterGroupResponse
+--
+--         , responseCreateDBSubnetGroup $
+--             newCreateDBSubnetGroupResponse
+--
+--         , responseCreateEventSubscription $
+--             newCreateEventSubscriptionResponse
+--
+--         , responseCreateGlobalCluster $
+--             newCreateGlobalClusterResponse
+--
+--         , responseDeleteDBCluster $
+--             newDeleteDBClusterResponse
+--
+--         , responseDeleteDBClusterEndpoint $
+--             newDeleteDBClusterEndpointResponse
+--
+--         , responseDeleteDBClusterParameterGroup $
+--             newDeleteDBClusterParameterGroupResponse
+--
+--         , responseDeleteDBClusterSnapshot $
+--             newDeleteDBClusterSnapshotResponse
+--
+--         , responseDeleteDBInstance $
+--             newDeleteDBInstanceResponse
+--
+--         , responseDeleteDBParameterGroup $
+--             newDeleteDBParameterGroupResponse
+--
+--         , responseDeleteDBSubnetGroup $
+--             newDeleteDBSubnetGroupResponse
+--
+--         , responseDeleteEventSubscription $
+--             newDeleteEventSubscriptionResponse
+--
+--         , responseDeleteGlobalCluster $
+--             newDeleteGlobalClusterResponse
+--
+--         , responseDescribeDBClusterEndpoints $
+--             newDescribeDBClusterEndpointsResponse
+--
+--         , responseDescribeDBClusterParameterGroups $
+--             newDescribeDBClusterParameterGroupsResponse
+--
+--         , responseDescribeDBClusterParameters $
+--             newDescribeDBClusterParametersResponse
+--
+--         , responseDescribeDBClusterSnapshotAttributes $
+--             newDescribeDBClusterSnapshotAttributesResponse
+--
+--         , responseDescribeDBClusterSnapshots $
+--             newDescribeDBClusterSnapshotsResponse
+--
+--         , responseDescribeDBClusters $
+--             newDescribeDBClustersResponse
+--
+--         , responseDescribeDBEngineVersions $
+--             newDescribeDBEngineVersionsResponse
+--
+--         , responseDescribeDBInstances $
+--             newDescribeDBInstancesResponse
+--
+--         , responseDescribeDBParameterGroups $
+--             newDescribeDBParameterGroupsResponse
+--
+--         , responseDescribeDBParameters $
+--             newDescribeDBParametersResponse
+--
+--         , responseDescribeDBSubnetGroups $
+--             newDescribeDBSubnetGroupsResponse
+--
+--         , responseDescribeEngineDefaultClusterParameters $
+--             newDescribeEngineDefaultClusterParametersResponse
+--
+--         , responseDescribeEngineDefaultParameters $
+--             newDescribeEngineDefaultParametersResponse
+--
+--         , responseDescribeEventCategories $
+--             newDescribeEventCategoriesResponse
+--
+--         , responseDescribeEventSubscriptions $
+--             newDescribeEventSubscriptionsResponse
+--
+--         , responseDescribeEvents $
+--             newDescribeEventsResponse
+--
+--         , responseDescribeGlobalClusters $
+--             newDescribeGlobalClustersResponse
+--
+--         , responseDescribeOrderableDBInstanceOptions $
+--             newDescribeOrderableDBInstanceOptionsResponse
+--
+--         , responseDescribePendingMaintenanceActions $
+--             newDescribePendingMaintenanceActionsResponse
+--
+--         , responseDescribeValidDBInstanceModifications $
+--             newDescribeValidDBInstanceModificationsResponse
+--
+--         , responseFailoverDBCluster $
+--             newFailoverDBClusterResponse
+--
+--         , responseFailoverGlobalCluster $
+--             newFailoverGlobalClusterResponse
+--
+--         , responseListTagsForResource $
+--             newListTagsForResourceResponse
+--
+--         , responseModifyDBCluster $
+--             newModifyDBClusterResponse
+--
+--         , responseModifyDBClusterEndpoint $
+--             newModifyDBClusterEndpointResponse
+--
+--         , responseModifyDBClusterParameterGroup $
+--             newDBClusterParameterGroupNameMessage
+--
+--         , responseModifyDBClusterSnapshotAttribute $
+--             newModifyDBClusterSnapshotAttributeResponse
+--
+--         , responseModifyDBInstance $
+--             newModifyDBInstanceResponse
+--
+--         , responseModifyDBParameterGroup $
+--             newDBParameterGroupNameMessage
+--
+--         , responseModifyDBSubnetGroup $
+--             newModifyDBSubnetGroupResponse
+--
+--         , responseModifyEventSubscription $
+--             newModifyEventSubscriptionResponse
+--
+--         , responseModifyGlobalCluster $
+--             newModifyGlobalClusterResponse
+--
+--         , responsePromoteReadReplicaDBCluster $
+--             newPromoteReadReplicaDBClusterResponse
+--
+--         , responseRebootDBInstance $
+--             newRebootDBInstanceResponse
+--
+--         , responseRemoveFromGlobalCluster $
+--             newRemoveFromGlobalClusterResponse
+--
+--         , responseRemoveRoleFromDBCluster $
+--             newRemoveRoleFromDBClusterResponse
+--
+--         , responseRemoveSourceIdentifierFromSubscription $
+--             newRemoveSourceIdentifierFromSubscriptionResponse
+--
+--         , responseRemoveTagsFromResource $
+--             newRemoveTagsFromResourceResponse
+--
+--         , responseResetDBClusterParameterGroup $
+--             newDBClusterParameterGroupNameMessage
+--
+--         , responseResetDBParameterGroup $
+--             newDBParameterGroupNameMessage
+--
+--         , responseRestoreDBClusterFromSnapshot $
+--             newRestoreDBClusterFromSnapshotResponse
+--
+--         , responseRestoreDBClusterToPointInTime $
+--             newRestoreDBClusterToPointInTimeResponse
+--
+--         , responseStartDBCluster $
+--             newStartDBClusterResponse
+--
+--         , responseStopDBCluster $
+--             newStopDBClusterResponse
+--
+--           ]
+--     ]
+
+-- Requests
+
+requestAddRoleToDBCluster :: AddRoleToDBCluster -> TestTree
+requestAddRoleToDBCluster =
+  req
+    "AddRoleToDBCluster"
+    "fixture/AddRoleToDBCluster.yaml"
+
+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"
+
+requestCopyDBParameterGroup :: CopyDBParameterGroup -> TestTree
+requestCopyDBParameterGroup =
+  req
+    "CopyDBParameterGroup"
+    "fixture/CopyDBParameterGroup.yaml"
+
+requestCreateDBCluster :: CreateDBCluster -> TestTree
+requestCreateDBCluster =
+  req
+    "CreateDBCluster"
+    "fixture/CreateDBCluster.yaml"
+
+requestCreateDBClusterEndpoint :: CreateDBClusterEndpoint -> TestTree
+requestCreateDBClusterEndpoint =
+  req
+    "CreateDBClusterEndpoint"
+    "fixture/CreateDBClusterEndpoint.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"
+
+requestCreateDBParameterGroup :: CreateDBParameterGroup -> TestTree
+requestCreateDBParameterGroup =
+  req
+    "CreateDBParameterGroup"
+    "fixture/CreateDBParameterGroup.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"
+
+requestDeleteDBClusterEndpoint :: DeleteDBClusterEndpoint -> TestTree
+requestDeleteDBClusterEndpoint =
+  req
+    "DeleteDBClusterEndpoint"
+    "fixture/DeleteDBClusterEndpoint.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"
+
+requestDeleteDBParameterGroup :: DeleteDBParameterGroup -> TestTree
+requestDeleteDBParameterGroup =
+  req
+    "DeleteDBParameterGroup"
+    "fixture/DeleteDBParameterGroup.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"
+
+requestDescribeDBClusterEndpoints :: DescribeDBClusterEndpoints -> TestTree
+requestDescribeDBClusterEndpoints =
+  req
+    "DescribeDBClusterEndpoints"
+    "fixture/DescribeDBClusterEndpoints.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"
+
+requestDescribeDBParameterGroups :: DescribeDBParameterGroups -> TestTree
+requestDescribeDBParameterGroups =
+  req
+    "DescribeDBParameterGroups"
+    "fixture/DescribeDBParameterGroups.yaml"
+
+requestDescribeDBParameters :: DescribeDBParameters -> TestTree
+requestDescribeDBParameters =
+  req
+    "DescribeDBParameters"
+    "fixture/DescribeDBParameters.yaml"
+
+requestDescribeDBSubnetGroups :: DescribeDBSubnetGroups -> TestTree
+requestDescribeDBSubnetGroups =
+  req
+    "DescribeDBSubnetGroups"
+    "fixture/DescribeDBSubnetGroups.yaml"
+
+requestDescribeEngineDefaultClusterParameters :: DescribeEngineDefaultClusterParameters -> TestTree
+requestDescribeEngineDefaultClusterParameters =
+  req
+    "DescribeEngineDefaultClusterParameters"
+    "fixture/DescribeEngineDefaultClusterParameters.yaml"
+
+requestDescribeEngineDefaultParameters :: DescribeEngineDefaultParameters -> TestTree
+requestDescribeEngineDefaultParameters =
+  req
+    "DescribeEngineDefaultParameters"
+    "fixture/DescribeEngineDefaultParameters.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"
+
+requestDescribeValidDBInstanceModifications :: DescribeValidDBInstanceModifications -> TestTree
+requestDescribeValidDBInstanceModifications =
+  req
+    "DescribeValidDBInstanceModifications"
+    "fixture/DescribeValidDBInstanceModifications.yaml"
+
+requestFailoverDBCluster :: FailoverDBCluster -> TestTree
+requestFailoverDBCluster =
+  req
+    "FailoverDBCluster"
+    "fixture/FailoverDBCluster.yaml"
+
+requestFailoverGlobalCluster :: FailoverGlobalCluster -> TestTree
+requestFailoverGlobalCluster =
+  req
+    "FailoverGlobalCluster"
+    "fixture/FailoverGlobalCluster.yaml"
+
+requestListTagsForResource :: ListTagsForResource -> TestTree
+requestListTagsForResource =
+  req
+    "ListTagsForResource"
+    "fixture/ListTagsForResource.yaml"
+
+requestModifyDBCluster :: ModifyDBCluster -> TestTree
+requestModifyDBCluster =
+  req
+    "ModifyDBCluster"
+    "fixture/ModifyDBCluster.yaml"
+
+requestModifyDBClusterEndpoint :: ModifyDBClusterEndpoint -> TestTree
+requestModifyDBClusterEndpoint =
+  req
+    "ModifyDBClusterEndpoint"
+    "fixture/ModifyDBClusterEndpoint.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"
+
+requestModifyDBParameterGroup :: ModifyDBParameterGroup -> TestTree
+requestModifyDBParameterGroup =
+  req
+    "ModifyDBParameterGroup"
+    "fixture/ModifyDBParameterGroup.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"
+
+requestPromoteReadReplicaDBCluster :: PromoteReadReplicaDBCluster -> TestTree
+requestPromoteReadReplicaDBCluster =
+  req
+    "PromoteReadReplicaDBCluster"
+    "fixture/PromoteReadReplicaDBCluster.yaml"
+
+requestRebootDBInstance :: RebootDBInstance -> TestTree
+requestRebootDBInstance =
+  req
+    "RebootDBInstance"
+    "fixture/RebootDBInstance.yaml"
+
+requestRemoveFromGlobalCluster :: RemoveFromGlobalCluster -> TestTree
+requestRemoveFromGlobalCluster =
+  req
+    "RemoveFromGlobalCluster"
+    "fixture/RemoveFromGlobalCluster.yaml"
+
+requestRemoveRoleFromDBCluster :: RemoveRoleFromDBCluster -> TestTree
+requestRemoveRoleFromDBCluster =
+  req
+    "RemoveRoleFromDBCluster"
+    "fixture/RemoveRoleFromDBCluster.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"
+
+requestResetDBParameterGroup :: ResetDBParameterGroup -> TestTree
+requestResetDBParameterGroup =
+  req
+    "ResetDBParameterGroup"
+    "fixture/ResetDBParameterGroup.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
+
+responseAddRoleToDBCluster :: AddRoleToDBClusterResponse -> TestTree
+responseAddRoleToDBCluster =
+  res
+    "AddRoleToDBClusterResponse"
+    "fixture/AddRoleToDBClusterResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy AddRoleToDBCluster)
+
+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)
+
+responseCopyDBParameterGroup :: CopyDBParameterGroupResponse -> TestTree
+responseCopyDBParameterGroup =
+  res
+    "CopyDBParameterGroupResponse"
+    "fixture/CopyDBParameterGroupResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CopyDBParameterGroup)
+
+responseCreateDBCluster :: CreateDBClusterResponse -> TestTree
+responseCreateDBCluster =
+  res
+    "CreateDBClusterResponse"
+    "fixture/CreateDBClusterResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateDBCluster)
+
+responseCreateDBClusterEndpoint :: CreateDBClusterEndpointResponse -> TestTree
+responseCreateDBClusterEndpoint =
+  res
+    "CreateDBClusterEndpointResponse"
+    "fixture/CreateDBClusterEndpointResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateDBClusterEndpoint)
+
+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)
+
+responseCreateDBParameterGroup :: CreateDBParameterGroupResponse -> TestTree
+responseCreateDBParameterGroup =
+  res
+    "CreateDBParameterGroupResponse"
+    "fixture/CreateDBParameterGroupResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateDBParameterGroup)
+
+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)
+
+responseDeleteDBClusterEndpoint :: DeleteDBClusterEndpointResponse -> TestTree
+responseDeleteDBClusterEndpoint =
+  res
+    "DeleteDBClusterEndpointResponse"
+    "fixture/DeleteDBClusterEndpointResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteDBClusterEndpoint)
+
+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)
+
+responseDeleteDBParameterGroup :: DeleteDBParameterGroupResponse -> TestTree
+responseDeleteDBParameterGroup =
+  res
+    "DeleteDBParameterGroupResponse"
+    "fixture/DeleteDBParameterGroupResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteDBParameterGroup)
+
+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)
+
+responseDescribeDBClusterEndpoints :: DescribeDBClusterEndpointsResponse -> TestTree
+responseDescribeDBClusterEndpoints =
+  res
+    "DescribeDBClusterEndpointsResponse"
+    "fixture/DescribeDBClusterEndpointsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeDBClusterEndpoints)
+
+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)
+
+responseDescribeDBParameterGroups :: DescribeDBParameterGroupsResponse -> TestTree
+responseDescribeDBParameterGroups =
+  res
+    "DescribeDBParameterGroupsResponse"
+    "fixture/DescribeDBParameterGroupsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeDBParameterGroups)
+
+responseDescribeDBParameters :: DescribeDBParametersResponse -> TestTree
+responseDescribeDBParameters =
+  res
+    "DescribeDBParametersResponse"
+    "fixture/DescribeDBParametersResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeDBParameters)
+
+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)
+
+responseDescribeEngineDefaultParameters :: DescribeEngineDefaultParametersResponse -> TestTree
+responseDescribeEngineDefaultParameters =
+  res
+    "DescribeEngineDefaultParametersResponse"
+    "fixture/DescribeEngineDefaultParametersResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeEngineDefaultParameters)
+
+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)
+
+responseDescribeValidDBInstanceModifications :: DescribeValidDBInstanceModificationsResponse -> TestTree
+responseDescribeValidDBInstanceModifications =
+  res
+    "DescribeValidDBInstanceModificationsResponse"
+    "fixture/DescribeValidDBInstanceModificationsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeValidDBInstanceModifications)
+
+responseFailoverDBCluster :: FailoverDBClusterResponse -> TestTree
+responseFailoverDBCluster =
+  res
+    "FailoverDBClusterResponse"
+    "fixture/FailoverDBClusterResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy FailoverDBCluster)
+
+responseFailoverGlobalCluster :: FailoverGlobalClusterResponse -> TestTree
+responseFailoverGlobalCluster =
+  res
+    "FailoverGlobalClusterResponse"
+    "fixture/FailoverGlobalClusterResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy FailoverGlobalCluster)
+
+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)
+
+responseModifyDBClusterEndpoint :: ModifyDBClusterEndpointResponse -> TestTree
+responseModifyDBClusterEndpoint =
+  res
+    "ModifyDBClusterEndpointResponse"
+    "fixture/ModifyDBClusterEndpointResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ModifyDBClusterEndpoint)
+
+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)
+
+responseModifyDBParameterGroup :: DBParameterGroupNameMessage -> TestTree
+responseModifyDBParameterGroup =
+  res
+    "ModifyDBParameterGroupResponse"
+    "fixture/ModifyDBParameterGroupResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ModifyDBParameterGroup)
+
+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)
+
+responsePromoteReadReplicaDBCluster :: PromoteReadReplicaDBClusterResponse -> TestTree
+responsePromoteReadReplicaDBCluster =
+  res
+    "PromoteReadReplicaDBClusterResponse"
+    "fixture/PromoteReadReplicaDBClusterResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy PromoteReadReplicaDBCluster)
+
+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)
+
+responseRemoveRoleFromDBCluster :: RemoveRoleFromDBClusterResponse -> TestTree
+responseRemoveRoleFromDBCluster =
+  res
+    "RemoveRoleFromDBClusterResponse"
+    "fixture/RemoveRoleFromDBClusterResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy RemoveRoleFromDBCluster)
+
+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)
+
+responseResetDBParameterGroup :: DBParameterGroupNameMessage -> TestTree
+responseResetDBParameterGroup =
+  res
+    "ResetDBParameterGroupResponse"
+    "fixture/ResetDBParameterGroupResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ResetDBParameterGroup)
+
+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)
diff --git a/test/Test/Amazonka/Neptune.hs b/test/Test/Amazonka/Neptune.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/Neptune.hs
@@ -0,0 +1,20 @@
+-- |
+-- Module      : Test.Amazonka.Neptune
+-- 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.Neptune
+  ( tests,
+    fixtures,
+  )
+where
+
+import Test.Tasty (TestTree)
+
+tests :: [TestTree]
+tests = []
+
+fixtures :: [TestTree]
+fixtures = []
diff --git a/test/Test/Amazonka/Neptune/Internal.hs b/test/Test/Amazonka/Neptune/Internal.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/Neptune/Internal.hs
@@ -0,0 +1,8 @@
+-- |
+-- Module      : Test.Amazonka.Neptune.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.Neptune.Internal where
